前言
随着物联网(IoT)技术的迅猛发展,蓝牙技术因其低功耗、易集成以及广泛的应用场景,已成为设备间无线通信的重要手段。在众多蓝牙模块中,HC-05和JDY-31凭借其稳定的性能和经济实惠的价格,广泛应用于各种嵌入式项目中。
HC-05是一款经典的蓝牙串口模块,支持主从模式切换,能够快速与其他蓝牙设备配对,非常适合短距离的数据传输。而JDY-31则是一款低功耗的从机蓝牙模块,体积小巧,功耗极低,特别适用于对功耗要求严格的应用场景。此外,JDY-31的价格也非常具有竞争力(主要是JDY-31便宜!!!)。
尽管这两个模块各有其优势,但它们使用不同的AT指令集,并且在主从配对时缺乏统一的技术支持。为此,我整理了这两个模块在主从通信中的使用方法,不仅是为了便于自己日后查阅,也希望能为其他开发者提供一些帮助。
解决HC-05蓝牙模块为什么无法使用AT指令的问题
HC-05在直接使用的时候不是上电进入AT模式,所以需要我们进行操作才可以。
HC-05进入AT模式的两种方法
经过摸索,这里总结两种进入AT模式的方法:
1.与USB转TTL相连后接入电脑,将波特率设置成9600,模块指示灯快闪,这时再按下模块的按钮便进入AT模式,这时打开串口助手,输入AT指令再回车就可以发送AT指令了。
2.与USB转TTL相连后接入电脑,将电源线断开一根,长按模块按钮,上电,然后松手,模块的指示灯慢闪,将波特率设置为38400便进入AT模式,打开串口助手,输入AT指令再回车就可以发送AT指令了。
主从通信的配置过程
HC-05作为主机进行发送数据,JDY-31作为从机接收主机发送出来的数据。
下面总结一下所用到的AT指令(两个模块的AT指令有所不同)
JDY-31端
第一步:发送:AT 返回:+OK
激活AT模式
第二步:发送:AT+LADDR 返回:+LADDR=123456ABCDEF
查询蓝牙模块的地址,记录下来用于配置HC-05
HC-05端(需要长按模块的按键后上电进入AT模式、波特率为38400)
第一步:发送:AT 返回:OK
证明已经进入了AT模式
第二步:发送:AT+ROLE=1 返回:OK
查询:AT+ROLE? 返回:+ROLE:1 OK
将HC-05配置成了主模式(AT+ROLE=1是设成主,AT+ROLE=0是设成从,AT+ROLE=2设成回环模式Slave-Loop:被动连接,接收远程蓝牙主设备数据并将数据原样返回给远程蓝牙)
第三步:发送:AT+UART=9600,0,0 返回:OK
查询:AT+UART? 返回:+UART:9600,0,0 OK
修改波特率,停止位,校验位。我习惯使用波特率9600
第四步:发送:AT+CMODE=0 返回:OK
查询:AT+CMODE? 返回:+CMOD:0 OK
设置连接模式,0为制定蓝牙地址连接模式
第五步:发送:AT+BIND=1234,56,abcdef 返回:OK(注意:要按照这个格式进行发送)
查询:AT+BIND? 返回:+BIND:1234:56:ABCDEF OK
进行完上面的配置后,HC-05与JDY-31就可以进行主从通信,主机发送的数据会原样发到从机。
HC-05重新上电退出AT模式,只要两个模块同时处于上电状态,即可自动连接
HC-05 灯隔一会亮两次,JDY-31 灯常亮,即为连接成功