Forum: Mikrocontroller und Digitale Elektronik ESP 32 wake up von Sleep modus via WIFI


von Kleiner M. (zarathustrah)


Lesenswert?

hey :)
wie der titel schon sagt, gibt es einen sleep modus bei dem ich den esp 
32 über wifi wieder aufwecken kann? oder ergibt das keinen sinn weil 
wifi sowieso am meisten power frisst? weil bei allen modi die ich bisher 
gefunden habe wurde das WIFI auch ausgemacht.

viele grüße :)

von Heinz R. (heijz)


Lesenswert?

Es macht keinen Sinn -wenn er schläft dan schläft er  hört nicht auf 
WLAN

von Joachim B. (jar)


Lesenswert?

ein 2ter ESP weckt den schlafenden ESP

von Roland M. (r0land)


Lesenswert?

Hallo,
es ergibt nicht viel Sinn, WIFI/Bluetooth an zu lassen da diese den 
Hauptteil des Stromverbrauches aus machen, und ein Sleepmode ohne 
Prozessor aber mit WLAN nicht existiert.
Worum geht es denn? Eventuell lässt sich eine Möglichkeit nutzen bei der 
der ESP nur alle 1s aufwacht sich mit dem WLAN verbindet und dann wieder 
den Rest der Sekunde schläft, oder man nutzt ein anderes Protokoll wie 
ESPnow oder BLE.

von Coronianer (Gast)


Lesenswert?

So einfach, wie sich das einige hier machen, ist das natürlich nicht.

Der ESP32 unterstützt Modem-Sleep. Im Minimum Powersave Mode wacht das 
Modem gemäß den DTIM-Intervallen auf. Verpasst wird nichts, da der 
Accesspoint die Broadcasts und Multicasts gemäß Standard speichert und 
dem ESP32 dann entsprechend mitteilt.
Richtig nützlich ist das aber nur, wenn Du einen echten Router oder 
Accesspoint hast, also einen, in dem Du die DTIM-Intervalle selber 
einstellen und vergrößern kannst.
Die schrottige Fritzbox fällt damit aus. Allerdings geht das bei jedem 
OpenWRT-Router.

Im Maximum Powersave Mode kannst Du das Listen-Intervall vergrößern, 
dabei kannst Du aber natürlich Broadcasts verpassen, da das ESP32-Modem 
nicht mehr in jedem DTIM-Intervall aufwacht.

Es hängt also von Deiner Anwendung ab, was für Dich die sinnvollste 
Variante ist.

von Kleiner M. (zarathustrah)


Lesenswert?

Coronianer schrieb:
> So einfach, wie sich das einige hier machen, ist das natürlich nicht.
>
> Der ESP32 unterstützt Modem-Sleep. Im Minimum Powersave Mode wacht das
> Modem gemäß den DTIM-Intervallen auf. Verpasst wird nichts, da der
> Accesspoint die Broadcasts und Multicasts gemäß Standard speichert und
> dem ESP32 dann entsprechend mitteilt.
> Richtig nützlich ist das aber nur, wenn Du einen echten Router oder
> Accesspoint hast, also einen, in dem Du die DTIM-Intervalle selber
> einstellen und vergrößern kannst.
> Die schrottige Fritzbox fällt damit aus. Allerdings geht das bei jedem
> OpenWRT-Router.
>
> Im Maximum Powersave Mode kannst Du das Listen-Intervall vergrößern,
> dabei kannst Du aber natürlich Broadcasts verpassen, da das ESP32-Modem
> nicht mehr in jedem DTIM-Intervall aufwacht.
>
> Es hängt also von Deiner Anwendung ab, was für Dich die sinnvollste
> Variante ist.

also ist wäre der einzige weg den ESP32 über wlan aufzuwecken über den 
Modem Mode?

das ergibt für mich leider keinen sinn da ich keinen router zwischen 
wlan verbindung von PC und ESP32 habe, da ich den ESP als Accesspoint 
verwende.

von John Doe (Gast)


Lesenswert?

Kleiner M. schrieb:
> das ergibt für mich leider keinen sinn da ich keinen router zwischen
> wlan verbindung von PC und ESP32 habe, da ich den ESP als Accesspoint
> verwende.

Espressif schreibt dazu:
"Currently ESP32 AP doesn’t support all of the power save feature 
defined in Wi-Fi specification." und

"In future, all power save features will be supported on ESP32 AP."

von Stefan F. (Gast)


Lesenswert?

John Doe schrieb:
> "In future, all power save features will be supported on ESP32 AP."

Haha, wenn ich daran denke, was die beim ESP8266 schon alles versprochen 
hatten und nicht umgesetzt haben...

Ich sage euch was: Eher kommt ein ESP64 mit wieder einem neuen SDK auf 
den Markt, als dass der ESP32 jemand richtig rund laufen wird.

von Alexander (alecxs)


Lesenswert?

Hallo, mein NodeMCU ESP32s verbraucht zu viel Strom. Es wird Bluetooth 
benötigt, aber nur wenn eine Verbindung mit dem Smartphone hergestellt 
wurde, also mal so eine Stunde am Tag, die meiste Zeit ungenutzt. Wozu 
dient die Funktion esp_sleep_enable_bt_wakeup() kann man damit via 
Bluetooth aufwecken?

von Εrnst B. (ernst)


Lesenswert?

Alexander schrieb:
> kann man damit via
> Bluetooth aufwecken?

Das hat numal so garnichts mit dem bisherigen Thread aus 2020 zu tun, 
nichtmal der Titel passt.
--> Mach einen neuen Thread auf, aussagekräftiger Betreff, und verlink 
ihn evtl. hier.

von Alexander (alecxs)


Lesenswert?

Gut dann korrigiere ich meine Frage auf esp_sleep_enable_wifi_wakeup() 
wenn es wirklich so einen großen Unterschied macht. Das Thema bleibt das 
gleiche wie im OP.

von Jannik M. (jannik_m)


Lesenswert?

Ich habe mal das selbe Problem gehabt und schlussendlich den ESP 
zwischenzeitlich in den Deep Sleep Modus gebracht. Also das was Roland 
M. damals schon erwähnt hat.

Das heißt knapp 32 Sekunden schläft bei mir der ESP, danach aktiviere 
ich Wifi bzw. ESP Now und warte 1 Sekunde oder so auf ein Signal, falls 
keins vorhanden ist geht der ESP wieder in den Deep Sleep Mode. 
Zusätzlich habe ich die Power LED entlötet, da diese auch im Deep Sleep 
Mode leuchtet und unnötigen Strom verbraucht.

So sieht das ganze bei mir aus:
1
// Beende alle Verbindungen
2
WiFi.disconnect();
3
WiFi.mode(WIFI_OFF);
4
esp_now_deinit();
5
6
// Setze in Ruhemodus
7
esp_sleep_enable_timer_wakeup(Schlafzeit * 1000000); 
8
esp_light_sleep_start();
9
10
// Reinitialisiere ESP NOW
11
delay(100);
12
WiFi.mode(WIFI_STA);
13
WiFi.disconnect();
14
EspError = esp_now_init();

: Bearbeitet durch User
von Alexander (alecxs)


Lesenswert?

Das wäre die Notlösung, an sowas habe ich schon gedacht. Mich hätte aber 
mal der Sinn dieser Funktionen interessiert die ich genannt habe.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.