ct-Open-Source / Basecamp

An Arduino library to ease the use of the ESP32 in IoT projects
GNU General Public License v3.0
254 stars 48 forks source link

Factory reset was forced nach Power off #72

Open mariosteinberg opened 5 years ago

mariosteinberg commented 5 years ago

Hallo,

ich beschäftige mich seit einigen Tagen mit meinen ESP32 und nutze in diesem Zusammenhang Basecamp als Bibliothek. Ersteinmal vielen Dank für diese tolle Arbeitserleichterung!!!

In meinem ersten Projekt versuche ich Temperatur und Luftfeuchte mittels DHT22 zu messen und die erfassten Daten via MQTT an Openhab zu senden. Darüber hinaus betreibe ich am ESP32 ein OLED Display, welches die gemessenen Werte ausgibt. Weiterhin versende ich eine Information über zu hohe Luftfeuchte via Telegram.

Die Implementierung ist weitestgehend abgeschlossen. Ich würde den ESP nun gerne betreiben, habe aber folgendes Problem:

Immer wenn ich den ESP32 spannungsfrei hatte (USB entfernt) und danach wieder anstecke, sehe ich keine Infos auf dem Display. Auch das Betätigen des EN Tasters scheint keine Auswirkungen zu haben. Erst wenn ich mit der Arduino IDE den „Seriellen Monitor“ öffne, scheint sich etwas zu tun. Leider wird in dem Fall offensichtlich ein Factory Reset mit anschließendem Neustart ausgeführt. Dabei gehen die gespeicherten Konfigurationsdaten (WLAN Settings) verloren. Hier mal die Ausgaben:

x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:952
load:0x40078000,len:6084
load:0x40080000,len:7936
entry 0x40080310

Basecamp V.0.1.6
Factory reset was forced.
Rebooting.
ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:952
load:0x40078000,len:6084
load:0x40080000,len:7936
entry 0x40080310

Basecamp V.0.1.6
Failed to open config file
Configuration empty
Generating access point secret.
MAC-Address: 3c:71:bf:0f:c9:a8, Hardware MAC: 3c:71:bf:0f:c9:a8
*******************************************
* ACCESS POINT PASSWORD: jdc:CnZV
*******************************************

WiFi.status() = WL_NO_SHIELD
Temperatur: 23.10 Humidity: 35.60

Ich habe dann mal versucht, die Konfigurationsdaten über die configuration.set Setter „einzubrennen“. Leider läuft der ESP auch nach Power off hier erst los, wenn ich den Seriellen Monitor öffne. Hier die Ausgaben:

x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:952
load:0x40078000,len:6084
load:0x40080000,len:7936
entry 0x40080310

Basecamp V.0.1.6
Resetting the WiFi configuration.
ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:952
load:0x40078000,len:6084
load:0x40080000,len:7936
entry 0x40080310

Basecamp V.0.1.6
MAC-Address: 3c:71:bf:0f:c9:a8, Hardware MAC: 3c:71:bf:0f:c9:a8
*******************************************
* ACCESS POINT PASSWORD: jdc:CnZV
*******************************************

WiFi.status() = WL_DISCONNECTED
Temperatur: 24.50 Humidity: 29.20

Was kann das Problem sein?

Ich benutze hier gerade einen in China gekauften ESP32 in der DOIT Version. Komischerweise kann ich auch beliebig oft den EN Taster drücken. Es wird lediglich jedes Mal ein Neustart ausgeführt aber ansonsten keinerlei Resets. Werder bei 5 Mal noch bei 7 Mal.

Ich habe zudem noch eine weitere Frage zum OTA Update. Die Konfiguration dazu muss ich von Hand über die Schlüssel iot.configuration.set("OTAActive", „???“) und iot.configuration.set("OTAPassword", „MyPasswd“) setzten? Auf was setzte ich „OTAActive“?

Schon einmal Danke für euren Support und VG Mario

mariosteinberg commented 5 years ago

Ich schaue mir gerade den Basecamp Code an und habe nun ein paar weitere Infos zu meinem „Problem“.

Der Boot Counter wird bei mir nicht zurückgesetzt. Grund ist der, dass ich mich nicht Zuhause befinde und der ESP deshalb keine IP bekommt, was die Voraussetzung für das Zurücksetzten des Counter ist. Durch das nicht zurücksetzten des Boot Counters ist irgendwann die Bedingung zum Resetten der Wifi Configuration erfüllt.

Bei den Untersuchungen ist mir aufgefallen, dass ich als Reason für das Drücken des Rest Button eine 1 komme und nicht wie offensichtlich erwartet 16. Ist das normal?

Des Weiteren ist mit eine Kleinigkeit aufgefallen:

In Basecamp::begin() ist in Zeile 62 eine Ausgabe, für den Check von fixedWiFiApEncryptionPassword. Serial.begin() passiert aber erst in Zeile 67. Ich gehe davon aus, das die Ausgabe in Zeile 62 deshalb nicht zu sehen sein wird.