使用ApConfig配置成功后重启不会自动联网-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4918|回复: 21

[已解答] 使用ApConfig配置成功后重启不会自动联网

[复制链接]
发表于 2021-6-7 18:02 | 显示全部楼层 |阅读模式
使用ApConfig配置成功后重启不会自动联网,求帮助,下面按RST后串口输出信息,谢谢!
  1. __       __                __
  2. /\ \     /\ \    __        /\ \              v0.3.80210527
  3. \ \ \___ \ \ \  /\_\    ___\ \ \/'\      __   _ __   
  4. \ \ '__`\\ \ \ \/\ \ /' _ `\ \ , <    /'__`\/\`'__\
  5.   \ \ \L\ \\ \ \_\ \ \/\ \/\ \ \ \\`\ /\  __/\ \ \./
  6.    \ \_,__/ \ \__\\ \_\ \_\ \_\ \_\ \_\ \____\\ \_\  
  7.     \/___/   \/__/ \/_/\/_/\/_/\/_/\/_/\/____/ \/_/  
  8.     To better use blinker with your IoT project!
  9.     Download latest blinker library here!
  10.     => https://github.com/blinker-iot/blinker-library

  11. [106] _aliType:
  12. [108] _duerType:
  13. [110] _miType:
  14. [111] _authKey: [马赛克]
  15. [116] check wlan config
  16. [117] wlan config check,success
  17. [619] Connecting to WiFi
  18. [619] ESP8266_MQTT initialized...
  19. [619]
  20. ===========================================================
  21. ================== Blinker Timer loaded! ==================
  22.      EEPROM address 1536-2431 is used for Blinker Timer!
  23. ========= PLEASE AVOID USING THESE EEPROM ADDRESS! ========
  24. ===========================================================

  25. [641] countdown state: false
  26. [642] _cdRunState: 0
  27. [644] _totalTime: 0
  28. [646] _runTime: 0
  29. [648] _action:
  30. [650] loop state: false
  31. [651] _lpRunState: 0
  32. [653] _times: 0
  33. [655] _tri_times: 0
  34. [656] _time1: 0
  35. [658] _action1:
  36. [659] _time2: 0
  37. [661] _action2:
  38. [663] _lpData: 0
  39. [664] checkNum count: 3
  40. [666] checkNum count: 3
  41. [668] checkNum count: 3
复制代码


 楼主| 发表于 2021-6-7 18:11 | 显示全部楼层
程序代码如下:
  1. #define BLINKER_WIFI
  2. //#define BLINKER_ESP_SMARTCONFIG
  3. #define BLINKER_APCONFIG
  4. #include <Blinker.h>

  5. //引脚定义
  6. #define LED 16      //板载LED按钮
  7. #define RELAY1 5    //继电器1按钮
  8. #define RELAY2 4    //继电器2按钮
  9. #define RECONFIG 0    //重置网络实体按钮

  10. //点灯平台信息
  11. char auth[] = "马赛克";
  12. //char ssid[] = "han";
  13. //char pswd[] = "12345678";


  14. // 新建组件对象
  15. BlinkerButton Button_Relay1("btn-relay1");    //继电器1按钮
  16. BlinkerButton Button_Relay2("btn-relay2");    //继电器2按钮
  17. BlinkerButton Button_Led("btn-led");          //板载LED按钮

  18. //重置网络信息按钮事件
  19. void Button_RstConfig_callback()
  20. {
  21.   if (digitalRead(RECONFIG) == LOW) {
  22.     delay(3000);
  23.     if (digitalRead(RECONFIG) == LOW) {
  24.       Blinker.reset();
  25.       Serial.print("Reset Config...");
  26.     }
  27.   }
  28. }

  29. // 继电器1按钮事件
  30. void Button_Relay1_callback(const String & state)
  31. {
  32.   BLINKER_LOG("Relay State: ", state);
  33.   digitalWrite(RELAY1, !digitalRead(RELAY1));
  34.   if (digitalRead(RELAY1) == HIGH) {
  35.     Button_Relay1.icon("fad fa-siren-on");
  36.     Button_Relay1.print("on");
  37.     //digitalWrite(RELAY1, LOW);
  38.   } else if (digitalRead(RELAY1) == LOW) {
  39.     Button_Relay1.icon("fad fa-siren");
  40.     Button_Relay1.print("off");
  41.     //digitalWrite(RELAY1, HIGH);
  42.   }
  43. }

  44. // 继电器2按钮事件
  45. void Button_Relay2_callback(const String & state)
  46. {
  47.   BLINKER_LOG("Relay State: ", state);
  48.   digitalWrite(RELAY2, !digitalRead(RELAY2));
  49.   if (digitalRead(RELAY2) == HIGH) {
  50.     Button_Relay2.icon("fad fa-siren-on");
  51.     Button_Relay2.print("on");
  52.     //digitalWrite(RELAY2, LOW);
  53.   } else if (digitalRead(RELAY2) == LOW) {
  54.     Button_Relay2.icon("fad fa-siren");
  55.     Button_Relay2.print("off");
  56.     //digitalWrite(RELAY2, HIGH);
  57.   }
  58. }

  59. // LED按钮事件
  60. void Button_Led_callback(const String & state)
  61. {
  62.   BLINKER_LOG("LED State: ", state);
  63.   digitalWrite(LED, !digitalRead(LED));
  64.   if (digitalRead(LED) == LOW) {
  65.     //digitalWrite(LED, LOW);
  66.     Button_Led.icon("fad fa-lightbulb-on");
  67.     Button_Led.print("on");
  68.   } else if (digitalRead(LED) == HIGH) {
  69.     //digitalWrite(LED, HIGH);
  70.     Button_Led.icon("fad fa-lightbulb");
  71.     Button_Led.print("off");
  72.   }
  73. }

  74. // 如果未绑定的组件被触发,则会执行其中内容
  75. void dataRead(const String & data)
  76. {
  77.   BLINKER_LOG("Blinker readString: ", data);
  78. }

  79. void setup()
  80. {
  81.   // 初始化串口
  82.   Serial.begin(115200);
  83.   BLINKER_DEBUG.stream(Serial);
  84.   BLINKER_DEBUG.debugAll();

  85.   // 初始化IO
  86.   pinMode(RELAY1, OUTPUT);
  87.   digitalWrite(RELAY1, LOW);
  88.   pinMode(RELAY2, OUTPUT);
  89.   digitalWrite(RELAY2, LOW);
  90.   pinMode(LED, OUTPUT);
  91.   digitalWrite(LED, HIGH);
  92.   pinMode(RECONFIG, INPUT);
  93.   digitalWrite(RECONFIG, HIGH);
  94.   // 初始化blinker
  95.   //Blinker.begin(auth, ssid, pswd);
  96.   Blinker.begin(auth);
  97.   Blinker.attachData(dataRead);
  98.   Button_Relay1.attach(Button_Relay1_callback);
  99.   Button_Relay2.attach(Button_Relay2_callback);
  100.   Button_Led.attach(Button_Led_callback);
  101. }

  102. void loop() {
  103.   Blinker.run();
  104.   Button_RstConfig_callback();
  105. }
