blynkkk / blynk-library

Blynk library for IoT boards. Works with Arduino, ESP32, ESP8266, Raspberry Pi, Particle, ARM Mbed, etc.
https://blynk.io
MIT License
3.83k stars 1.38k forks source link

ESP8266-01 reseted when virtualWrite (but OK second time) #422

Closed dontsovcmc closed 6 years ago

dontsovcmc commented 6 years ago

Blynk library version: 0.5.2 IDE: Visual Studio Code + platformio Board type: ESP8266-01 Additional modules: WifiManager

Description

Scenario, steps to reproduce

bool send_blynk(const Settings &sett, const float &value0, const float &value1, const float &voltage)
{
    bool ret = false;

    LOG_NOTICE( "WIF", "Starting Wifi" );
    IPAddress ip(sett.ip);
    IPAddress gw(sett.gw);
    IPAddress subnet(sett.subnet);
    WiFi.mode(WIFI_STA);
    WiFi.config( ip, gw, subnet );
    WiFi.begin();   //WifiManager уже записал ssid & pass в Wifi

    uint32_t now = millis();
    while (WiFi.status() != WL_CONNECTED && millis() - now < ESP_CONNECT_TIMEOUT)  {

        LOG_NOTICE("WIF", "Wifi status: " << WiFi.status());
        delay(200);
    }

    if (WiFi.status() == WL_CONNECTED) {

        LOG_NOTICE( "WIF", "connected");

        Blynk.config(sett.key, sett.hostname, BLYNK_DEFAULT_PORT);
        if (Blynk.connect(SERVER_TIMEOUT)) {

            LOG_NOTICE( "BLK", "run");

            float delta0 = value0 - sett.prev_value0;
            float delta1 = value1 - sett.prev_value1;

            Blynk.virtualWrite(V0, value0);
            Blynk.virtualWrite(V1, value1);
            Blynk.virtualWrite(V2, voltage);
            Blynk.virtualWrite(V3, delta0);
            Blynk.virtualWrite(V4, delta1);

            LOG_NOTICE( "BLK", "virtualWrite OK");

Actual Result

See log:

l␀l��|␀�l�|␂␌␌␌�␌l�␌b|��␂�␒�r�bl␌b��nn�lnn���␌b␜p��lrlrlp�n�␐␂␌␌�␌l␌��␌␌␌b␌n�|␂l�␌␌�b��nn�␀l��l`␂�␒␒nn␌l`␂␎␂nr���n␌␌b␌�␎l␎r��n␌␌b␌�␎l��l␌���p��l`␂��n�␂000:00:00:00:050  NOTICE    (ESP) : Booted
2 000:00:00:00:053  NOTICE    (I2C) : mode=2
3 0 D3 B 0 0 7 0 0 0 0 0 0 0 000:00:00:00:065  NOTICE    (I2C) : data received
000:00:00:00:065  NOTICE    (WIF) : Config loaded: IP=10.0.24.172, Subnet=255.255.255.0, Gw=10.0.24.1, hostname=blynk-cloud.com
000:00:00:00:070  NOTICE    (WIF) : key=email=
000:00:00:00:079  NOTICE    (WIF) : value0_start=0.00, impules0_start=4, factor=10
000:00:00:00:086  NOTICE    (WIF) : value1_start=0.00, impules1_start=0
000:00:00:00:092  NOTICE    (ESP) : new impulses=7 0
000:00:00:00:097  NOTICE    (ESP) : new values=0.03 0.00
000:00:00:00:102  NOTICE    (WIF) : Starting Wifi
000:00:00:00:202  NOTICE    (WIF) : Wifi status: 6
000:00:00:00:402  NOTICE    (WIF) : Wifi status: 6
000:00:00:00:603  NOTICE    (WIF) : Wifi status: 6
000:00:00:00:803  NOTICE    (WIF) : Wifi status: 6
000:00:00:01:003  NOTICE    (WIF) : Wifi status: 6
000:00:00:01:204  NOTICE    (WIF) : Wifi status: 6
000:00:00:01:404  NOTICE    (WIF) : Wifi status: 6
000:00:00:01:604  NOTICE    (WIF) : Wifi status: 6
000:00:00:01:805  NOTICE    (WIF) : Wifi status: 6
000:00:00:02:005  NOTICE    (WIF) : Wifi status: 6
000:00:00:02:205  NOTICE    (WIF) : Wifi status: 6
000:00:00:02:405  NOTICE    (WIF) : Wifi status: 6
000:00:00:02:606  NOTICE    (WIF) : Wifi status: 6
000:00:00:02:806  NOTICE    (WIF) : Wifi status: 6
000:00:00:03:006  NOTICE    (WIF) : Wifi status: 6
000:00:00:03:206  NOTICE    (WIF) : connected
000:00:00:08:427  NOTICE    (BLK) : run

 ets Jan  8 2013,rst cause:4, boot mode:(3,6)

wdt reset
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v614f7c32
~ld
000:00:00:00:057  NOTICE    (ESP) : Booted
2 000:00:00:00:060  NOTICE    (I2C) : mode=2
3 0 D3 B 0 0 7 0 0 0 0 0 0 0 000:00:00:00:072  NOTICE    (I2C) : data received
000:00:00:00:072  NOTICE    (WIF) : Config loaded: IP=10.0.24.172, Subnet=255.255.255.0, Gw=10.0.24.1, hostname=blynk-cloud.com
000:00:00:00:076  NOTICE    (WIF) : key=email=
000:00:00:00:085  NOTICE    (WIF) : value0_start=0.00, impules0_start=4, factor=10
000:00:00:00:092  NOTICE    (WIF) : value1_start=0.00, impules1_start=0
000:00:00:00:099  NOTICE    (ESP) : new impulses=7 0
000:00:00:00:104  NOTICE    (ESP) : new values=0.03 0.00
000:00:00:00:109  NOTICE    (WIF) : Starting Wifi
000:00:00:00:115  NOTICE    (WIF) : Wifi status: 6
000:00:00:00:318  NOTICE    (WIF) : connected
000:00:00:00:553  NOTICE    (BLK) : run
000:00:00:00:888  NOTICE    (BLK) : virtualWrite OK
000:00:00:00:888  NOTICE    (BLK) : send email
000:00:00:00:955  NOTICE    (BLK) : email was send
000:00:00:00:955  NOTICE    (BLK) : Новые показания {DEVICE_NAME}
000:00:00:00:955  NOTICE    (BLK) : ГВС: 0.0 м3, ХВС: 0.0 м3
дельта:
гвс: +0.03, хвс: +0.00
питание:3.027 В
CMC:
вода добавить: 0.0 0.0
000:00:00:00:971  NOTICE    (BLK) : disconnected
000:00:00:00:975  NOTICE    (BLK) : send ok
000:00:00:01:020  NOTICE    (WIF) : Config stored: IP=10.0.24.172, Subnet=255.255.255.0, Gw=10.0.24.1, hostname=blynk-cloud.com
000:00:00:01:021  NOTICE    (WIF) : key=
000:00:00:01:027  NOTICE    (WIF) : value0_start=0.00, impules0_start=4, factor=10
000:00:00:01:034  NOTICE    (WIF) : value1_start=0.00, impules1_start=0
000:00:00:01:041  NOTICE    (ESP) : Going to sleep
vshymanskyy commented 6 years ago

Could you please provide a minimal, but full example that displays the problem? Without WiFi Manger, etc.

vshymanskyy commented 6 years ago

Closed due to lack of interest

dontsovcmc commented 5 years ago

The reason was disabled watchgod ESP.wdtDisable(). After ~6 seconds it reseted if not enabled again. As we see in the log:

000:00:00:03:206  NOTICE    (WIF) : connected
//Blynk.connect(SERVER_TIMEOUT) 
000:00:00:08:427  NOTICE    (BLK) : run

There was a long connecting. So, it reseted after it. My code works about 5 second before sleep again, so when good connect nothing happened.