ESP32 mit Batteriebetrieb

Der ESP32-Chip erfreut sich immer größerer Beliebtheit im Arduino-Umfeld. Als 32-bit-Prozessor ist er auch der leistungsfähigste Arduino mit sehr gutem Support durch den chinesischen Hersteller Espressif, der auch die gesamte Unterstützung für Arduino auf GitHub veröffentlich hat. Zusätzlich kann der ESP32 natürlich per WiFi und Bluetooth kommunizieren, mit unserem „ECO Power“-Board sogar auch über LoRa-Funktechnik und erzielt dabei Reichweiten von 200 m bis 20 km. Dieser Artikel beschreibt unsere Erfahrung mit dem ESP32 im Batterie- und Akkubetrieb.


So einfach bekommt man ein ESP32-WROOM-Modul zum Laufen: Erst per Adapter das Modul programmieren, danach das Modul verbinden und schon läuft der Batteriebetrieb.

Stromverbrauch des ESP32-WROOM-Moduls

Einige ermittelte Stromverbrauchswerte des ESP32-Chips:

ESP32-Modus Verbrauch
Deepsleep 7 µA
Lightsleep 1 mA
Normal (240 MHz) 50 mA
Reduzierter Takt (3 MHz) 3,8 mA
WiFi-Betrieb 80-180 mA

Diese Werte haben wir mit dem ESP32-WROOM-Modul gemessen, erreichen diese aber auch mit unserem „ECO Power“-Board bei Batteriebetrieb. Allerdings kommen die meisten ESP32-Boards nicht an diesen geringen Stromverbrauch heran. In der Regel brauchen ESP32-Boards trotz Deepsleep-Modus immer noch um die 20 mA, also mehr als das 2000-fache! Wesentliche Faktoren für den Stromverbrauch sind die auf dem Board zusätzlich vorhandenen Schaltungen, die Implementierung der USB-Stromversorgung sowie die Implementierung des Batterie- bzw. des Akkubetriebs. Mit regulären ESP32-Boards lässt sich der Stromverbrauch nicht weiter senken, also muss etwas eigenes entwickelt werden. Dies haben wir mit dem „ECO Power“-Board getan.

Vergleich zu anderen 32-bit-MCUs im Stromsparmodus

Diese Werte haben wir in der Praxis erreicht, was zeigt, dass der sehr leistungsfähige ESP32 äußerst stromsparend ist – natürlich mit Kompromissen, aber immerhin mit einer Standard-Arduino-Umgebung.

Wahl der richtigen Batterien bzw. Akkus

Der ESP32 läuft grundsätzlich mit ca. 2,55 bis 3,6 V, wie es beim ESP32-WROOM-Modul der Fall ist. Externe Erweiterungen wie beispielsweise ein Bildschirm oder andere Komponenten benötigen oft mindestens 3,3 V. Möchte man den ESP32 mit langer Batterie- bzw. Akkulaufzeit betrieben, gibt es einiges zu beachten. Um nicht in diese Fallen zu laufen, hier eine Übersicht.

1. ESP32-Betrieb über eine Powerbank

Das ist so ziemlich die schlechteste Variante. So eine Powerbank nutzt intern einen 3,7 V Lithium-Akku, transformiert diese Spannung dann mit Verlust auf 5 V, ein angeschlossener ESP32 nutzt dann einen LDO (Spannungsregler), der die 5 V auf 3,3 V herunterregelt. Hinsichtlich der Energieeffizienz ist dies eine Katastrophe; mehrfaches Umwandeln verbraucht permanent erheblich Strom (also ständig, auch wenn der ESP32 nur 7 µA anfordert). Zusätzlich schalten einige Powerbanks automatisch ab, da diese glauben, es sei aufgrund der geringen Stromaufnahme des ESP32 kein Verbraucher mehr angeschlossen.

2. ESP32-Betrieb über einen NiMH-Akku oder reguläre Batterien (2 x 1,5 V)

