Arduino - (增强版)改装车库门,蓝牙+自动关门

本文介绍了一个基于Arduino的智能车库门控制系统。该系统可通过手机蓝牙控制门的开关,并新增了人体检测功能,在无人时自动关闭车库门。此外还讨论了进一步改进的想法,如使用433MHz无线模块替代继电器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先前通过初步改装,实现了手机蓝牙控制开门关门。
这次增加了通过人体检测,没人时开始计时,超时自动关门。

这里写图片描述

其他改进设想:
用433无线收发模块代替继电器,实现与车库遥控器的对接。

代码如下:

int pin_shang,pin_xia,pin_ren,pin_men,pin_laba,pin_led,pin_guanmen;
int time_ren,time_laba;
void setup() {
  delay(500);
  pin_shang=2;
  pin_xia=3;
  pin_ren=4;
  pin_men=5;
  pin_laba=6;
  pin_guanmen=7;
  pin_led=13;
  Serial.begin(9600);  // 设置蓝牙波特率为9600
  pinMode(pin_shang,OUTPUT);  // 继电器模块,向上开门。
  digitalWrite(pin_shang,HIGH);  // 模块为低电平触发,初始时为断开HIGH。
  pinMode(pin_xia,OUTPUT);// 继电器模块,向下关门。
  digitalWrite(pin_xia,HIGH);  // 模块为低电平触发,初始时为断开HIGH。
  pinMode(pin_ren,INPUT);// 移动人体检测接口,有人为 HIGH,没人为 LOW。
  pinMode(pin_men,INPUT_PULLUP);  // 门当前开关状态检测接口(上拉,默认为 HIGH),开门为 HIGH,关门为 LOW。
  pinMode(pin_guanmen,INPUT_PULLUP);// 自动关门功能启用禁用接口(上拉,默认为 HIGH),启用为 HIGH,禁用为 LOW。
  pinMode(pin_led,OUTPUT);  // 自动关门功能指示灯,功能启用且门开着时亮,其它情况灭。
  pinMode(pin_laba,OUTPUT);  // 报警喇叭。
  delay(1000);  // 延时1秒后进入循环体。
  laba(); // 喇叭鸣叫,启动完毕。
}

void loop() {
  if (digitalRead(pin_guanmen)==HIGH) // 如果开启了自动关门功能
  {  if (digitalRead(pin_men)==HIGH) // 如果门开着
     { digitalWrite(pin_led,HIGH);  // 点亮指示灯
       if (digitalRead(pin_ren)==HIGH){ time_ren=0; } else { time_ren+=1; }  // 如果有人则时间=0,没人则时间+1。
       if (time_ren>180){ time_laba+=1; if (time_laba>4){ time_laba=0; laba(); } } // 如果没人时间超过3分钟,喇叭5秒钟报警一次。
       if (time_ren>240){ time_ren=0; digitalWrite(pin_xia,LOW); delay(200); digitalWrite(pin_xia,HIGH); } // 如果没人时间超过4分钟,自动关门。
     } else 
     { digitalWrite(pin_led,LOW); time_ren=0; }  // 如果门关着,灭掉指示灯,时间 =0
  } else
  { digitalWrite(pin_led,LOW); time_ren=0; }  // 如果禁用了自动关门功能,灭掉指示灯,时间 =0
  if (Serial.available())  // 如果蓝牙收到数据
  { String shuju=Serial.readString();
    if (shuju=="openDoor"){ digitalWrite(pin_shang,LOW); delay(200); digitalWrite(pin_shang,HIGH); Serial.print("openOK"); } // 蓝牙指令开门
    if (shuju=="closeDoor"){ digitalWrite(pin_xia,LOW); delay(200); digitalWrite(pin_xia,HIGH); Serial.print("closeOK"); } // 蓝牙指令关门
  }
  delay(1000);
}

void laba(){ digitalWrite(pin_laba,HIGH); delay(500);  digitalWrite(pin_laba,LOW); } // 自定义喇叭鸣叫函数,使用有源蜂鸣器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卢光庆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值