引言
ESP32是一款功能强大的低功耗微控制器,广泛应用于物联网(IoT)项目中。其中,蓝牙功能是ESP32的一大亮点,可以实现设备之间的无线连接和数据传输。对于新手来说,如何正确使用ESP32的蓝牙功能可能是一个挑战。本文将详细讲解ESP32蓝牙调用的全过程,帮助新手轻松实现设备连接与数据传输。
ESP32蓝牙基础
1. ESP32蓝牙模块
ESP32内置了蓝牙功能,支持蓝牙5.0协议。它可以通过串口、I2C或SPI等方式与其他蓝牙设备进行通信。
2. 蓝牙通信模式
ESP32支持三种蓝牙通信模式:
- 中央设备(Central):主动连接其他蓝牙设备。
- 外围设备(Peripheral):被动等待其他蓝牙设备连接。
- 蓝牙广播(BLE广播):发送广播信息,供其他设备扫描和连接。
连接ESP32与电脑
1. 准备工作
- ESP32开发板
- 电脑
- USB线
- ESP-IDF或Arduino IDE
2. 连接步骤
- 将ESP32开发板的USB接口插入电脑。
- 打开ESP-IDF或Arduino IDE。
- 选择正确的开发板和端口。
- 编写或导入蓝牙连接代码。
- 编译并上传代码到ESP32。
3. 示例代码
#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include <BLE2902.h>
BLEServer* pServer;
BLEService* pService;
BLECharacteristic* pCharacteristic;
// 创建服务
void createService() {
pService = pServer->createService(SERVICE_UUID);
// 创建特性
pCharacteristic = pService->createCharacteristic(CHAR_UUID,
BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_WRITE
| BLECharacteristic::PROPERTY_NOTIFY);
pCharacteristic->addDescriptor(new BLE2902());
pService->start();
}
// 初始化蓝牙服务器
void setup() {
Serial.begin(115200);
// 初始化蓝牙服务器
pServer = BLEDevice::createServer();
createService();
// 启动蓝牙广播
BLEAdvertising* pAdvertising = pServer->getAdvertising();
pAdvertising->addServiceUUID(SERVICE_UUID);
pAdvertising->setScanResponse(true);
pAdvertising->setMinInterval(0x20);
pAdvertising->setMaxInterval(0x40);
pAdvertising->start();
Serial.println("Bluetooth device active, waiting for connections...");
}
void loop() {
// 空循环
}
ESP32与手机连接
1. 安装手机APP
在手机应用商店搜索并安装支持ESP32蓝牙功能的APP,如“ESP32 Bluetooth Controller”。
2. 连接步骤
- 打开手机APP。
- 选择“扫描设备”。
- 在设备列表中找到ESP32设备,点击连接。
3. 通信示例
连接成功后,可以在APP中查看和修改ESP32发送的数据。
总结
本文详细介绍了ESP32蓝牙调用的全过程,包括连接电脑、连接手机以及数据传输等。希望本文能帮助新手快速掌握ESP32蓝牙功能,为后续的物联网项目打下坚实的基础。