Ein direkter Betrieb über zwei NiMH-Akkus funktioniert nicht, da ein Akku nur ca. 1,2 V bringt, also 2,4 V bei zwei Batterien. Das ist zu wenig für die erforderlichen 2,55 V, welche der ESP32 mindestens benötigt. Drei NiMH-Akkus in Reihe geschaltet sind auch keine Option, da die maximale Spannung von 3,6 V für den ESP32 bei vollen Akkus überschritten wird.

Mit regulären Batterien (außer Lithium) funktioniert dies auch nicht lange, da die Mindestspannung des ESP32 von 2,55 Volt nach einer gewissen Betriebsdauer unterschritten wird und die Batterie aber noch bei 70% ihrer Gesamtkapazität ist. Zusätzlich benötigt der ESP32 bei WiFi kurzfristig auch schnell mal 400-mA-Impulse – da bricht die Batteriespannung von regulären Batterien zusammen und der ESP32 läuft in den Reset.

3. ESP32-Betrieb über Lithium-Batterien

Egal ob zwei 1,5-V-Lithium-Batterien in Reihe oder eine CRV123-3-V-Lithium-Batterie, mit Lithium-Batterien funktioniert alles hervorragend. Diese halten nämlich ziemlich konstant eine Spannung von 3 V, bei unter 2,7 V sind dann auch über 90% der Kapazität einer Lithium-Batterie verbraucht, bei 2,55 V ist sie dann praktisch leer. Auch den kurzfristigen großen Strombedarf bei WiFi-Betrieb liefern Lithium-Batterien ohne Probleme. So ist beispielsweise mit einer Varta CRV123 (3 V, 1700 mAh) sogar ein Standby-Betrieb von über 5 Jahren möglich, natürlich abhängig davon, wie oft der ESP32 aufwacht und etwas tun muss, bzw. wie lange und wie häufig WiFi oder Bluetooth verwendet wird.

Da Lithium-Batterien eine sehr geringe Selbstentladung haben und auch bei -20 Grad Kälte auch noch gut funktionieren, sind diese zu bevorzugen.

4. ESP32-Betrieb über LiFePO4-Akkus

Moderne LiFePO4-Akkus funktionieren ebenfalls hervorragend, liefern allerdings bei gleicher Baugröße ca. 70% weniger Energie als eine Lithium-Batterie. Dafür können LiFePO4-Akkus aber wieder aufgeladen werden bzw. mit einem geladenen Akku ausgetauscht werden. LiFePO4-Akkus liefern auch unproblematisch hohe Leistungen für den WiFi-Betrieb, haben dabei aber nicht den Nachteil wie LiPo-Akkus, welche sich bei falscher Nutzung oder Qualitätsmängeln entflammen können.

Für den kurzfristigen Betrieb, also Wochen und Monate, sind LiFePO4-Akkus gut geeignet. Es ist jedoch dringend zu beachten, dass ein spezielles Ladegerät benötigt wird, welches für LiFePO4-3-V-Akkus geeignet ist.

5. ESP32-Betrieb über LiPo- oder Lithium-Akkus

LiPo- oder Lithium-Akkus funktionieren natürlich, da diese genügend Leistung für den ESP32 liefern. Allerdings ist die Spannung, je nach Ladezustand, mit 3,7 bis 4,2 V viel zu groß für den ESP32. Daher muss diese heruntergeregelt werden. Das bringt den Nachteil mit sich, dass ein Großteil der Energie permanent zum Herunterregeln der Spannung auf 3,3 V verbraucht wird. Einfache LDO-Regler benötigen für den Standby ca. 2000 mal mehr Strom als der ESP32 im Deepsleep-Modus, und das durchgängig jede Sekunde, 24 Stunden pro Tag, 365 Tage. Selbst bessere Regler benötigen immer noch viel Strom.

Selbstverständlich funktionieren LiPo-Akkus für den Betrieb von einem Tag bzw. wenigen Tagen, aber über Wochen und Jahre ist dies so gut wie unmöglich.

Zusammenfassung

Beim Batterie-/Akkubetrieb mit einer Standbydauer von Wochen und Jahren ist die Lithium-Batterie die erste Wahl.

Stromvergleich ESP32-Boards im Deepsleep-Modus:

