博客
关于我
esp-at application: BLE Command Set
阅读量:159 次
发布时间:2019-02-28

本文共 3702 字,大约阅读时间需要 12 分钟。

ESP-AT BLE命令参考

一: 概述

ESP-AT BLE命令支持两种角色:BLE服务器和BLE客户设备。设备可以根据需要分别作为服务器或客户工作。

当使用BLE服务器角色时,设备可以同时支持3个客户连接;当使用BLE客户角色时,设备可以同时支持3个服务器连接。

除了常规的GATT和GAP命令,ESP-AT BLE还支持BLE HID功能,可模拟鼠标、键盘等设备输入输出。

ESP-AT BLE命令功能全面,涵盖定制服务、定制广告数据、发现服务、数据传输、更新连接参数、更新MTU大小、设置加密参数等功能。同时,ESP-AT BLE还支持私密的BLE透明传输协议,可在经典蓝牙透明传输之外选择使用BLE透明传输。

二: 命令分类

ESP-AT BLE命令按功能分类以便使用:

2.1 角色设置

初始化设备时需先确定其作为客户端或服务器端:

初始化为客户端:

AT+BLEINIT=1OK

初始化为服务器端:

AT+BLEINIT=2OK

切换设备角色需先重置协议栈,再重新初始化:

AT+BLEDEINIT

关闭BLE:

AT+BLEINIT=0OK

客户端和服务器端的命令有一定差异,请参考下文详细说明:

BLE客户端特有命令:

AT+BLESCANPARAM      // 设置扫描参数AT+BLESCAN           // 启用或禁用扫描AT+BLECFGMTU         // 交换MTU大小AT+BLECONN           // 连接远端设备AT+BLEGATTCPRIMSRV   // 发现包含服务AT+BLEGATTCINCLSRV   // 获取包含服务AT+BLEGATTCCHAR      // 在特定服务中查找特性AT+BLEGATTCWR        // 写入特性值AT+BLEGATTCRD        // 读取特性值AT+BLECONNPARAM      // 更新连接参数

BLE服务器特有命令:

AT+BLEADVPARAM       // 设置广告参数AT+BLEADVDATA        // 设置广告数据AT+BLESCANRSPDATA    // 扫描响应数据AT+BLEADVSTART       // 启用广告AT+BLEADVSTOP        // 禁用广告AT+BLEGATTSSRVCRE    // 创建服务AT+BLEGATTSSRVSTART  // 启用服务AT+BLEGATTSSRV       // 查询本地服务AT+BLEGATTSCHAR      // 在本地服务中查找特性AT+BLEGATTSNTFY      // 向客户端发送通知AT+BLEGATTSIND       // 向客户端发送指示AT+BLEGATTSSETATTR   // 设置特性属性值本地

客户端和服务器共用的命令:

AT+BLEINIT           // 初始化BLE协议栈AT+BLEADDR           // 获取BLE地址AT+BLENAME           // 设置或获取设备名称AT+BLEDISCONN        // 断开连接AT+BLEDATALEN        // 设置数据包长度AT+BLESPPCFG         // 配置BLE透明传输参数AT+BLESPP           // 进入BLE透明传输模式AT+BLESECPARAM       // 设置BLE加密参数AT+BLEENC            // 发起BLE加密请求AT+BLEENCRSP         // 响应BLE加密请求AT+BLEKEYREPLY       // 设置或获取其他设备的静态密钥AT+BLEENCDEV         // 获取已绑定设备信息AT+BLEENCCLEAR       // 删除已绑定设备信息AT+BLESETKEY         // 设置BLE静态密钥

2.2 功能概述

ESP-AT BLE命令功能涵盖初始化、广告与扫描、连接与通信、参数更新、加密等多个方面:

三: 示例

3.1 iBeacon示例

iBeacon主要用于广告、室内定位等场景,发送特定格式的BLE广告包。通过WeChat震动可以发现周围设备:

初始化设备为服务器:

AT+BLEINIT=2OK

设置广告参数建议使用以下命令:

AT+BLEADVPARAM=64,64,3,0,7

设置广告数据:

AT+BLEADVDATA="0201061AFF4C000215FDA50693A4E24FB1AFCFC6EB0764782527B7F206C5"OK

启用广告:

AT+BLEADVSTARTOK

此时可通过WeChat震动发现iBeacon广告包。

3.2 扫描周围BLE设备

扫描是常见场景,例如扫描beacon包,扫描周围设备进行连接等。命令为:

AT+BLESCAN=1OK

参数说明:

+BLESCAN: MAC地址、RSSI值、广告数据、扫描响应数据、地址类型(0:公共,1:随机)

3.3 建立连接

