我爱编程

Arduino之间通过蓝牙进行连接

2017-10-20  本文已影响0人  pangdong

因前段时间比赛需要两块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两个模块同步闪烁,并且隔两秒闪两次。

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

上一篇下一篇

猜你喜欢

热点阅读