Board Stromverbrauch Kommentar
ECO Power 7 µA per Lithium-Batterie oder LiFePO4-Akku
ESP32 DevKitC 11 mA per USB-Stromversorgung

Die Uhrzeit im Deepsleep-Modus beim ESP32

Im Deepsleep-Modus schaltet der ESP32 die CPU und den dazu gehörigen Quarz ab. Ein interner Oszillator sorgt dafür, dass die Uhrzeit trotzdem weiterläuft. Dieser interne Oszillator ist aber sehr ungenau und temperaturabhängig, sodass sich im permanenten Deepsleep-Modus schnell eine Abweichung von 20 % und mehr einstellt. Damit stimmt die Uhr nach wenigen Tagen überhaupt nicht mehr. Hinzu kommt, dass bei einem Batteriewechsel oder einem Reset bzw. WatchDog die Uhrzeit auf 0 zurückgesetzt wird. Für einen langfristigen Batterie- bzw. Akkubetrieb ist das schon recht problematisch; diese Einschränkung existiert praktisch bei allen ESP32-Boards.

Unser „ECO Power“-Board löst das Problem, indem zusätzlich eine hochgenaue RTC-Uhr (DS3231) verbaut ist, welche nach dem Deepsleep einfach die richtige Uhrzeit setzt. Zusätzlich werden alle DS3231-RTCs einzeln während der „ECO Power“-Produktion gegen eine Atomuhr kalibriert. Die DS3231 ist auch temperaturkompensiert (TCXO), sodass diese unabhängig vom Wetter über viele Jahre hinweg die genaue Uhrzeit liefert.

Verweise

