美文网首页我爱编程
[HC-05]2.如何使用两块蓝牙模块相互通讯?

[HC-05]2.如何使用两块蓝牙模块相互通讯?

作者: Murrey_Xiao | 来源:发表于2017-05-28 12:23 被阅读680次

    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.参考资料

    相关文章

      网友评论

        本文标题:[HC-05]2.如何使用两块蓝牙模块相互通讯?

        本文链接:https://www.haomeiwen.com/subject/uythfxtx.html