点击APP按键后继电器接通,但app就显示离线-Arduino中文社区 - Powered by Discuz! Archiver

xmcool 发表于 2022-1-11 02:36

点击APP按键后继电器接通,但app就显示离线

为什么点击APP按键后继电器接通,但app就显示离线,等按键设定的时间执行完又恢复在线,是代码有问题吗??
#define BLINKER_WIFI

#include <Blinker.h>

char auth[] = "";//设备key
char ssid[] = "";//路由器wifi ssid
char pswd[] = "";//路由器wifi 密码
BlinkerButton Button1("btn-on");   //定义按钮键名

int counter = 0;

void button1_callback(const String & state)   //点灯app内控制按键触发接通20秒
{
    BLINKER_LOG("get button state: ", state);
    digitalWrite(0,HIGH);
    delay(20000);
    digitalWrite(0, LOW);                                    
}

void setup()
{
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);
   
    pinMode(0, OUTPUT);            //定义io口为输出
    digitalWrite(0,LOW);         //定义io默认为低电平

    Blinker.begin(auth, ssid, pswd);
    Button1.attach(button1_callback);      

}

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


ifeue 发表于 2022-1-11 10:43

1. callback 设置一个状态,尽快返回。其他操作可根据状态在loop() 中执行。
2. 在loop() 中也不要长时间delay。用millis() 判断时间,20秒时间到关闭。时间不到退出loop(). 保证loop()不断被调用执行。

coloz 发表于 2022-1-11 13:36

同上,回调中不能有delay

zjzane 发表于 2022-1-11 19:33

digitalWrite(0,HIGH);
    delay(20000);
    digitalWrite(0, LOW);

用标志来代替这个,LOOP里看标记执行对应动作

xiongjiaxiao 发表于 2022-2-6 14:03

不要用不同的delay函数,不然会断开链接,要使用点灯官方例程的专用delay函数
页: [1]
查看完整版本: 点击APP按键后继电器接通,但app就显示离线