1. 编译 ESP-AT ,在 menuconfig 配置选项中开启 BT SPP 命令的支持,如下:
menuconfig -> Component config -> AT
2. AT 固件编译完成后,准备 1 个 ESP32 设备下载 AT 固件。
3. 使用手机与 ESP32 进行蓝牙配对,在 ESP32 设备端请运行如下命令:
AT+BTINIT=1 //开启经典蓝牙服务
AT+BTNAME="123" // 将设备设为 BT SPP Slave
AT+BTSPPINIT=2 //设置 BT SPP Slave 的名称
AT+BTSCANMODE=2 //设置可连接可扫描模式
AT+BTSECPARAM=2,0,"1234" //设置经典蓝牙安全参数,将 io_cap 能力设置成 keyboard 就可以产生配对码
AT+BTSPPSTART //开始 BTSPP 服务,手机搜索到 ESP32 的蓝牙,然后主动发起配对请求,此时会在手机端产生一个动态的 6 位配对码
AT+BTKEYREPLY=0,566181 //然后在 ESP32 设备端执行此命令,其中 566181 为手机端产生的动态 6 位配对码
4. 使用手机蓝牙扫描 ESP32 BT 设备,手机端主动发起与 ESP32 BT 连接,此时手机端会生成动态配对 PIN 码。然后在 ESP32 设备端输入配对命令与手机建立配对请求。此过程结束后,ESP32 与 手机蓝牙即配对成功。
【说明】
-
ESP32 默认是支持 6 位的 PIN 和 4 位的 PIN,但是因为 4 位的 PIN 优先级比较低,如果双方都支持 6 位 PIN 的话就直接会产生 6 位 PIN 码。如果双方中有一方不支持 6 位 PIN 的话就会产生 4 位的 PIN 的 。不过我们 ESP32 和手机现在都支持 6 位的 PIN 的了,所以会产生 6 位的 PIN 码 。
-
经典蓝牙里谁发起连接,谁就是 Master 设备。Slave 设备只能等待被连接,不能主动发起连接请求。