复制代码
发表于 2021-6-8 08:55 | 显示全部楼层
建议更换硬件测试,确保不是硬件问题
 楼主| 发表于 2021-6-8 09:42 来自手机 | 显示全部楼层
点灯官方 发表于 2021-6-8 08:55
建议更换硬件测试,确保不是硬件问题

已更换硬件测试,之前使用的是nodemcu的板子,后面更换为esp-01s,问题一样。串口打印信息重启后一直停在一楼所示那个地方,也不知道如何跟踪查找原因
发表于 2021-6-9 23:05 | 显示全部楼层
fcwys 发表于 2021-6-8 09:42
已更换硬件测试,之前使用的是nodemcu的板子,后面更换为esp-01s,问题一样。串口打印信息重启后一直停在 ...

无法复现您的问题,请确保lib和package是文档中指定的版本,并测试例程
 楼主| 发表于 2021-6-10 13:25 | 显示全部楼层
点灯官方 发表于 2021-6-9 23:05
无法复现您的问题,请确保lib和package是文档中指定的版本,并测试例程

已测试例程,问题一样,现已改用WIFIManager进行Web配网,然后将SSID和PSWD传入Blinker.begin()进行初始化,这样的话重启是正常的,但是直接使用系统自带的ApConfig重启后会卡死在一楼日志所示界面,不知道是不是因为Blinker的EERROM地址写入不正常导致,前两天论坛有人出现了类似的情况:
原帖:https://www.arduino.cn/thread-98888-1-1.html

发表于 2021-6-11 16:46 | 显示全部楼层
fcwys 发表于 2021-6-10 13:25
已测试例程,问题一样,现已改用WIFIManager进行Web配网,然后将SSID和PSWD传入Blinker.begin()进行初始 ...

您提供的帖子不是一个问题。
建议您确认下package是否为文档指定的2.7.4?
如果还是不行,请提供下对应开发板的配置信息
 楼主| 发表于 2021-6-11 17:45 来自手机 | 显示全部楼层
开发板是nodemcu,32m的,芯片应该是esp8266-12e,现在改用wifimanager配置网络后再启动blinker了,目前这个方案可行
发表于 2021-6-11 18:13 | 显示全部楼层
https://github.com/blinker-iot/b ... s/heads/dev_3.0.zip
ap配网是直接读取esp8266sdk缓存到flash中的配网信息进行联网,没有额外操作EEPROM 可以更新dev3.0的库测试
 楼主| 发表于 2021-6-11 18:38 来自手机 | 显示全部楼层
好的我试试
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 11:36 , Processed in 0.115063 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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