Der Stromverbrauch des ESP32 kann mit Schlafmodi reduziert werden.
Der ESP32 ist ein unglaubliches Gerät: Er kann Informationen mit Hunderten von Megahertz verarbeiten, über WiFi und Bluetooth kommunizieren und eine Vielzahl von Aufgaben mit seinen GPIO-Pins erledigen. Allerdings könnte man sagen, dass mit großer Leistung auch…hoher Stromverbrauch einhergeht.
Um fair zu sein, ist der Stromverbrauch des ESP32 tatsächlich im Vergleich zu ähnlichen Geräten vor einem Jahrzehnt ziemlich niedrig. Für moderne IoT-Anwendungen, insbesondere wenn eine Batterie im Spiel ist, kann er jedoch relativ viel Strom verbrauchen und Hunderte von Milliampere Strom ziehen, wenn er vollständig eingeschaltet ist.
Die gute Nachricht ist, dass der ESP32 auch über ein System von Schlaf- und Ruhezustandsmodi verfügt. Bei sorgfältiger Nutzung ermöglichen diese Modi, den Stromhunger des ESP zu zähmen oder zumindest auf kurze Aktivitätsphasen zu beschränken.
Schlafmodi
ESP32 Tiefschlaf und andere Stromsparmodi sind in der unten stehenden Tabelle aus dem Datenblatt aufgeführt:
| Betriebsmodus | Beschreibung | Leistungsaufnahme | |
| Modem-Schlaf | Die CPU ist eingeschaltet. | 240 MHz (Dual-Core-Chip(s)) | 30 mA ~ 68 mA |
| 240 MHz (Single-Core-Chip(s)) | N/A | ||
| 160 MHz (Dual-Core-Chip(s)) | 27 mA ~ 44 mA | ||
| 160 MHz (Single-Core-Chip(s)) | 27 mA ~ 34 mA | ||
| Normale Geschwindigkeit: 80 MHz (Dual-Core-Chip(s)) | 20 mA ~ 31 mA | ||
| Normale Geschwindigkeit: 80 MHz (Single-Core-Chip(s)) | 20 mA ~ 25 mA | ||
| Leicht-Schlaf | - | 0,8 mA | |
| Tief-Schlaf | Der ULP-Coprozessor ist eingeschaltet. | 150 µA | |
| ULP-sensorüberwachtes Muster | 100 µA @1% Dienst | ||
| RTC-Timer + RTC-Speicher | 10 µA | ||
| Ruhezustand | Nur RTC-Timer | 5 µA | |
| Ausschaltung | CHIP_PU ist auf niedriges Niveau gesetzt, der Chip ist ausgeschaltet. | 1 µA | |
Bildschirmfoto aus dem Datenblatt
Der ESP32 verfügt über fünf Energiesparmodi: ESP32 Modem-Schlaf, Leicht-Schlaf, Tief-Schlaf, Ruhezustand und Ausschalten. Modem-Schlaf und Tief-Schlaf haben mehrere Untermodi mit unterschiedlichen Energieverbrauchsraten basierend auf aktiven Verarbeitungskapazitäten. Im Ruhezustand wird nahezu die gesamte Funktionalität des Chips gestoppt, mit Ausnahme eines RTC, der ihn nach einer festgelegten Zeit aufwecken kann. Der Ausschaltmodus wird aktiviert, wenn der CHIP_PU-Pin als niedrig eingestellt ist und erfordert externe Interaktion, um die Verarbeitung erneut zu starten.
Die Quintessenz von alledem ist, dass die Energiesparmodi des ESP32 zwischen 68mA und 5µA, beziehungsweise .068A und .000005A verbrauchen können, den Ausschaltmodus nicht berücksichtigt. Der Nachteil ist, dass jeder Modus die Nützlichkeit des ESP32 einschränkt, wie unten aufgeführt:
- Modem-Schlaf: Drahtlose Kommunikation wird abgeschaltet.
- Leicht-Schlaf: Pausiert die CPU, behält aber Speicherzustände bei.
- Tief-Schlaf: Schaltet den Hauptspeicher des ESP32 aus. Eine begrenzte Menge an RTC (Echtzeituhr) Speicher wird behalten und kann beim Aufwachen verwendet werden. Der ULP (Ultraniedrigenergie)-Prozessor ist in zwei der drei Tief-Schlaf-Untermodi aktiv und ermöglicht eine einfache Aufgabenbearbeitung und Eingangsüberwachung.
- Ruhezustand: Lässt nur den RTC und eine begrenzte Anzahl von GPIO-Pins für das Aufwachen aktiv. Kein Speicher wird behalten.
- Ausschalten: Muss extern eingeschaltet werden. Der Stromverbrauch von 1µA ist in den meisten Situationen vernachlässigbar.
Ohne Berücksichtigung der Spannungseffekte könnte eine kleine, wiederaufladbare 3,7V, 850mAh-Batterie einen ESP32 im Modem-Schlaf für ungefähr 12,5 Stunden mit Strom versorgen. Der Leicht-Schlaf könnte über 1000 Stunden laufen. Der tiefere Tief-Schlaf-Ruhezustand bietet 8500 Stunden Laufzeit – ungefähr ein Jahr – während ein Ruhezustand theoretisch fast 20 Jahre gehalten werden könnte. Natürlich muss das Gerät gelegentlich geweckt werden, um nützlich zu sein, aber mit sorgfältiger Planung kann ein ESP32-Setup zu einer extrem langen Lebensdauer zwischen den Batterieladungen führen.
Unterschiede bei ESP32 Deep Sleep Entwicklungsboards
Bildschirmfoto aus dem Datenblatt
Beim Thema Stromverbrauch ist ein ESP32-Chip oder -Modul nur ein Bestandteil der Elektroniken. Für Experimente werden Sie wahrscheinlich ein Entwicklungsboard verwenden. Für ausgefeiltere Elektronikdesigns ist eine kundenspezifische Anordnung der zugehörigen Teile erforderlich, um ein IoT-„Ding“ zu betreiben. Mit sorgfältiger Programmierung kann der Einsatz eines ESP32 sehr energieeffizient sein, jedoch müssen die umliegenden Elektroniken sorgfältig berücksichtigt werden.
Um diesen Punkt zu veranschaulichen, habe ich ein Adafruit HUZZAH32 ESP32 Entwicklungsboard an eine Stromquelle und ein Strommessgerät angeschlossen, zusammen mit einem DFRobot DFR0478 ESP32 Board. Beide wurden in diesem ESP32 Composite Video Clock-Post vorgestellt und zeigten unterschiedliche Leistungen in einem eher speziellen Anwendungsbereich. Vielleicht würde sich auch die Energieeffizienz als Unterscheidungsmerkmal zwischen den beiden herausstellen.
Um dies zu testen, habe ich einen modifizierten „TimerWakeUp“ ESP32 Arduino-Beispiel-Sketch verwendet, der in den Tiefschlaf geht, aufwacht, das eingebaute LED-Licht leuchtet und dann den Zyklus wieder beginnt, indem er in den Schlaf geht. 5,3V wurden jedem Board zugeführt, um in das ~3,3V-Niveau umgewandelt zu werden, das für den ESP32 benötigt wird. Verbrauchsergebnisse waren wie folgt:
HUZZAH32: sleep = 6,6mA wach = 43,2mA wach + LED = 44,6mA
DFR0478: schlaf = .02mA wach = 39,7mA wach + LED = 40,0mA
Um fair zu sein, eine bessere Simulation der tatsächlichen IoT-Nutzung wäre gewesen, den Strom durch den Batterieanschluss zu messen. Nichtsdestotrotz scheint die DFR0478 FireBeetle-Platine im Schlafmodus viel effizienter zu sein als ihr Gegenstück.
Die HUZZAH32 zieht 7000µA (7mA) während des Tiefschlafs aus Batteriestrom, ungefähr das, was ich in meinem Experiment gemessen habe. Eine Analyse von Andreas Spiess ergab, dass die DFR0478 gemeldete 53µA (.053mA) Strom aus der Batterie zieht, wenn sie im Tiefschlaf ist. Dies ist deutlich mehr als das, was ich auf der DFR0478 gemessen habe, jedoch verwendet sein Bericht eine andere Energiezufuhr und eine frühere Version der Platine (2.0 vs 4.0, die ich getestet habe). Diese Messung bewegt sich auch an den unteren Grenzen dessen, was mein Multimeter anzeigen kann, was sich auf die Genauigkeit auswirken könnte. Als letzte Einschränkung nutzt die getestete FireBeetle ein WROOM-32D ESP32-Modul, während die HUZZAH32 ein WROOM-32E verwendet.
All das gesagt, gibt es Größenordnungen von Unterschied zwischen den beiden getesteten Platinen, was eine gute Illustration ist, dass die Schaltung, die ein ESP32 unterstützt, einen dramatischen Einfluss auf den Stromverbrauch haben kann.
ESP32-Stromverbrauch durch Schlafmodi gezähmt
Das ESP32 ist ein unglaublich leistungsstarkes Gerät, das relativ viel Energie zum Betrieb benötigen kann. Mit sorgfältiger Programmierung ist es jedoch möglich, dass eines dieser Geräte wochen-, monate- oder sogar länger mit Batteriebetrieb funktioniert. Der Schlüssel liegt darin, die Kompromisse im Niedrigenergie-Design zu verstehen und zu wissen, was weggelassen werden kann, während dennoch eine akzeptable Leistung erzielt wird.
Newsletter
Sind Sie auf der Liste?
Melden Sie sich an, um exklusive Angebote, Produktankündigungen und die neuesten Branchennews zu erhalten.

Artikel tags