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

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 849|回复: 4

[已解答] 点击APP按键后继电器接通,但app就显示离线

[复制链接]
发表于 2022-1-11 02:36 | 显示全部楼层 |阅读模式
为什么点击APP按键后继电器接通,但app就显示离线,等按键设定的时间执行完又恢复在线,是代码有问题吗??
  1. #define BLINKER_WIFI

  2. #include <Blinker.h>

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

  7. int counter = 0;

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

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

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

  24. }

  25. void loop()
  26. {
  27.     Blinker.run();
  28. }
复制代码



发表于 2022-1-11 10:43 | 显示全部楼层
1. callback 设置一个状态,尽快返回。其他操作可根据状态在loop() 中执行。
2. 在loop() 中也不要长时间delay。用millis() 判断时间,20秒时间到关闭。时间不到退出loop(). 保证loop()不断被调用执行。
发表于 2022-1-11 13:36 | 显示全部楼层
同上,回调中不能有delay
发表于 2022-1-11 19:33 | 显示全部楼层
digitalWrite(0,HIGH);
    delay(20000);
    digitalWrite(0, LOW);

用标志来代替这个,LOOP里看标记执行对应动作
发表于 2022-2-6 14:03 | 显示全部楼层
不要用不同的delay函数,不然会断开链接,要使用点灯官方例程的专用delay函数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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