Arduino之间通过蓝牙进行通信

在上一篇文章中,我已经将两块Nano板通过蓝牙进行了连接,那么现在这一节就让两块Nano板子通过蓝牙进行通信(信息交互);(代码见附录)

模块A

模块A为智能硬件模块,上装有蓝牙、蜂鸣器,开关等传感器,实物图如下:


Arduino之间通过蓝牙进行通信_第1张图片
模块A:智能硬件模块

模块B

模块B为信息采集模块,上面装有蓝牙、门磁和红外传感器等,实物图如下:


Arduino之间通过蓝牙进行通信_第2张图片
模块B:信息采集模块

信息采集模块上的红外传感器监测是否有人经过,门磁传感器监测是否门被打开,当两者都发生时(即有人经过且门被打开),模块B通过蓝牙向模块A发送一个字符'V',当模块A接收到字符'V'时,就会启动蜂鸣器发声提醒。

通过以上过程来模仿家居进出门提醒功能。

代码比较简单,且含有注释,就不再赘述。

附录

//模块A,智能硬件模块,与家居常用物品绑定使用,成为智慧物品
#include
SoftwareSerial BT(8, 9); // RX,TX
char val;//定义参数接收蓝牙的值
int buzzer=7;
void setup() {
  Serial.begin(38400);
  BT.begin(38400);//蓝牙波率设置为38400
  pinMode(7,OUTPUT);
  pinMode(5,INPUT);
}
void loop() {
  if(BT.available()){
    val=BT.read();
   // BT.println(val);
Serial.println(val);
    if(val=='V'){
      //接收到V,蜂鸣器一直响
      for(int i=0;i<=80;i++){
        digitalWrite(buzzer,HIGH);
        delay(1);
        digitalWrite(buzzer,LOW);
        delay(1);
      }
    }
  }
}
//模块B,信息采集模块,与家居大门进行绑定使用,用以采集进出门信息
#include //引用串口
SoftwareSerial BT(8, 9); //设置软件串口,接收和发送
const int pirPin = 6;//红外线传感器信号端口
const int ledPin = 13;
int HighPin1 = 5;//门磁开关传感器信号端口

void setup()
{
  Serial.begin(38400);
  BT.begin(38400);
  pinMode(pirPin, INPUT); //设置人体红外接口为输入状态
  pinMode(ledPin, OUTPUT);
  pinMode(HighPin1,OUTPUT);
  for (int i = 0; i++; i < 5) {
    digitalWrite(ledPin, HIGH);
    delay(1000);
    digitalWrite(ledPin, LOW);//开启设备时LED闪烁
    delay(1000);
  }   
}

void loop()
{
 int val = digitalRead(pirPin); //定义参数存储人体红外传感器读到的状态
Serial.print("H");
Serial.println(val);
if (val == 1)  { //如果检测到有动物运动(在检测范围内),下一步监测门磁状态
int  by =  digitalRead(HighPin1);//定义参数存储门磁开关传感器读到的状态
Serial.print("S");
 Serial.println(by);
    if (by == LOW)  {//如果检测到门磁打开,则为LOW,下一步发送蓝牙信号
      BT.println('V'); //发送蓝牙信,提醒用户携带放置物品
    }
    delay(100); //延时100毫秒
  }
}

你可能感兴趣的:(Arduino之间通过蓝牙进行通信)