概述 - ESP32-S3 - — ESP-IDF 编程指南 v5.5 文档
ESP-BLE-MESH - ESP32-S3 - — ESP-IDF 编程指南 v5.5 文档
经典蓝牙(Classic BT):传统蓝牙,功能全面,用于持续传输大数据,比如蓝牙耳机、蓝牙音箱、车载免提。
低功耗蓝牙 (BLE):低功耗蓝牙,推荐嵌入式设备使用,用于间歇性地发送小数据,比如智能手环、智能门锁。
ESP32 中的蓝牙主机协议栈:
Bluedroid:经典蓝牙、低功耗蓝牙
NimBLE:低功耗蓝牙
示例程序:
Beacon:只广播,不连接。
Connection:作为客户端(Central),去扫描并连接别人。
GATT Server:作为服务端(Peripheral),让别人来连接和读写。
Security:NimBLE 安全认证功能
Gap Server
定义了 设备如何被发现、如何建立连接
Gatt Server
定义了 连接后,设备之间如何传输数据
在 NimBLE 里,GAP 是前台的“门口保安”,GATT 是里面的“服务员”。
esp32的经典蓝牙既可以作为服务器又可以作为客户端。
esp32的nimble也可以,但是通常作为服务设备。Peripheral 角色作为服务器,被别的设备连接;Central角色作为客户端,主动连接别的设备。
示例程序调试步骤:介绍 - ESP32-S3 - — ESP-IDF 编程指南 v5.5 文档
手机测试软件下载:Releases · NordicSemiconductor/Android-nRF-Connect
服务/特征 UUID:
Bluetooth SIG 定义的标准 Service / Characteristic 的 uuid:16 位
开发者自定义服务的 uuid:128 位
特征的操作标志:
BLE_GATT_CHR_F_READ:读,有确认机制
BLE_GATT_CHR_F_WRITE:写,有确认机制
BLE_GATT_CHR_F_WRITE_NO_RSP:写,无确认机制
编译前必须开启蓝牙服务:
Component config → Bluetooth → Bluedroid/NimBLE
否则会找不到相关头文件而报错。
组网
Mesh 组网示例:
