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

  • 蓝牙 AT 加密指令参考:
AT+RESTORE             // 恢复出厂设置
AT+GMR                 //查询模组版本信息
AT+BLEINIT=2            // 将模组初始化为 server
AT+BLEGATTSSRVCRE             // GATTS 创建服务
AT+BLEGATTSSRVSTART           //GATTS 开启服务
AT+BLEADDR?            // 查询 BLE 设备的 public address。
AT+BLEENCDEV?           //查询配对绑定的设备信息
AT+BLEADVPARAM=50,50,0,0,4     // (可不执行)设置⼴播参数
AT+BLEADVDATA="020120"         //(可不执行)设置 BLE ⼴播数据
AT+BLESECPARAM=1,0,16,3,3,0      //设置加密参数         
AT+BLEADVSTART                  //开始 BLE 广播,每次建立 BLE 连接前都需要执行一次此命令
AT+BLEENC=0,3      //无秘钥连接后,进行这一步,即可产生加密连接请求,并产生加密密钥。

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

  • 连接 BLE SERVER 的 AT 指令如下:
AT+RESTORE             // 恢复出厂设置
AT+BLEINIT=1          //将设备设为 Ble Client
AT+BLEENCDEV?      //查询配对绑定的设备信息
AT+BLECONN=0,"30:ae:a4:80:59:7a",0,30       //根据 BLE SERVER 查询的 BLE MAC 地址建立 BLE 连接,0 为建立连接的端口号,30 为连接超时时间设置,单位“秒”

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

AT+BLEENCRSP=0,1   //此时将会产生动态配对加密秘钥,此命令需要在上条指令完成后的 30 秒内完成

AT+BLEKEYREPLY=0,595497    //BLE CLIENT 端回复加密配对秘钥,以建立加密配对绑定,此命令需要在上条指令完成后的 30 秒内完成
  • 若要设置 BLE 多连接,则对应的 AT 指令如下:
AT+RESTORE             // 恢复出厂设置
AT+BLEINIT=1          //将设备设为 Ble Client

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

AT+BLEENCDEV?    //查询配对绑定的设备信息

AT+BLECONN=1,"30:ae:a4:80:59:7a",0,30       //根据 BLE SERVER 查询的 BLE MAC 地址建立 BLE 连接,0 为建立连接的端口号,30 为连接超时时间设置,单位“秒”

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

AT+BLEENCRSP=1,1   //此时将会产生端口号为 1 的连接的动态配对加密秘钥,此命令需要在上条指令完成后的 30 秒内完成

AT+BLEKEYREPLY=1,351816    //BLE CLIENT 端回复加密配对秘钥,以建立加密配对绑定。此命令需要在上条指令完成后的 30 秒内完成

测试结果如下:

esp32 RSA加密与Linux对比 esp32固件加密_设备信息


【说明】

  • AT Ble Server 最多可同时连接 3 个 Ble Client 设备
  • AT Ble Server 最多可保存 10 个 Client 的加密配对绑定的信息。


【参考资料】