TB-02 Kit 开发板 AT指令集

  • Post author:
  • Post category:其他




摘要

这篇文章主要介绍了如何使用TB系列模块的AT固件,实现模块与手机通信,模块与模块通信,蓝牙广播包扫描以及iBeacon应用等。

关键字:低功耗蓝牙、BLE、AT固件

TB模块与手机通信



AT指令集速


序号 指令 功能 备注
1 AT 测试AT
2 ATE 开关回显
3 AT+GMR 查询固件版本
4 AT+RST 重启模组
5 AT+SLEEP 深度睡眠
6 AT+ RESTORE 恢复出厂设置 恢复后将重启
7 AT+BAUD 查询或设置波特率 重启后生效
8 AT+NAME 查询或设置蓝牙广播名称 重启后生效
9 AT+MAC 设置或查询模组MAC地址 重启后生效
10 AT+MODE 查询或者是主从模式
11 AT+STATE 查询蓝牙连接状态
12 AT+SCAN 主机模式下发起扫描
13 AT+CONNECT 主机模式下发起连接
14 AT+DISCON 断开连接
15 AT+SEND AT模式下发送数据
16 +DATA AT模式下收到数据
17 AT+ADVDATA 设置广播数据中的厂商自定义字段内容
18 AT+LSLEEP 设置或进入轻度睡眠
19 AT+RFPWR 设置或读取发射功率
20 AT+IBCNUUID 设置或读取iBeacon UUID
21 AT+MAJOR 设置或读取iBeacon Major
22 AT+MINOR 设置或读取iBeacon Minor



AT 指令格式


所有AT指令都要以

\r\n

结尾,AT 指令又可以细分为四种格式类型:

类型 指令格式 描述 备注
查询指令 AT+? 查询命令中的当前值。
设置指令 AT+=<…> 设置用户自定义的参数值。
执行指令 AT+ 执行某些参数不可变的功能。
测试指令 AT+=? 返回指令帮助信息


备注 :

  1. 并非所有指令都有这四种类型的命令。
  2. 指令必须⼤大写,并且以回⻋车换⾏符结尾(CR LF)。
  3. 所有指令返回以回车换⾏符开始(CR LF)。
  4. 所有指令返回每行都以回车换⾏符结尾(CR LF)。


指令示例:

字符串 HEX
指令 AT\r\n 41 54 0D 0A
返回 \r\nOK\r\n 0D 0A 4F 4B 0D 0A
字符串 HEX
指令 AT+NAME?\r\n 41 54 2B 4E 41 4D 45 3F 0D 0A 0D 0A
返回 \r\n+NAME:myname\r\nOK\r\n 0D 0A 2B 4E 41 4D 45 3A 6D 79 6E 61 6D 65 0D 0A 4F 4B 0D 0A



AT指令详细应用示例



AT –指令测试

AT
OK


ATE –开关回显

关闭回显:ATE0	
响应	:OK

打开回显:ATE
响应	:OK

备注:参数将会保存到芯片内,下次上电无需设置


AT+GMR – 查询固件版本

执行指令:	AT+GMR
响应:	+VERSION: <version>
        OK


AT+RST –重启模组

执行指令:AT+RST
响应:OK


AT+RESTORE –恢复出厂设置

执行指令:	AT+RESTORE
响应	:OK

出厂设置默认参数如下:
NAME  :Ai-Thinker
ATE    : 0
Baud   :115200
备注	恢复出厂时之后模组将重启


AT+SLEEP –深度睡眠

执行指令:AT+SLEEP
响应	:OK

说明	:进入深度睡眠模式后会将模块RX设为唤醒引脚,UART发送任意数据即可唤醒模块
备注 :进入深度睡眠模式后模组将不能收发数据


AT+BAUD –串口波特率

查询指令:AT+BAUD?	
响应	:+BAUD :<…>
          OK

设置指令:AT+BAUD=<…>
响应:	OK

参数说明	
波特率与数值对应关系如下表:
0=2400
1=4800
2=9600
3=19200
4=38400
5=57600
6=115200
7=230400 
8=460800
9=921600 
示例: 将波特率设为9600,AT+BAUD=2

备注	:更改波特率需重启后才能生效,默认波特率115200


AT+NAME –蓝牙设备名称

查询指令:AT+NAME?
响应:	+NAME :<…>
        OK

设置指令:AT+NAME=<…>
响应:	OK

参数说明:蓝牙设备名为UTF-8编码格式,可以是中文,英文及其他语言或符号

示例	:AT+NAME?	  AT+NAME=abc123

