1. 连接2个HC-05模块
- 将两块HC-05都进入AT模式
- 分别对其进行AT配置
BMaster 主 | BSlave 从 |
---|---|
AT+NAME=BMaster | AT+NAME=BMaster |
AT+PSWD=1111 | AT+PSWD=1111 |
AT+ROLE=1 | AT+ROLE=0 |
注意! 两个PSWD (密码) 要一致
除此之外还要查询模块的地址 模块地址可以用 AT+ADDR? 来查询
我的两个模块地址:
98d3:32:70f36b (BMaster)
98d3:32:20d1d4 (BSalve)
开始初始连接
初始完基本设置之后下面我们开始设置BSlave和BMaster连接
BSlave
设置串口波特率9600: AT+UART:9600,0,0
绑定BMaster的地址: AT+BIND=98d3,31,405221
注意当地址是参数是间隔用的是 “,” 而不是 “:”
重启模块,为了退出AT模式 (重新连接模块电源即可)
BMaster
设置串口波特率9600: AT+UART:9600,0,0
设置查询模式:AT+INQM=1,5,10
开始查询:AT+INQ
如果出现ERROR(16)或(17)用 AT+INIT, 来启动spp,再次输入 AT+INQ。 那些有EN脚的同学小心了,我在用这个命令的时候会重启模块,因为没有key脚所以重启后加入不了AT模式,正因为这样所以建议大家把 Master 模块焊接条key脚出来,前一篇文章有介绍。
查询结果可以看见已经找到了我们的从模块,如果没找到看看 ‘从’ 模块是否接好 和 是否退出AT模式。
试探连接:AT+ PAIR=2016,3,222418,9如果9秒内返回ok那就说明可以连接.
下面我们就可以连接到BSlave:AT+LINK=98d3:32:20d1d4
最后我们需要这个BMaster模块下次开启时自动连接到BSlave模块: AT+CMODE=1
在这里我们要重启模块进入AT模式。因为用AT+LINK的时候会退出AT模式。
CMODE: 0——指定蓝牙地址连接模式 (指定蓝牙地址由绑定指令设置)
CMODE: 1——任意蓝牙地址连接模式 (不受绑定指令设置地址的约束)
CMODE: 2——回环角色(Slave-Loop)
这里我们得连接配置完成了!
现在我们重启两个模块就可以看见他们会自动连接 (hc-05灯: 每两秒闪烁一下)
传输信息
刚刚我们已经连接成功了,为了信息传输成功需要把hc-05串口波特率换成9600,为了保持全部串口一致。
Arduino代码:
#include <SoftwareSerial.h>
SoftwareSerial serial2(6,7);
void setup() {
Serial.begin(9600);
//把hc05模块的串口波特率从38400改成9600
serial2.begin(9600);
Serial.println("init serial port AT");
}
void loop() {
if(Serial.available())
serial2.write(Serial.read());
if(serial2.available())
Serial.write(serial2.read());
}
加载代码到两个arduino上面。
打开两边的串口窗口, 在上面输入文字就会自动通过Bluetooth传输到另个Arduino。
2.参考资料
-
作者tmirun:《Arduino hc-05》
http://www.arduino.cn/forum.php?mod=viewthread&tid=21735&highlight=HC-05 -
HC-05连接:
http://ruten-proteus.blogspot.com.es/2014/07/Bluetooth-Kit-tutorial-02-hc-05-02.html -
AT指令参考手册:
https://www.taiwaniot.com.tw/wp-content/uploads/2016/01/ADIO-HC-05-1.pdf -
HC-05 和 HC-06连接:
http://www.martyncurrey.com/connecting-2-arduinos-by-bluetooth-using-a-hc-05-and-a-hc-06-pair-bind-and-link/
网友评论