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

fcwys 发表于 2021-6-7 18:02

使用ApConfig配置成功后重启不会自动联网

使用ApConfig配置成功后重启不会自动联网,求帮助,下面按RST后串口输出信息,谢谢!
__       __                __
/\ \   /\ \    __      /\ \            v0.3.80210527
\ \ \___ \ \ \/\_\    ___\ \ \/'\      __   _ __   
\ \ '__`\\ \ \ \/\ \ /' _ `\ \ , <    /'__`\/\`'__\
\ \ \L\ \\ \ \_\ \ \/\ \/\ \ \ \\`\ /\__/\ \ \./
   \ \_,__/ \ \__\\ \_\ \_\ \_\ \_\ \_\ \____\\ \_\
    \/___/   \/__/ \/_/\/_/\/_/\/_/\/_/\/____/ \/_/
    To better use blinker with your IoT project!
    Download latest blinker library here!
    => https://github.com/blinker-iot/blinker-library

_aliType:
_duerType:
_miType:
_authKey: [马赛克]
check wlan config
wlan config check,success
Connecting to WiFi
ESP8266_MQTT initialized...

===========================================================
================== Blinker Timer loaded! ==================
   EEPROM address 1536-2431 is used for Blinker Timer!
========= PLEASE AVOID USING THESE EEPROM ADDRESS! ========
===========================================================

countdown state: false
_cdRunState: 0
_totalTime: 0
_runTime: 0
_action:
loop state: false
_lpRunState: 0
_times: 0
_tri_times: 0
_time1: 0
_action1:
_time2: 0
_action2:
_lpData: 0
checkNum count: 3
checkNum count: 3
checkNum count: 3


fcwys 发表于 2021-6-7 18:11

程序代码如下:
#define BLINKER_WIFI
//#define BLINKER_ESP_SMARTCONFIG
#define BLINKER_APCONFIG
#include <Blinker.h>

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

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


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

//重置网络信息按钮事件
void Button_RstConfig_callback()
{
if (digitalRead(RECONFIG) == LOW) {
    delay(3000);
    if (digitalRead(RECONFIG) == LOW) {
      Blinker.reset();
      Serial.print("Reset Config...");
    }
}
}

// 继电器1按钮事件
void Button_Relay1_callback(const String & state)
{
BLINKER_LOG("Relay State: ", state);
digitalWrite(RELAY1, !digitalRead(RELAY1));
if (digitalRead(RELAY1) == HIGH) {
    Button_Relay1.icon("fad fa-siren-on");
    Button_Relay1.print("on");
    //digitalWrite(RELAY1, LOW);
} else if (digitalRead(RELAY1) == LOW) {
    Button_Relay1.icon("fad fa-siren");
    Button_Relay1.print("off");
    //digitalWrite(RELAY1, HIGH);
}
}

// 继电器2按钮事件
void Button_Relay2_callback(const String & state)
{
BLINKER_LOG("Relay State: ", state);
digitalWrite(RELAY2, !digitalRead(RELAY2));
if (digitalRead(RELAY2) == HIGH) {
    Button_Relay2.icon("fad fa-siren-on");
    Button_Relay2.print("on");
    //digitalWrite(RELAY2, LOW);
} else if (digitalRead(RELAY2) == LOW) {
    Button_Relay2.icon("fad fa-siren");
    Button_Relay2.print("off");
    //digitalWrite(RELAY2, HIGH);
}
}

// LED按钮事件
void Button_Led_callback(const String & state)
{
BLINKER_LOG("LED State: ", state);
digitalWrite(LED, !digitalRead(LED));
if (digitalRead(LED) == LOW) {
    //digitalWrite(LED, LOW);
    Button_Led.icon("fad fa-lightbulb-on");
    Button_Led.print("on");
} else if (digitalRead(LED) == HIGH) {
    //digitalWrite(LED, HIGH);
    Button_Led.icon("fad fa-lightbulb");
    Button_Led.print("off");
}
}

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

void setup()
{
// 初始化串口
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
BLINKER_DEBUG.debugAll();

// 初始化IO
pinMode(RELAY1, OUTPUT);
digitalWrite(RELAY1, LOW);
pinMode(RELAY2, OUTPUT);
digitalWrite(RELAY2, LOW);
pinMode(LED, OUTPUT);
digitalWrite(LED, HIGH);
pinMode(RECONFIG, INPUT);
digitalWrite(RECONFIG, HIGH);
// 初始化blinker
//Blinker.begin(auth, ssid, pswd);
Blinker.begin(auth);
Blinker.attachData(dataRead);
Button_Relay1.attach(Button_Relay1_callback);
Button_Relay2.attach(Button_Relay2_callback);
Button_Led.attach(Button_Led_callback);
}

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

点灯官方 发表于 2021-6-8 08:55

建议更换硬件测试,确保不是硬件问题

fcwys 发表于 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是文档中指定的版本,并测试例程

fcwys 发表于 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?
如果还是不行,请提供下对应开发板的配置信息

fcwys 发表于 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的库测试

fcwys 发表于 2021-6-11 18:38

好的我试试
页: [1] 2 3
查看完整版本: 使用ApConfig配置成功后重启不会自动联网