备注	:更改蓝牙设备名称需重启后才能生效


AT+MAC –蓝牙MAC地址

指令	查询指令:AT+MAC?	
响应:	+MAC :<…>
        OK

设置指令:AT+MAC=<…>
响应:OK

参数说明:参数ASCII字符形式16进制数据,长度为12字节。

示例	:AT+MAC?	AT+MAC=AB5F8D9EBB01

备注	:更改蓝牙MAC地址重启后才能生效,字母需大写


AT+MODE –设置主从模式

查询指令:AT+MODE?
响应: +MODE:<x>
	   OK
	   
设置指令:AT+MODE=<x>
响应:OK

参数说明:0 从机模式,1 主机模式,2 iBeacon模式

示例:AT+MODE=1

备注:出厂默认为从机模式


AT+STATE –查询连接状态

查询指令:AT+STATE?
响应	:+STATE:<0/1>
         OK
         
参数说明:0 表示蓝牙未连接, 1 表示蓝牙已连接


AT+SCAN –主机模式下发起扫描

执行指令:AT+SCAN
响应:+ADV:<rssi>,<mac>,<data>
      +ADV:<rssi>,<mac>,<data>
      +ADV:<rssi>,<mac>,<data>
      ... ...
      +ADV:<rssi>,<mac>,<data>
      OK

备注:只有在主机模式下才能发起扫描


AT+CONNECT –主机模式下发起连接

连接指令:AT+CONNECT=<mac>
响应:

示例:AT+CONNECT=A04C185968D2


AT+DISCON –断开连接

指令指令:AT+DISCON
响应:OK


AT+SEND –向手机发送数据

指令:	AT+SEND=<len>,<data>
响应	:OK 发送成功
        :ERROR(2) 参数错误或蓝牙未连接

参数说明	:
len:要发送的数据长度,单位为字节
data:要发送的数据内容,长度应与len一致

示例:
AT+SEND=5,12356
AT+SEND=15,123561235612356
AT+SEND=5,<0x11><0xaa><0xff><0x55><0x89>

备注	:该指令仍要以\r\n结尾,data中的数据可以是任何二进制数据
该指令只在AT模式下有效,透传模式下无需使用该指令


+DATA –收到手机打来的数据

指令	:+DATA=<len>,<data>

参数说明:
len: 收到的数据长度,单位为字节
data:收到的数据内容,长度应与len一致

示例	+DATA=5,12356
+DATA=15,123561235612356
+DATA=5,<0x11><0xaa><0xff><0x55><0x89>

备注:该指令仍以\r\n结尾,data中的数据可以是任何二进制数据
该指令只在AT模式下有效,透传模式下会直接收到原始data数据


AT+ADVDATA –设置广播数据中的厂商自定义字段内容

设置指令:AT+ADVDATA=<data>
响应:OK

查询指令:AT+ADVDATA?
响应:+ADVDATA:<data>
     OK

示例:AT+ADVDATA=123456


AT+LSLEEP –设置或进入轻度睡眠

执行指令:AT+LSLEEP
响应:OK
说明:模块将立即进入轻睡眠模式

设置指令:AT+LSLEEP=<0/1>
响应:OK
说明:设置模块是否自动进入轻度睡眠模式,0不自动,1自动

查询指令:AT+LSLEEP?
响应:+LSLEEP:<0/1>


AT+RFPWR –设置或读取发射功率

设置指令:AT+RFPWR=<0~9>
响应:OK

查询指令:AT+RFPWR?
响应:+RFPWR:<0~9>
      OK


AT+IBCNUUID –设置或读取iBeacon UUID

设置指令:AT+IBCNUUID=<uuid>
返回:OK

查询指令:AT+IBCNUUID?
返回:+IBCNUUID:<uuid>
      OK
      
示例:AT+IBCNUUID=12345678901234567890123456ABCDEF

备注:UUID长度为16字节,这里使用的是16进制ASCII码,共32字节


AT+MAJOR –设置或读取iBeacon Major

设置指令:AT+MAJOR =<Major>
返回:OK

查询指令:AT+MAJOR ?
返回:+MAJOR :<Major>
      OK
      
示例:AT+MAJOR =890F

备注:Major长度为2字节,这里使用的是16进制ASCII码,共4字节


AT+MINOR –设置或读取iBeacon Minor

设置指令:AT+MINOR =<Minor>
返回:OK

查询指令:AT+MINOR ?
返回:+MINOR :<Minor>
      OK
      
示例:AT+MINOR =23C4

备注:Minor长度为2字节,这里使用的是16进制ASCII码,共4字节



