美文网首页我爱编程
Arduino之间通过蓝牙进行连接

Arduino之间通过蓝牙进行连接

作者: pangdong | 来源:发表于2017-10-20 19:35 被阅读0次

    因前段时间比赛需要两块Arduino板子之间通过蓝牙进行通信连接,在网上找了很多资料,都不是很详细,但是七拼八凑,自己也做出一点出来了,现在就自己写一份总结吧!说不定以后用得着呢。

    比赛用得是Arduino Nano板(用UNO板也是一样的),然后蓝牙都是HC-05模块。(关于蓝牙HC-05和HC-06下面用链接补充吧)

    在进行通信连接之前需要先对两个蓝牙模块进入AT模式进行一些设置,比如一个设置为主端,一个设置为从端,再将主端与从端进行绑定,断电后就能自动连接了。

    先上图,蓝牙进入AT指令的连线图:(因实物都焊起来了,所以这边用一个示意图)

    连线图

    按上图所示连接电路后,接通电源,如果发现蓝牙上面的指示灯是每两秒闪烁一次的话,那么蓝牙此时成功进入AT模式。反之就要检查一下电路和模块是否有损坏等问题了。
    既然成功进入AT模式了,那么现在就要进行AT设置,先上代码:

    #include <SoftwareSerial.h>
    SoftwareSerial BTSerial(8,9);
    char val;
    void setup() {
      pinMode(9,OUTPUT);
      digitalWrite(9,HIGH);
      Serial.begin(9600);
      Serial.println("Enter AT commands:");
      BTSerial.begin(38400);
    }
    void loop() {
      if(BTSerial.available())
        Serial.write(BTSerial.read());
      if(Serial.available())
        {
          val = Serial.read();
          Serial.println(val);
          BTSerial.write(val);
        }
    }
    

    代码比较简单,就不注释了。
    成功将代码烧进去后,在串口监视器里面输入相应的AT指令就可以了,接下来贴设置AT指令的步骤:
    (PS:因为是两个蓝牙,所以先将蓝牙分别叫做A和B,然后将A设置为主,B设置为从)

    1. 恢复A默认设置:在串口监视器中输入:AT+ORGL【回复OK】
    2. 将A重命名:在串口监视器中输入:AT+NAME=A【回复OK】
    3. 设置A配对码:只有当蓝牙A与蓝牙B的配对码相同,这样才能成功配对;在串口监视器中输入:AT+PSWD=1234 【回复OK】
    4. 设置A为主端:在串口监视器中输入:AT+ROLE=1 【回复OK】
    5. 恢复B默认设置:在串口监视器中输入:AT+ORGL 【回复OK】
    6. 将B重命名:在串口监视器中输入:AT+NAME=B【回复OK】
    7. 设置B配对码:,配置蓝牙B的配对码与蓝牙A一致; 在串口监视器中输入:AT+PSWD=1234【回复OK】
    8. 设置B为从端:在串口监视器中输入:AT+ROLE=0【回复OK】
    9. 查询B地址:在串口监视器中输入:AT+ADDR?【回复地址+OK,如98d3:32:710146+OK】
    10. 蓝牙A绑定蓝牙B:蓝牙A绑定蓝牙B物理地址,在串口监视器中AT+BIND=98d3,32,710146【注意把地址的冒号换成逗号,回复OK】

    至此,蓝牙AT指令已全部设置完成,接下来只要断电后,将蓝牙连接3V3的那根线拔掉后重新通电,两个蓝牙就可以自动连接了。

    连接成功的标志是A、B两个模块同步闪烁,并且隔两秒闪两次。

    到这里,你已经实现两路蓝牙的连接了,下一篇文章将展示如何通信。

    相关文章

      网友评论

        本文标题:Arduino之间通过蓝牙进行连接

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