多个 ESP32 设备通过 ESP-AT 测试 BLE 动态加密配对流程

本文详细介绍了如何使用ESP32设备配置BLE服务器(BLESERVER)和客户端(BLEClient)进行加密连接。BLESERVER通过一系列AT指令初始化服务、设置广播参数和加密参数,并启动广播。BLEClient则通过连接命令与BLESERVER建立连接,并进行加密配对。在多连接场景下,BLESERVER可以同时连接3个BLEClient,但每次仅能与一个客户端建立加密配对。

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 端回复加密配对秘钥,以建立加密配对绑定
    

【说明】

  • AT Ble Server 最多可同时连接 3 个 Ble Client 设备
  • AT Ble Server 每次最多只能与一个 Client 建立加密配对绑定,测试结果如下:
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值