Hallo zusammen.
Ich habe mir den ESP32-C6 angeschaut und festgestellt, dass der
Stromverbrauch im light sleep mit 180 uA endlich nicht mehr absolut
katastrophal ist. Bei hoher Messhäufigkeit sollte der ESP32-C6 damit im
light sleep bei hoher Messhäufigkeit besser Batterielaufzeiten erreichen
als im deep sleep.
Ich benutze schon einige ESP8266/32 aber nur mit deep sleep.
Also gleich 2 verschiedene Boards bestellt und losgelegt. Zuerst
braucht der Chip eher 300uA im light sleep und damit fast doppelt so
viel wie im Datenblatt aber ok... Die Boards sind nicht das Problem
beide <20uA im deep sleep.
Schlimmer ist allerdings, dass der ESP nach dem Aufwachen keine
Verbindung mehr herstellen kann.
Hier mein Minnimalcode erstellt mit der Arduino IDE:
1 | while (1){
|
2 | delay(1000);
|
3 | WiFi.mode(WIFI_STA);
|
4 | WiFi.begin(ssid,password);
|
5 | testdaten_senden();
|
6 |
|
7 | WiFi.disconnect(true);
|
8 | WiFi.mode(WIFI_OFF);
|
9 | delay(1000);
|
10 | esp_sleep_enable_timer_wakeup(0.1 * 60 * 1000 * 1000);
|
11 | esp_light_sleep_start();
|
12 | }
|
Kommentiere ich die Zeile esp_light_sleep_start(); aus funktioniert
alles wie gewünscht.
Mit light sleep bleibt das Programm bei WiFi.mode(WIFI_STA); hängen.
Die letzte Meldung die ich vom ESP bekomme lautet:
[NetworkEvents.cpp:119] checkForEvent(): Network Event: 9 - WIFI_READY
Ohne sleep folgt etwa nach ~30uS:
[STA.cpp:184] _onStaEvent(): STA Started
Mit sleep bleibt das Programm wie gesagt einfach hängen.
Kennt jemand eine Lösung?
Danke schon einmal.