20 Gedanken zu „ESP32 mit Batteriebetrieb

  1. Wie wäre es mit einem Linearregler beim Einsatz von LiPo-Akkus? Haben die auch so hohe Grundverluste? Die Spannungsdifferenz ist ja gering, so dass im Normalzustand kaum Leistung verloren geht. Und auf Akku möchte man den Normalzustand sowieso minimieren und die meiste Zeit schlafen.

  2. Pingback: Microcontroller ESP32 - LOLIN32 - Technik Blog

  3. Wir müssen einen ESP32 über mind. 6 Monate mit Strom versorgen, allerdings müssen wir Akkumulatoren benutzen (Projektarbeit) und über WiFi Datenabfragen.
    Unser erster Gedanke wäre da eine AA 1,5V (ca. 2000mAh) Lithium Ionen Akku, würde das nicht auch funktionieren, statt einer Lithium-Batterie?

    • Ich habe einen ESP8266 über 5 Monate abwechselnd 4 Sekunden betrieben (inklusive WiFi Datenübertragung) und dann 10 Minuten in Tiefschlaf versetzt. Spannungsquelle war eine einzelne LiIo-Zelle Typ 18650. Da die Spannung der Zelle im voll geladenen Zustand zu hoch ist, habe ich eine Diode 1N4001 in die Plus-Leitung gesetzt. Die knabbert ca. 0,6 Volt weg. Wenn man 2 von den Zellen parallel schaltet, sollte das noch sehr viel länger gehen.

    • Das ist keine optimale Lösung, so ein 3.3V Regler zieht 10mA um Ruhezustand. Wenn auch mal 5V per USB Stromversorgung angeschlossen werden stellt der Goldcap einen Kurzschluss da.

  4. Hallo
    interessante Studio zu dem Thema auch das Eco Board finde ich interessant.

    Wir möchten eine Akku betriebene Cam mit Bewegungserkennung betreiben,
    Die Daten sollten auf SD-Karte erstmal gespeichert werden.
    Ideal wäre eigentlich gleich das Senden der Daten via WiFi an einen Server der im Empfangsbereich steht.
    Die Cam wird ca 30mal/Tag ausgelöst und wohl für max 30 Sekunden pro Aktivität laufen
    Ist das mit dem Eco-Power Modul und einer passenden cam (z.B. der vom ESP32-Cam Modul) zu machen?

    Wenn nein gibts eine Empfehlung?

    • leider haben wir keine Empfehlung, ECO Power hat keine SD Karte. Das Problem ist aber größer, da die Camera und der ESP32 erheblich Strom brauchen. Vielleicht tut es so eine Wildkamera, die man ggf. umbauen kann.
      Viel Erfolg.

      • Hallo
        danke für die Antwort… schade
        Danke für den Tipp mit der Fotofalle
        Da gäbe es auch die Möglichkeit das dann u.U selber zu basteln und an Telegram-Bot z senden so hätte man es gleich auf dem Smartphone

        Frage
        Kann man z.B 4 LiFePO4 Akkus parallel schalten… so hätte ich ja mehr Leistung bei gleicher Spannung?
        Ich möchte ungern 3V Lithium-Batterien verwenden, lieber Akkus zum wieder aufladen mit entspr. Ladegerät

        Kann man auch andere LiFePO4 Akkus verwenden
        Im Netz gibt es
        den von o.g. RCR 123a Akku
        dieser liefert jedoch 3,7V bei ca 650mA
        um anständig Leistung zu haben müsste ich wohl 4 parallel schalten
        Vorteil= Ladegerät wäre einfacher und günstiger zu bekommen

        kann ich dagegen LiFePO4 Industrie Akkus verwenden
        so haben kommen diese näher an die 3V ran z.B. 3,2V-3,3V
        An leistung hätten diese teils sogar 6000 mA
        Nachteil= Ladegerät und ich könnte keinen Standardbatterieschacht nehmen
        wenn ich hier jedoch 2 parallel schalte müsste das schon einige Zeit reichen und evtl. sogar um videos zu streamen
        oder?

        Ps wann ist Euer ECO-Power wieder verfügbar?

        Wären diese Varianten möglich?

        • Ich würde einfach Lithium Batterien verwenden, die haben im Vergleich zum Akku eine geringe Selbstentladung und funktionieren auch bei kalten Wetter gut. Die MCU muss dann natürlich in den Deep-Sleep gehen um Strom zu sparen.
          Für das neue ECO Power Board gibt es noch keinen Termin, mehr auf der RadioShuttle Webseite. Lieferbar sind die Turtle (für Batteriebetrieb) und Eagle Boards (für 5V Betrieb).
          Gruß

  5. Ein ESP-WROOM-32 Board läuft bei mir mit 2,95V aus einer Lithium Batterie nicht mehr an.
    Im Datenblatt steht unter recommended operating conditions:
    Note 3. • Chips with a 3.3 V flash embedded: this minimum voltage is 3.0 V
    Die Grenze schwankt. Ich habe eine anderes Board, das mit 2.9V noch funktioniert.
    D.h. der Betrieb mit der 3V Lithium Zelle ist nicht immer gewährleistet.

  6. Ich möchte ein ESP32 mit einem DRV8835 und zwei Motoren betreiben. Ich dachte dabei den ESP mit CR2032 zu betreiben und die Motoren über den Treiber mit 3.7 V Lipo-Akku. Es handelt sich um ein Fahrzeug, welches für paar Minuten fahren soll, bis der Akku leer ist. Dann wird auch die „Knopfzelle“ abgeklemmt. Ist die CR2032 dafür geeignet und hält sie einige Spielzyklen aus?

  7. Moin,
    Ich bin ganz neu hier in der Thematik.
    Möchte mit einem ESP32 und kapazitiven Sensoren meine Silofüllstände digitalisieren.
    Die Technik möchte ich möglichst viele Jahre (gerne bis zu 10 Jahre) nach inbetriebnahme nicht mehr warten müssen, da sie oben auf den Silos instaliert werden.
    Der ESP soll etwa alle 4-6h die Füllstände abfragen und weiterleiten.
    Die Sensoren laufen jedoch leider mit 10-30V.
    Wie würde man sowas umsetzten?

    • Moin, das Thema ist umfangreicher, vielleicht kommen Sie zu unserem Arduino Treffen jedem Mittwoch ab 19 Uhr, hier können wir gerne darüber diskutieren, sowie Hilfe zur Selbsthilfe geben. Gruß aus Hannover.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

I accept that my given data and my IP address is sent to a server in the USA only for the purpose of spam prevention through the Akismet program.More information on Akismet and GDPR.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.