【ESP32】Ble 加密配对最多只能保持 1 个设备的连接吗?

Moderator: ESP_XCGuang

Rainbow
Posts: 26
Joined: Fri May 21, 2021 3:21 am

【ESP32】Ble 加密配对最多只能保持 1 个设备的连接吗?

Postby Rainbow » Tue Jun 08, 2021 6:44 am

使用多个 ESP32 设备下载相同版本的 AT 固件,release/v2.1.0.0 版本的 AT 固件和 master 版本的 AT 固件都测试过。

测试 Ble 加密配对,发现当尝试建立第二个加密配对时,会断开第一个加密配对的连接的设备。请问 Ble 加密配对最多只能保持 1个 配对设备吗?

测试结果如下:
ble-test-at.png
ble-test-at.png (166.86 KiB) Viewed 4165 times
执行的指令如下:

1、使用 1 个 ESP32 设备作为 BLE SERVER**

蓝牙 AT 加密指令参考:

AT+RST // 重启模块
AT+GMR //查询模组版本信息
AT+BLEINIT=2 // 将模组初始化为 server
AT+BLEGATTSSRVCRE // GATTS 创建服务
AT+BLEGATTSSRVSTART //GATTS 开启服务
AT+BLEADDR? // 查询 BLE 设备的 public address。
AT+BLEADVPARAM=50,50,0,0,4 // 设置⼴播参数
AT+BLEADVDATA="020120" //设置 BLE ⼴播数据
AT+BLESECPARAM=4,1,8,3,3 //设置加密参数
AT+BLEADVSTART //开始 BLE 广播,每次建立 BLE 连接前都需要执行一次此命令
AT+BLEENC=0,3 //无秘钥连接后,进行这一步,即可产生加密连接请求,并产生加密密钥。


2、使用其他 2个 ESP32 设备作为 BLE Client

连接 BLE SERVER 的 AT 指令如下:


AT+BLEINIT=1

AT+BLECONN=0,"24:62:ab:e2:55:12",0,30 //根据 BLE SERVER 查询的 BLE MAC 地址建立 BLE 连接,0 为建立连接的端口号,30 为连接超时时间设置,单位“秒”

【注意】在 BLE SERVER 执行 :

AT+BLEENC=0,3

命令后,BLE CLIENT 端需要执行如下指令,以接受加密配对请求

AT+BLEENCRSP=0,1 //此时将会产生动态配对加密秘钥

AT+BLEKEYREPLY=0,595497 //BLE CLIENT 端回复加密配对秘钥,以建立加密配对绑定



若要设置 BLE 多连接,则对应的 AT 指令如下:


AT+BLEINIT=1

【注意】每次建立 BLE 连接前, BLE SERVER 端都需要执行一次此命令
AT+BLEADVSTART //开始 BLE 广播

AT+BLECONN=1,"24:62:ab:e2:55:12",0,30 //根据 BLE SERVER 查询的 BLE MAC 地址建立 BLE 连接,1 为建立连接的端口号,30 为连接超时时间设置,单位“秒”

【注意】在 BLE SERVER 执行 :
AT+BLEENC=1,3
命令后,
BLE CLIENT 端需要执行如下指令,以接受加密配对请求

AT+BLEENCRSP=1,1 //此时将会产生端口号为 1 的连接的动态配对加密秘钥

AT+BLEKEYREPLY=1,351816 //BLE CLIENT 端回复加密配对秘钥,以建立加密配对绑定

Rainbow
Posts: 26
Joined: Fri May 21, 2021 3:21 am

Re: 【ESP32】Ble 加密配对最多只能保持 1 个设备的连接吗?

Postby Rainbow » Tue Jun 08, 2021 11:26 am

已解决,测试结果如下:

可与多个设备建立加密绑定配对。

Ble 加密配对绑定.png
Ble 加密配对绑定.png (416.8 KiB) Viewed 4144 times

Who is online

Users browsing this forum: No registered users and 60 guests