从机模式下模块与手机通信

将设备设为从机模式(出厂默认即为从机模式):

AT+MODE=0

手机下载安装BLE Utility APP,并且打开手机的蓝牙功能

搜索设备名称为Ai-Thinker的设备,点击连接。如下图所示,连接成功后将进入蓝牙服务页面,点击最后一个UnknownService,然后点击UnknownCharacteristic右边的箭头和铃铛,指定发送数据点和开启Notify。

点击屏幕右上角的三个点符号,可弹出修改MTU窗口。模块支持的MTU范围为23-250,默认MTU为23。

扫描设备
修改MTU
发送数据

点击手机屏幕上的实时日志按钮(上右图),在输入框中输入123456abc,点击发送,电脑上的串口工具将收到并输出123456abc

串口收到数据

在串口工具中输入ABCD5678,点击发送,手机上也将会收到同样的数据。



两模块通信(一主一从)

在主机模式下,模块可与另一个从机模块通信,主要操作如下:

将其中一个模块配置为主机模式:

AT+MODE=1

主机模块扫描周围的模块:

AT+SCAN

主机模块连接指定的从机模块:

AT+CONNECT=AC04187852AD

注意将上面的MAC地址换成你的从机模块的MAC地址

返回“`OK“表示连接成功,采用如下指令发数据到从机:

AT+SEND=5,12345

备注:主机状态下只有AT指令模式,没有透传模式。



低功耗

该AT固件支持两种睡眠模式,即

深度睡眠



浅睡眠

,在深度睡眠模式下,模块除GPIO唤醒功能外,其他功能全部关闭,功耗在1uA一下。浅睡眠模式除了保留GPIO唤醒外,还保持蓝牙的功能,功耗以广播参数而定,平均约10uA以下。

进入深度睡眠模式:

AT+SLEEP

执行上诉指令模块返回OK后将将立即进入睡眠模式,并将串口RX设为唤醒引脚,再次向模块发送任意字符即可唤醒。

浅睡眠设置:

在未连接状态下,发送如下指令,模块将进入浅睡眠模式:

AT+LSLEEP

在浅睡眠模式下,模块依然会进行蓝牙广播。浅睡眠模式不再响应任何AT指令,可通过串口RX引脚发送任何数据唤醒模块。

当有别的蓝牙设备与该模块连接成功时,也会唤醒模块。

上电自动进入浅睡眠模式:

AT+LSLEEP=1

上电不自动进入浅睡眠模式;

AT+LSLEEP=0

备注:浅睡眠模式在对从机状态下起作用。



iBeacon 模式

iBeacon是苹果公司定义的一套特殊的广播格式,主要用于室内定位。

这个iBeacon广播包共30字节,数据格式如下:

02 # 第一个AD structure 的字节数(接下来的字节数,这里是2个byte)
01 # AD type 的标志
1A # 标志的值 0x1A = 000011010  
bit 0 (OFF) LE Limited Discoverable Mode
bit 1 (ON) LE General Discoverable Mode
bit 2 (OFF) BR/EDR Not Supported
bit 3 (ON) Simultaneous LE and BR/EDR to Same Device Capable (controller)
bit 4 (ON) Simultaneous LE and BR/EDR to Same Device Capable (Host)
1A # 第二个AD structure的字节数 (接下来的字节数,这里是26个)
FF # AD type 的标志,这里Manufacturer specific data.更多的标志可以到BLE的官网找到:例如0x16 表示servicedata
4C 00 # 公司的标志 (0x004C == Apple)
02 # Byte 0 of iBeacon advertisement indicator
15 # Byte 1 of iBeacon advertisement indicator
B9 40 7F 30 F5 F8 46 6E AF F9 25 55 6B 57 FE 6D # iBeacon proximity uuid
00 01# major 
00 01 # minor 
c5 # calibrated Tx Power

TB系列模块支持发送iBeacon广播,在iBeacon 模式下,模块可按照iBeacon格式发送广播,主要操作如下:

将模块配置为iBeacon模式:

AT+MODE=2

设置iBeacon的UUID(16进制格式,共16字节):

AT+IBCNUUID=11223344556677889900AABBCCDDEEFF

设置iBeacon的MAJOR(16进制格式,共2字节):

AT+MAJOR=1234

设置iBeacon的MINOR(16进制格式,共2字节):

AT+MINOR=4567

备注:以上指令均重启后生效,掉电保存。配合设置广播间隙,自动轻度睡眠,可降低iBeacon功耗。



版权声明:本文为weixin_48033504原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。