连接命令包括AT+BLECONN和AT+BLEDISCONN。连接需指定连接索引和目标设备MAC地址:

AT+BLECONN=0,"c4:4f:33:16:f8:c3"OK

断开连接:

AT+BLEDISCONN=0+BLEDISCONN:0,"c4:4f:33:16:f8:c3"OK

3.4 数据传输

BLE数据传输基于属性协议。在初始化服务器前,需先创建并启动服务:

AT+BLEGATTSSRVCREOKAT+BLEGATTSSRVSTARTOK

服务查询命令:

AT+BLEGATTSSRV?+BLEGATTSSRV:1,0,0xA002,1OK

客户端读写特性值:

AT+BLEGATTCRD=0,1,0+BLEGATTCRD:0,1,0OK

客户端写特性值:

AT+BLEGATTCWR=0,3,4,10>abcdefghijOK

3.5 通知与指示

服务器可通过通知或指示向客户端发送数据:

AT+BLEGATTSNTFY=0,1,6,8>123456789OK

客户端需提前注册通知或指示:

AT+BLEGATTCWR=0,3,6,1,2>OK

四: 加密

ESP-AT支持所有BLE安全等级,提供完整的加密功能:

4.1 加密参数设置

设置加密参数时,可指定以下参数:

AT+BLESECPARAM=auth_req,iocap,key_size,init_key,resp_key,[auth_option]OK

auth_req参数说明:

  • 0: NO_BOND(无绑)
  • 1: BOND(绑定)
  • 4: MITM(中间人)
  • 8: SC_ONLY(只要求连接)
  • 9: SC_BOND(要求连接且绑定)
  • 12: SC_MITM(要求连接且 MITM)
  • 13: SC_MITM_BOND(要求连接、MITM且绑定)

iocap参数说明:

  • 0: DisplayOnly(仅显示)
  • 1: DisplayYesNo(显示Yes/No)
  • 2: KeyboardOnly(仅键盘)
  • 3: NoInputNoOutput(无输入无输出)
  • 4: Keyboard displa(显示键盘)

4.2 加密组合示例

根据不同的IO设置,组合会有不同的效果:

  • 一方有输入能力,另一方有输出能力
  • 两方均有输入输出能力

4.3 加密示例

示例:两设备完成加密和绑定:

// 客户端设置:AT+BLESECPARAM=13,4,16,3,3OK// 服务器设置:AT+BLESECPARAM=13,2,16,3,3OK

发起加密请求:

AT+BLEENC=0,3OK

服务器响应:

+BLESECREQ:0

客户端确认:

AT+BLEENCRSP=0,1OK

交换密钥:

AT+BLEKEYREPLY=0,344804OK

成功验证:

+BLEAUTHCMPL:0,0

五: SPP实现

SPP(软件协议协议)实现方法:

使用两个ESP32模块或手机与对应芯片组:

初始化:

// 客户端:AT+BLEINIT=1OK// 服务器:AT+BLEINIT=2OK

创建并启动服务:

AT+BLEGATTSSRVCREOKAT+BLEGATTSSRVSTARTOKAT+BLEADVSTARTOK

客户端连接:

AT+BLECONN=0,”XX:XX:XX:XX:XX:XX”OK

服务查询:

AT+BLEGATTCPRIMSRV=0AT+BLEGATTCCHAR=0,3AT+BLESPPCFG=1,3,3,3,7

设置SPP参数:

AT+BLESCANPARAM=1,tx_service_index,tx_char_index,rx_service_index,rx_char_index

进入SPP模式:

AT+BLESPP

转载地址:http://ztxd.baihongyu.com/

你可能感兴趣的文章
network小学习
查看>>
Netwox网络工具使用详解
查看>>
Net与Flex入门
查看>>
net包之IPConn
查看>>
Net操作配置文件(Web.config|App.config)通用类
查看>>
Neutron系列 : Neutron OVS OpenFlow 流表 和 L2 Population(7)
查看>>
New Relic——手机应用app开发达人的福利立即就到啦!
查看>>
NFinal学习笔记 02—NFinalBuild
查看>>
NFS
查看>>
NFS Server及Client配置与挂载详解
查看>>
NFS共享文件系统搭建
查看>>
nfs复习
查看>>
NFS安装配置
查看>>
NFS的安装以及windows/linux挂载linux网络文件系统NFS
查看>>
NFS的常用挂载参数
查看>>
NFS网络文件系统
查看>>
nft文件传输_利用remoting实现文件传输-.NET教程,远程及网络应用
查看>>
NFV商用可行新华三vBRAS方案实践验证
查看>>
ng build --aot --prod生成文件报错
查看>>
ng 指令的自定义、使用
查看>>