基于NODEMCU连接三个传感器进行报警编程问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2683|回复: 4

[已解答] 基于NODEMCU连接三个传感器进行报警编程问题

[复制链接]
发表于 2020-3-25 15:20 | 显示全部楼层 |阅读模式
前辈们好,刚刚开始学习ARDUINO,还不能灵活运用,希望能得到指点
我要实现的功能是:MQ2,火焰和人体红外三个传感器进行报警然后通知手机
我看了BLINKER远程报警实例代码,分别用那个代码连接三个传感器都能独立工作,现在我想把他们合起来,然后我自己修改的代码是这样的,运行起来就有错误,报错异常,请前辈们指点一下。

#define BLINKER_PRINT    Serial
#define BLINKER_WIFI

#include <Blinker.h>

char auth[] = "5f5b05a927c9";
char ssid[] = "ChinaNet-cAvK";
char pswd[] = "vckevzmt";
#define IR_DETEC_PIN  D1
#define MQ_DETEC_PIN  D2
#define HY_DETEC_PIN  D3
uint32_t detect_os_time = millis();
bool isWarn = false;

void sensor_init()
{
    pinMode(IR_DETEC_PIN, INPUT_PULLUP);
    pinMode(MQ_DETEC_PIN, INPUT_PULLUP);
    pinMode(HY_DETEC_PIN, INPUT_PULLUP);
}

void sensor_IR()
{
    if (!digitalRead(IR_DETEC_PIN)) {
        if (!isWarn) {
            Blinker.notify("进r人了");
            isWarn = true;
            detect_os_time = millis();
        }
        else if (millis() - detect_os_time >= 10000) {
            isWarn = false;
        }
    }
    else {
        isWarn = false;
    }
}  
void sensor_MQ()
{
    if (!digitalRead(MQ_DETEC_PIN)) {
        if (!isWarn) {
            Blinker.notify("漏气了");
            isWarn = true;
            detect_os_time = millis();
        }
        else if (millis() - detect_os_time >= 10000) {
            isWarn = false;
        }
    }
    else {
        isWarn = false;
    }
}   
void sensor_HY()
{
    if (!digitalRead(HY_DETEC_PIN)) {
        if (!isWarn) {
            Blinker.notify("着火了");
            isWarn = true;
            detect_os_time = millis();
        }
        else if (millis() - detect_os_time >= 10000) {
            isWarn = false;
        }
    }
    else {
        isWarn = false;
    }
}   
void setup()
{
    Serial.begin(115200);

    sensor_init();

    Blinker.begin(auth, ssid, pswd);
}

void loop()
{
    Blinker.run();
    sensor_IR();
    sensor_MQ();
    sensor_HY();
}

 楼主| 发表于 2020-3-25 17:12 | 显示全部楼层
运行起来不停的报人体红外的那个来人了,烟雾检测在硬件上亮灯了但是APP没有反映,火焰检测偶尔有报警
发表于 2020-3-25 19:43 | 显示全部楼层
这个问题并不是blinker造成的,程序逻辑问题,loop每秒可以运行几百几千次。至于逻辑问题,只有自己理清了
发表于 2020-4-20 21:00 | 显示全部楼层
az98689 发表于 2020-3-25 17:12
运行起来不停的报人体红外的那个来人了,烟雾检测在硬件上亮灯了但是APP没有反映,火焰检测偶尔有报警 ...

请问楼主这个问题解决了吗?可否分享一点经验,我刚刚接触,连示例的单独报警都还没实现。谢谢啦
发表于 2022-1-28 11:11 | 显示全部楼层
三个不行,先试验两个,发现问题,或者成功了,再三个
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 10:33 , Processed in 0.071703 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表