概述
本模块支持BLE 蓝牙,目前BLE 蓝牙支持扫描热点,数据收发,以及发起广播等功能
硬件上支持蓝牙功能的模块型号如下:
Air720UH_NF:支持
Air720UH_NFC:不支持
Air720UH_NA:不支持
Air720UG_NAC:不支持
Air720UG_NAM:支持
Air724UG_NFM:支持
Air724UG_NFC:不支持
Air724UG_NAT:不支持
Air724UG_NA:支持
Air722UG_NFC:不支持
Air722UG_NFM:支持
蓝牙相关AT指令
打开/关闭 蓝牙指令:AT+BTCOMM=ENABLE
描述:
此命令用于打开/关闭蓝牙
语法规则:
命令类型 语法 返回
设置命令 AT+BTCOMM=ENABLE,[,< mode >] OK
查询命令 AT+BTCOMM=ENABLE? +BTCOMM:ENABLE=,
OK
参数定义:
参数 定义 取值 对取值的说明
打开蓝牙 1 字符串参数
关闭蓝牙 0 字符串参数
从模式 0 字符串参数
主模式 1 字符串参数
举例:
AT+BTCOMM=ENABLE,1,0
OK
AT+BTCOMM=ENABLE,0,0
OK
如果失败会返回:ERROR或+CME ERROR:
设置BLE设备名称:AT+BLECOMM=NAME
描述:
此命令,用于设置BLE设备名称,参数是设备名称,最长26byte
语法规则:
语法规则:
命令类型 语法 返回
设置命令 AT+BLECOMM=NAME, OK
查询命令 AT+BLECOMM=NAME? +BTCOMM: NAME=
OK
参数定义:
参数 定义 取值 对取值的说明
参数为设备名,最长不能超过26字节; 只允许使用英文、 数字、 下划 线; - ASCII
举例:
AT+BLECOMM=NAME,LuatOS-Air_Air724UG
OK
AT+BLECOMM=NAME?
+BLECOMM: NAME=LuatOS-Air_Air724UG
OK
如果失败会返回:ERROR或+CME ERROR:
设置广播包数据:AT+BLEADV=ADVDATA
描述:
此命令,用于设置广播包数据,有2个参数
语法规则:
命令类型 语法 返回
设置命令 AT+BLEADV=ADVDATA,, OK
查询命令 AT+BLEADV=ADVDATA? +BLEADV: DATA=,
OK
参数定义:
参数 定义 取值 对取值的说明
数据长度 ---- 十六进制数据长度
数据内容,最长不能超过31字节 十六进制数字符串参数
举例:
AT+BLEADV=ADVDATA,5,04ff010203
OK
AT+BLEADV=ADVDATA?
+BLEADV: DATA=04ff010203
OK
如果失败会返回:ERROR或+CME ERROR:
设置响应包数据:AT+BLEADV=SCANRSPDATA
描述:
此命令,用于设置响应包数据,有2个参数
语法规则:
命令类型 语法 返回
设置命令 AT+BLEADV=SCANRSPDATA,, OK
查询命令 AT+BLEADV=SCANRSPDATA? +BLEADV: DATA=,
OK
参数定义:
参数 定义 取值 对取值的说明
数据长度 ---- 十六进制数据长度
数据内容,最长不能超过31字节 十六进制数字符串参数
举例:
AT+BLEADV=SCANRSPDATA,5,04ff010203
OK
AT+BLEADV=SCANRSPDATA?
+BLEADV: DATA=04ff010203
OK
如果失败会返回:ERROR或+CME ERROR:
打开/关闭 蓝牙广播指令:AT+BLEADV=ENABLE
描述:
此命令,用于开关广播,有一个参数
语法规则:
命令类型 语法 返回
设置命令 AT+BLEADV=ENABLE, OK
查询命令 AT+BLEADV=ENABLE? +BLEADV: ENABLE=
OK
参数定义:
参数 定义 取值 对取值的说明
关闭广播 0 数字
打开广播 1 数字
举例:
AT+BLEADV=ENABLE,0
OK
AT+BLEADV=ENABLE,1
OK
如果失败会返回:ERROR或+CME ERROR:
连接状态上报指令:+BLEIND=CONNECT
描述:
此命令,用于上报连接状态
语法规则:
命令类型 语法
URC上报 +BLEIND=CONNECT[,
+BLEIND=CONNECT FAIL
参数定义:
参数 定义 取值 对取值的说明
对端设备地址 字符串 设备地址(小端排序,共6个字节),例如:40:45:DA:33:22:11 举例:+BLEIND=CONNECT,40:45:DA:33:22:11
断开连接状态上报指令:+BLEIND=DISONNECT
描述:
此命令,用于上报断开连接状态
语法规则:
命令类型 语法
URC上报 +BLEIND=DISONNECT[,
参数定义:
参数 定义 取值 对取值的说明
对端设备地址 字符串 设备地址(小端排序,共6个字节),例如:40:45:DA:33:22:11 举例:+BLEIND=DISONNECT,40:45:DA:33:22:11
打开/关闭 蓝牙扫描指令:AT+BLESCAN=ENABLE
描述:
此命令,用于开关扫描,有一个参数
语法规则:
命令类型 语法 返回
设置命令 AT+BLESCAN=ENABLE, OK
查询命令 AT+BLESCAN=ENABLE? +BLESCAN: ENABLE=
OK
参数定义:
参数 定义 取值 对取值的说明
关闭广播 0 数字
打开广播 1 数字
举例:
AT+BLESCAN=ENABLE,0
OK
AT+BLESCAN=ENABLE,1
OK
如果失败会返回:ERROR或+CME ERROR:
扫描结果上报指令:+BLEIND=SCAN
描述:
此命令,用于上报扫描结果
语法规则:
命令类型 语法
URC上报 +BLEIND=SCAN,
参数定义:
参数 定义 取值 对取值的说明
设备蓝牙地址 字符串 设备地址(小端排序,共6个字节),例如:40:45:DA:33:22:11 设备蓝牙地址类型 0 public 1 random 信号强度 数值 -128~127 广播原始数据 16进制字符串 最长31个字节 举例:+BLEIND=SCAN,40:45:DA:33:22:11,0,-75,0201060E094C7561745F4169723732345547
蓝牙连接指令:AT+BLECOMM=CONNECT
描述:
此命令,用于连接蓝牙,有两个参数
语法规则:
命令类型 语法 返回
设置命令 AT+BLECOMM=CONNECT,,
查询命令 AT+BLECOMM=CONNECT? +BTCOMM: CONNECT=,
OK
参数定义:
参数 定义 取值 对取值的说明
连接状态 0 断开状态
1 连接状态
AT+BLECOMM=CONNECT,0,40:45:DA:33:22:11
OK
如果失败会返回:ERROR或+CME ERROR:
蓝牙断开连接指令:AT+BLECOMM=DISCONNECT
描述:
此命令,用于断开连接蓝牙
语法规则:
命令类型 语法 返回
设置命令 AT+BLECOMM=DISCONNECT OK
参数定义:
无
举例:
AT+BLECOMM=DISCONNECT
OK
如果失败会返回:ERROR或+CME ERROR:
蓝牙发现服务指令:AT+BLECOMM=FINDSERVICE
描述:
此命令,用于发现蓝牙包含的服务
语法规则:
命令类型 语法 返回
设置命令 AT+BLECOMM=FINDSERVICE OK
参数定义:
无
举例:
AT+BLECOMM=FINDSERVICE
OK
如果失败会返回:ERROR或+CME ERROR:
服务uuid上报指令:+BLEIND=FINDSERVICE
描述:
此命令,用于上报服务uuid
语法规则:
命令类型 语法
URC上报 +BLEIND=FINDSERVICE,<uuid_s>
参数定义:
参数 定义 取值 对取值的说明
<uuid_s> 服务uuid 十六进制字符串 ------------
举例:
+BLEIND=FINDSERVICE,fee0
蓝牙发现服务内特征指令:AT+BLECOMM=FINDCHARACTERISTIC
描述:
此命令,用于发现蓝牙服务包含的特征
语法规则:
命令类型 语法 返回
设置命令 AT+BLECOMM=FINDCHARACTERISTIC, <uuid_s> OK
参数定义:
参数 定义 取值 对取值的说明
<uuid_s> 服务uuid 十六进制字符串 ------------
举例:
AT+BLECOMM=FINDCHARACTERISTIC,fee0
OK
如果失败会返回:ERROR或+CME ERROR:
特征uuid上报指令:+BLEIND=FINDCHARACTERISTIC
描述:
此命令,用于上报服务包含的特征uuid
语法规则:
命令类型 语法
URC上报 +BLEIND=FINDCHARACTERISTIC,<uuid_c>
参数定义:
参数 定义 取值 对取值的说明
<uuid_c> 特征uuid 十六进制字符串 ------------
举例:
+BLEIND=FINDCHARACTERISTIC,fee1
+BLEIND=FINDCHARACTERISTIC,fee2
打开/关闭 通知指令:AT+BLECOMM=NOTIFICATION
描述:
此命令,用于开关通知,有两个参数
语法规则:
命令类型 语法 返回
设置命令 AT+BLECOMM=NOTIFICATION, <uuid_c>, OK
参数定义:
参数 定义 取值 对取值的说明
关闭广播 0 数字
打开广播 1 数字
<uuid_c> 特征uuid 十六进制字符串 ------------
举例:
AT+BLECOMM= NOTIFICATION,fee2,1
OK
AT+BLECOMM= NOTIFICATION,fee2,0
OK
如果失败会返回:ERROR或+CME ERROR:
发送数据指令:AT+BLECOMM=SENDATA
描述:
此命令,用于发送数据
语法规则:
命令类型 语法 返回
设置命令 AT+BLECOMM=SENDDATA,<uuid_c>,, OK
参数定义:
参数 定义 取值 对取值的说明
<uuid_c> 特征uuid 十六进制字符串 ------------
数据长度 数值 十六进制数据长度
数据内容,最长不能超过244字节 十六进制数字符串参数
举例:
AT+BLECOMM=SENDDATA,fee2,10,31323334353637383930
OK
如果失败会返回: + BLECOMM:ERR=error
数据上报指令:+BLEIND=DATA
描述:
此命令,用于上报接收到的数据
语法规则:
命令类型 语法
URC上报 +BLEIND=DATA,<uuid_c>,,
参数定义:
参数 定义 取值 对取值的说明
<uuid_c> 特征uuid 十六进制字符串 ------------
数据长度 数值 十六进制数据长度
数据内容,最长不能超过244字节 十六进制数字符串参数
举例:
+BLEIND=DATA,“fee1”,10,“31323334353637383930”
蓝牙MAC地址读写指令:AT+BTMAC
描述:
此命令,用于蓝牙MAC地址读写
语法规则:
命令类型 语法 返回
设置命令 AT+BTMAC=
查询命令 AT+BTMAC? +BTMAC:
OK
参数定义:
参数 定义 取值 对取值的说明
设备蓝牙地址 字符串 设备地址(小端排序,共6个字节),例如:40:45:DA:33:22:11 举例:AT+BTMAC=40:45:DA:33:22:11
OK
AT+BTMAC?
+BTMAC:40:45:DA:33:22:11
OK
如果失败会返回:ERROR或+CME ERROR:
蓝牙从模式测试/使用流程
- 下载手机蓝牙测试工具 nrf connect
- 通过串口发送指令 AT+BTCOMM=ENABLE
AT+BTCOMM=ENABLE,1,0
OK
3.设置广播模块名称(需要在广播关闭状态下发送)
AT+BLECOMM=NAME,AIRM2M_LuatOS-Air
OK
4.设置广播包数据(需要在广播关闭状态下发送)
AT+BLEADV=ADVDATA,8,02010604ff010203
OK
此处数据段(04ff010203 )含义是长度为04,标识为manufacturer specific data(ff)的数据,详情请见BLE广播协议
5.设置响应包数据(需要在广播关闭状态下发送)
AT+BLEADV=SCANRSPDATA,3,020A04
OK
6.打开广播
AT+BLEADV=ENABLE,1
OK
7.连接蓝牙
i.打开第一步下载的nrf connect 安卓应用
ii.查看蓝牙和广播信息(当前信息是根据上述AT来的,如果字节修改了其他值则看到的不一样)
图(1).寻找蓝牙和功能点介绍
图(2).广播内容介绍
图(3).当前蓝牙服务介绍
8.测试蓝牙
i.手机给蓝牙发送数据
图(4).手机给模块发送数据
通过上述 图(3) 特征值为fffe 的特征发送数据(4321),串口数据会吐出
04 03 02 01
ii.模块给中心设备(手机)发送数据
AT+BLECOMM=SENDDATA,8910,5,“3132333435”
OK
手机收到
图(5).手机收到模块发送的数据
相关资料以及购买链接
相关开发板购买链接
Air724UG开发板
Air724 开发板使用说明
相关软件资料下载
常见问题
1.开发板搜不到手机蓝牙
手机默认蓝牙不是BLE蓝牙需配置为BLE蓝牙,可下载nRF类似软件。
蓝牙种类
2.AT命令设置的广播数据,重启后数据不会保存吗,每次上电都要重新设置吗
是的,模块不会保存