正点原子 ATK-BLE04 、ATK-BLE05 蓝牙模块学习使用
文章目录
1、BLE04和BLE05对比
蓝牙BLE04和BLE05是很类似的,05算是升级版,支持的功能更多,本文会以05为例测试使用。
两者参数对比如下表:
模块实物图如下:
版本具体区分:看屏蔽罩表面的ATK-BLE04、ATK-BLE05字样。
2、前期准备工作
2.1 模块接线
蓝牙模块 | USB-TTL模块 |
---|---|
VCC(5V) | VCC (5V) |
GND | GND |
TXD | RXD |
RXD | TXD |
STA | 悬空 |
WUP | 悬空 |
接线如下图:
注意:
1、开关档位选择要正确,不然会影响正常通信。
2、确保串口驱动是已经安装了的,设备管理器要正常识别到该串口驱动。
2.2 资料说明
模块使用资料下载链接: https://pan.baidu.com/s/1YNwVu9O6rVTETDANFf4rAg
提取码:9y58
详细学习请查看 ATK-BLE05蓝牙模块用户手册 V1.0.pdf
3、指令配置
3.1 AT指令介绍
参考用户手册第3.11 AT 指令集
如果用的是正点原子的串口调试助手,该软件是集成回车换行按钮的,直接勾选发送新行按钮就行,非常方便。
3.2 AT指令示例
模块进入指令配置模式和指令格式说明如下:
模块进入配置模式:
按照步骤依次操作,注意不要添加回车。
进入后会有OK返回提示,接着就勾选发送新行按钮,即可继续发送其它指令操作了。
模块退出配置模式:
查询模块的工作模式:
返回的参数是0,查阅手册0表示从机模式。
具体指令操作和说明,查看ATK-BLE05 模块的 AT 指令集即可。。。
例如下面这个工作模式的指令,响应返回的内容,对照指令表格里面的参数说明就可以了。查看其它指令也同理。
表格中有6个工作模式,看前面的标号对应即可。
4、模块主从通信
注意,下面的实验都会默认操作软件的发送新行按钮,本文为了减短编幅,不截图无关内容了,根据实际需求勾选即可,请知悉。。。
4.1 一对一通信(主从)
需要完成一对一通信功能,则需要准备两个模块。
设备A做主机,设备B做从机
步骤1:
打开一个串口助手,首先将设备 B 进入配置模式, 设置为从机工作模式, 此时模块会复位运行的,需要重新再次发指令进入配置模式(不然指令无效),查询 MAC 地址,获取到MAC后即可退出配置模式进行通信。
用到的指令如下:
+++atk
AT
AT+MODE=0
AT+MAC?
AT+ENTM
步骤2:
新打开另外一个串口助手,让设备 A 进入配置模式, 设置为主机工作模式, 待模块复位后再次发指令进入配置模式,发送扫描指令扫描周边设备MAC, 此时可搜索到周边的从机设备,目的是为了确认设备B是否就绪。接着从搜索到的MAC中找到设备 B 的MAC即可,如果搜索不到则需去检查设备B的配置及硬件连接情况,如果搜索不到是无法进行连接的。
用到的指令如下:
+++atk
AT
AT+MODE=2
AT+SCAN=1
AT+CONADD=从机MAC
AT+ENTM
当主机连接上从机后,此时就可以让双方都退出配置模式了,即默认进入透传模式,双方的状态灯也保持一致常亮了。
双方的串口助手发送指定的内容后,对方都可以收到,如下图所示。
当双方处于正常通信时,如果一方突然断电或发生故障后,双方就会断开连接,状态灯从常亮转变为闪烁状态,此时双方再无法互相通信了,需要重新进行指令配置进入透传才行, 因为双方无法自动进入透传通信功能。
要完成这个实验,首先要懂得这个实验的基本实现流程,指令的配置等,只要知道了该过程就很容易实现了。
另外,除了可以用字符发送形式,还可以用十六进制格式发送的,方法流程如下:
先进入透传模式,勾选串口助手左下角的16进制发送方式,然后在消息发送区域输入十六进制内容(切记不要先输入内容再勾选,这样格式是错误的),完成点击发送就可以了。注意接收方也要勾选16进制显示按钮。
后面数据多了0D 0A 2字节数据,那是下面勾选了发送新行按钮的,如果不需要则可以取消勾选再发送。
4.2 一对一绑定对方MAC通信(主从)
在前面一对一通信的基础上,通过绑定双方的MAC地址,可以实现自动配对进入透传通信,即无论在什么情况下,只要保持双方处于供电状态都会自动配对连接,无需再次手动去配置指令了,非常方便。
在一对一通信基础上,主机增加AT+BONDMAC指令就行。
从机配置不变,只需要把主机设备连接从机MAC的指令AT+CONADD替换成绑定MAC指令AT+BONDMAC就行,操作起来也非常简单。
用到的指令如下:
+++atk
AT
AT+MODE=2
AT+SCAN=1
AT+BONDMAC=从机MAC
AT+ENTM
这样无论哪一方断电了,只要重新供电,都会自动建立连接进入透传数据,使用起来比较方便。
如果不需要绑定了,可以发送解除绑定指令AT+BONDDEL。
解除绑定后,状态指示灯不会立即处于闪烁状态,还是会保持常亮的,实际是已经接触绑定了的,如果要看状态则可以断电重新供电就可以让状态灯处于闪烁了。
4.3 一主多从通信
一对多通信就是一个主机,多个从机通信,这款蓝牙模块支持最大连接 4 个从机通信。
这个功能的基础使用和一对一的通信方式一样,不同的是绑定多个从机地址步骤而已。
步骤1:
先发指令扫描一下周围从机的MAC,如下图;
步骤2:
分别连接从机MAC,如下图:
主设备分别连接上2个从设备后,模块的状态灯都处于常亮状态了。
步骤3:
接着就可以都发退出配置模式指令,让其进入透传状态。
主机发送内容,2个从机都可以同时收到,如下图:
从机发送内容,主机可以收到,但另外的从机无法收到。
另外:
如果要主机给指定从机发送内容,可以通过如下方式实现:
主机先进入配置模式,分别发送指令AT+TRANMODE=1和AT+LINKSTA,查询从机MAC的序号。
发送数据,以十六进制形式,前面是从设备的序号,后面就都是数据:
这样就能给指定从机设备发送内容了。
要用这个功能需要使用十六进制的格式发送,不是很方便,如果有这方面的需求,可以考虑使用。
当然,这个功能也可以直接用一对一通信方式替代,效果一样的,还省去了一些指令步骤。如果不需要从机都同时接收的,个人比较建议用一对一通信方式相对简单些。
5、模块与手机通信
5.1 模块与手机APP通信
安卓手机须安装如下软件APP:
当然,其它的APP也是可以的,用法基本类似,根据个人需求使用即可。大部分APP要求手机开启GPS功能的,不然用不了。
模块和手机APP数据通信,那么蓝牙设备就需要配置为从设备工作模式,手机默认是主机了的。
用到的指令如下:
+++atk
AT
AT+NAME?
AT+NAME=ATK-BLE05 //该指令可选择使用,如果不需要设置其它名字了就直接读取名字使用就行
AT+MODE=0
AT+ENTM
这里需注意,发送配置工作模式指令后,模块会自动重启的,就相当于自动进入透传模式了,如果后面无需再配置其它指令了,那么就可以直接使用啦,退出配置模式指令就不用再去发了的,可省略。
模块指令配置如下:
配置完指令后,模块状态指示灯处于慢闪状态。
接着可以打开手机APP了。
可以看到搜索到蓝牙名字了,点击CONNECT按钮即可连接。
显示连接成功后,就可以点击编号5和6进行收发数据了。
发送数据
接收数据
5.2 模块与微信小程序通信
微信小程序通信界面是很简洁的,就数据的发送和接收窗口。但使用前需要手机开启GPS功能。
微信搜索这个蓝牙串口名字应用,如下图标:
使用小程序通信需要将模块设置为从设备模式,手机做主机。
用到的指令如下:
+++atk
AT
AT+NAME?
AT+NAME=ATK-BLE05 //该指令可选择使用,如果不需要设置其它名字了就直接读取名字使用就行
AT+MODE=0
AT+ENTM
串口助手依次发以上这些指令就可以了。
接着就可以打开小程序进行搜索蓝牙设备了。
当看到已经搜索到蓝牙名字了,直接点击连接即可。
当连接成功后,模块状态灯会常亮。
进去界面后是如下图界面所示:
可以看到功能是很少的,也基本可以满足功能使用了的。
数据收发如下图:
如果要验证数据是否收发完整,可以看收发的字节数对应就行。
6、模块恢复出厂
模块出厂参数如下图:
如果模块在使用过程中发现有问题了导致无法通信,可以硬件复位模块,让其恢复到默认参数就可以了,不能用的情况一般是模块里面的参数错乱了导致的。
操作方法:
在模块上电之前,拉低RELOAD 引脚,该引脚是低电平有效的。上电后拉低保持引脚大于 3 秒,即可恢复出厂设置。
想办法(用镊子、母对母杜邦线等)把模块的这2个引脚短接起来就行,如下图:
此时再给模块读取参数,就是上表的出厂参数了。
7、模块固件烧写
打开资料,烧写固件软件在如下路径:软件资料\固件\atk_ble_upgrade V1.0.exe
操作步骤流程;
第一步:选择正确的端口号,具体也可以到设备管理器里面查看。
第二步:任意选择一个波特率,推荐115200。
第三步:打开串口按钮。
第四步:选择本地固件烧写方式。
第五步:打开添加本地固件,以xxx.atk结尾的,型号(04/05)要和模块对应。
第六步:点击开始升级按钮就可以开始烧录了,过程会有一个进度条变动提示。
烧写过程如下图:
烧写完成如下图:
烧录过程中,模块状态灯会快闪的,完成后是慢闪。
完成后就可以正常去发指令配置了。