esp8266 接HC-SR501 红外人体检测控制继电器电灯并延时的应用

9/17/2022 10:56:56 AM
822
0

一、物料

  1. 面包板 x1
  2. 无源蜂鸣器 x1
  3. 继电器 x1
  4. esp8266 x1
  5. HC-SR501 x1
  6. 杜邦线 公对母 x7

二、接线

引脚和控制 说明
时间延迟调节 检测到移动后,高电平输出时间,5s~5min
感应距离调节 检测范围 3~7m
检测模式调节 单次检测/连续检测
GND
VCC 电源
OUT 高/移动,低/无移动

蜂鸣器 长针接GPIO4针脚,对应D2,短针接G
HC-SR501  中间接GPIO13  对应D7,左侧(针脚边缘靠近身体)接3V,右侧(针脚边缘靠近身体)接G 


继电器 DC+ 接5v的vcc+  DC- 接5v的vcc-, IN接 esp8266的电平信号GPIO口(自定义一个输出针脚),DC-接esp8266的G脚 
因为继电器需要5V电源,这里做了单独供电。继电器的信号控制接入IN口,DC-接开发板G脚 
vcc形成回路,   电平信号与G脚形成回路

功能逻辑:检测到人体后,蜂鸣器名叫,继电器打开,保持60s,后再次检测,如果没有人则关闭继电器,如果有人,则保持继电器打开状态,人离开1分钟后关闭

    

int inputPin = 13;   //  ESP8266  d7
    int ledOut = 5; //esp8266  D1   作为继电器的电平信号
    //通过PWM脉冲调制控制(无源)蜂鸣器电压的连续改变,实现蜂鸣器的鸣响
    #define buzzerOut 4  //esp8266  D2
    int KCmodePostpone = 60;   //代表60s
    bool KCmodeState = false;
    void setup() {
      pinMode(inputPin, INPUT);
      pinMode(buzzerOut, OUTPUT);   //蜂鸣器
      pinMode(ledOut, OUTPUT);   //led 二极管
      Serial.begin(9600);
      digitalWrite(buzzerOut, LOW);
      digitalWrite(ledOut, LOW);
      delay(30 * 1000);
    }
    void loop() {
      int val = digitalRead(inputPin);
      if (val == HIGH) {
        mingX();   //蜂鸣器鸣叫
        Serial.println("Motion detected!");
        illumeON();  //继电器打开
        delay(1000);   //每秒检测一次
      }
      else {
        Serial.println("No Motion detected!");
        illumeOFF();  //继电器关闭
        delay(1000);   //每秒检测一次
      }
      
    }
    //继电器打开
    void illumeON() {
      KCmodePostpone = 60; //检测到人体移动,则保持60开启
      if (KCmodeState) return;
      KCmodeState = true;
      digitalWrite(ledOut, HIGH); //led on
    }
    //继电器关闭
    void  illumeOFF() {
      KCmodePostpone--;
      if (KCmodePostpone == 0) {
        KCmodePostpone = 60;
        if (KCmodeState) {
          digitalWrite(ledOut, LOW);//检测了60次后,还是没有人,并且电平是高的时候,设置为低电平(关闭继电器)
          KCmodeState = false;
        }
      }
    }
    void  mingX() {
      digitalWrite(buzzerOut, HIGH);//输出HIGH电平,停止发声
      delay(50); //等待50毫秒
      digitalWrite(buzzerOut, LOW);//输出LOW电平,发声
    }

 

全部评论



提问