Arduino - 蓝牙模块

优酷视频教学

蓝牙模块购买地址

蓝牙,顾名思义,蓝色的牙齿,并不能用来咬人,而是一种无线数据传输标准。 
HC-05和HC-06是现在使用较多的两种蓝牙模块。两者之间的区别是HC-05是主从一体机,既能向自己的’主子’打小报告,也可以接收下达的命令;而HC-06只能工作在从机模式下,那就只能乖乖接收上级的命令啦。 
在很多情况下,我们都想当“霸道总裁”,让下级乖乖听话就OK了,不需要他多废话。那就用HC-06就够了。 
 

进入AT模式 (文章:参考Arduino+HC-05蓝牙模块AT模式设置):
在HC-05蓝牙模块的正面会有一个圆形按键,摁住的过程中给蓝牙模块上电,蓝牙模块的指示灯慢闪(1秒亮一次),即说明已经进入AT模式。

蓝牙模块基本配置 :
模块默认波特率为9600、默认配对密码为1234、默认名称为HC-05, AT模式波特率固定38400,8位数据位、1位停止位、无奇偶校验的通信格式。

AT+NAME=”XXX” //修改蓝牙模块名称为XXX
AT+ROLE=0 //蓝牙模式为从模式
AT+CMODE=1 //蓝牙连接模式为任意地址连接模式,也就是说该模块可以被任意蓝牙设备连接
AT+PSWD=1234 //蓝牙配对密码为1234
AT+UART=9600,0,0 //蓝牙通信串口波特率为9600,停止位1位,无校验位
(更多配置请参考HC-05AT命令文档。)

我这里是这个(模块网址:HC-06

设置AT模式代码如下:

void setup() {
  // put your setup code here, to run once:
  Serial.begin(38400);

}

void sendcmd()
{
    Serial.println("AT");
  while(Serial.available())
  {
    char ch;
    ch = Serial.read();
    Serial.print(ch);
  } // Get response: OK
  delay(1000); // wait for printing 


  Serial.println("AT+NAME=14jxcheng");
  while(Serial.available())
  {
    char ch;
    ch = Serial.read();
    Serial.print(ch);
  }
  delay(1000);

  Serial.println("AT+ADDR?");
  while(Serial.available())
  {
    char ch;
    ch = Serial.read();
    Serial.print(ch);
  }
  delay(1000);

  Serial.println("AT+PSWD=1125");
  while(Serial.available())
  {
    char ch;
    ch = Serial.read();
    Serial.print(ch);
  }
  delay(1000);

}


void loop() {
    sendcmd();
}
 

线路连接图:

VCC:接Arduino的5V或者3.3V
GND:接Arduino的GND
TXD:发送端,接Arduino的RX
RXD:接收端,接Arduino的TX

注意:上传代码的时候要注意拔掉arduino开发板上面的TX、RX,否则上传代码会报错。

代码:

void setup() {
Serial.begin(9600);
 pinMode(8, OUTPUT); // put your setup code here, to run once:
 }

void loop() {
  // put your main code here, to run repeatedly:
 if(Serial.available()>0)
   {     
      char data= Serial.read(); // reading the data received from the bluetooth module
      switch(data)
      {
        case 'a': digitalWrite(8, HIGH);break; // when a is pressed on the app on your smart phone
        case 'd': digitalWrite(8, LOW);break; // when d is pressed on the app on your smart phone
        default : break;
      }
      Serial.println(data);
   }
   delay(50);
}

Android APP地址:(安卓蓝牙调试app网上太多了)

iOS APP:

(注意:安卓手机与苹果手机,苹果手机老是检测不到蓝牙的问题)

修改:

HC-06(参考文章:[Arduino]HC-06蓝牙模块使用小结

/*
arduino数字口引脚与蓝牙引脚连接:

RX(接收)---------------9(发送)

TX(发送)---------------- 8(接收)
*/

#include <SoftwareSerial.h>
//使用软件串口,能讲数字口模拟成串口
SoftwareSerial BT(8, 9);  //新建对象,接收脚为8,发送脚为9
char val;  //存储接收的变量

void setup() {
  Serial.begin(9600);   //与电脑的串口连接
  Serial.println("BT is ready!");
  BT.begin(9600);  //设置波特率
}

void loop() {
  //如果串口接收到数据,就输出到蓝牙串口
  if (Serial.available()) {
    val = Serial.read();
    BT.print(val);
  }

  //如果接收到蓝牙模块的数据,输出到屏幕
  if (BT.available()) {
    val = BT.read();
    Serial.print(val);
  }
}

通过串口对蓝牙AT的设置:

猜你喜欢

转载自blog.csdn.net/Naiva/article/details/83176520
今日推荐