用ESP01S结合点灯科技,使用小爱同学和button控制时报错-Arduino中文社区 - Powered by Discuz!
查看: 542|回复: 5

[已解答] 用ESP01S结合点灯科技,使用小爱同学和button控制时报错

[复制链接]

该用户从未签到

发表于 2021-6-16 12:16 | 显示全部楼层 |阅读模式
本帖最后由 MMMMMCU 于 2021-6-16 12:47 编辑

ERROR: MQTT NOT ALIVE OR MSG LIMIT
单独使用按钮或者单独使用小爱同学控制开关都没问题,但是使用小爱同学控制开关的时候我有写代码同步手机上按钮的状态,
这个状态同步就时灵时不灵,主要就是开机灵一阵子,然后就不同步了,不灵的时候串口监视器会报错:ERROR: MQTT NOT ALIVE OR MSG LIMIT
截图.png
代码如下:
#define BLINKER_WIFI
#define BLINKER_MIOT_OUTLET
#define DELAY 0
#define BUTTON_1 "btn-m46"

#include <Blinker.h>

char auth[] = "************";
char ssid[] = "*************";
char pswd[] = "************";

BlinkerButton Button1(BUTTON_1);

void button1_callback(const String & state)
{
    BLINKER_LOG("get button state: ", state);

    if (state == BLINKER_CMD_BUTTON_TAP) {
        BLINKER_LOG("Button tap!");
        digitalWrite(DELAY, !digitalRead(DELAY));
    }
    else if (state == BLINKER_CMD_BUTTON_PRESSED) {
        BLINKER_LOG("Button pressed!");
    }
    else if (state == BLINKER_CMD_BUTTON_RELEASED) {
        BLINKER_LOG("Button released!");
        digitalWrite(DELAY, !digitalRead(DELAY));
    }
    else if (state == BLINKER_CMD_ON) {
        BLINKER_LOG("Toggle on!");
        digitalWrite(DELAY, LOW);
    }
    else if (state == BLINKER_CMD_OFF) {
        BLINKER_LOG("Toggle off!");
        digitalWrite(DELAY, HIGH);
    }
    else {
        BLINKER_LOG("Get user setting: ", state);
    }

    if (digitalRead(DELAY) == LOW) {
        Serial.print("LOW\n");
        Button1.color("#00FF00");
        Button1.text("ON");
        BlinkerMIOT.powerState("on");

        Button1.print();
        BlinkerMIOT.print();
    }
    else {
        Serial.print("HIGH\n");
        Button1.color("#000000");
        Button1.text("OFF");
        BlinkerMIOT.powerState("off");

        Button1.print();
        BlinkerMIOT.print();
    }
}

void miotPowerState(const String& state)
{
    BLINKER_LOG("need set power state: ", state);
    button1_callback(state);
}

void miotQuery(int32_t queryCode)
{
    BLINKER_LOG("MIOT Query codes: ", queryCode);

    switch (queryCode)
    {
    case BLINKER_CMD_QUERY_ALL_NUMBER:
        BLINKER_LOG("MIOT Query All");
        BlinkerMIOT.powerState(digitalRead(DELAY) == LOW ? "on" : "off");
        BlinkerMIOT.print();
        break;
    case BLINKER_CMD_QUERY_POWERSTATE_NUMBER:
        BLINKER_LOG("MIOT Query Power State");
        BlinkerMIOT.powerState(digitalRead(DELAY) == LOW ? "on" : "off");
        BlinkerMIOT.print();
        break;
    default:
        BlinkerMIOT.powerState(digitalRead(DELAY) == LOW ? "on" : "off");
        BlinkerMIOT.print();
        break;
    }
}

void dataRead(const String & data)
{
    BLINKER_LOG("Blinker readString: ", data);

    Blinker.vibrate();

    uint32_t BlinkerTime = millis();

    Blinker.print("millis", BlinkerTime);
}

void setup()
{
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);

    pinMode(DELAY, OUTPUT);
    digitalWrite(DELAY, LOW);

    Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);
    Button1.attach(button1_callback);
    BlinkerMIOT.attachPowerState(miotPowerState);
    BlinkerMIOT.attachQuery(miotQuery);
}

void loop()
{
    Blinker.run();
}


该用户从未签到

 楼主| 发表于 2021-6-16 12:17 | 显示全部楼层
论坛大佬知道是怎么回事吗?

该用户从未签到

 楼主| 发表于 2021-6-16 12:20 | 显示全部楼层
还有当失效报错:ERROR: MQTT NOT ALIVE OR MSG LIMIT的时候,点灯app上的监视器就收不到ESP01S发过来的按钮状态信息

该用户从未签到

 楼主| 发表于 2021-6-16 12:46 | 显示全部楼层
0000000000000000

该用户从未签到

发表于 2021-6-16 14:04 | 显示全部楼层
详见板块主页置顶的常见问题QA

该用户从未签到

发表于 2021-9-15 11:03 | 显示全部楼层
你用的是arduino uno加上esp-01模块吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

继电器断开瞬间esp32重启或者网络断开
继电器断开瞬间esp32重启
主要模块: 芯片ESP32-WROOM-32D 供电用的220V转5V模块,700mA 网络LAN8720A模块 继电
【Arduino】168种传感器系列实验(171)---HLK-V20离线语音模块
【Arduino】168种传感器系
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
【Arduino】168种传感器系列实验(181)---1.3寸OLED液晶屏模块
【Arduino】168种传感器系
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
大佬们,帮帮忙
大佬们,帮帮忙
为什么我写的子程序,单独使用运行没问题,两个程序合起来就只会运行一个程序
OLED 128*64自制可达10000000个选项的菜单(已更新)
OLED 128*64自制可达10000
OLED 128*64自制可达10000000个选项的菜单 温馨提示: 建议占个楼再食用本帖子
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表