ESP32 Deep Sleep in 3 Schritten

Titelbild: KI-generiert
So schickst du deinen ESP32-S3 schlafen und sparst Energie. Wie lange läuft dein sparsamstes Projekt mit einer Ladung?
Schritt 1
Weckzeit festlegen
Bestimme die Schlafdauer mit einem Timer. Die Übergabe der Zeit erfolgt in Mikrosekunden.
esp_sleep_enable_timer_wakeup(5 * 1000000ULL);Stand: ESP32-S3, Arduino IDE 2
Schritt 2
Deep Sleep starten
Versetze den ESP32-S3 in den Ruhezustand. Der Prozessor stoppt, bis der Timer abgelaufen ist.
esp_deep_sleep_start();Stand: ESP32-S3, Arduino IDE 2
Schritt 3
Neustart beachten
Nach dem Wecken springt der Chip nicht zurück in die Schleife, sondern führt setup() wieder von vorn aus.
Stand: ESP32-S3, Arduino IDE 2
Tipp
Werte über den Schlaf behalten
Normale Variablen im RAM gehen verloren. Mit dem Präfix RTC_DATA_ATTR bleibt der Wert im RTC-Speicher erhalten.
RTC_DATA_ATTR int zaehler = 0;Tipp
WLAN sauber beenden
Trenne das WLAN, bevor der ESP32-S3 schläft. Im Deep Sleep ist der Funk aus, so reißt die Verbindung nicht einfach ab.
WiFi.disconnect(true);Stand: ESP32-S3, Arduino IDE 2 · jeder Schritt selbst am Gerät nachvollzogen
Quellen
- ESP-IDF Programming Guide: Sleep Modes
- ESP32-S3 Technical Reference Manual