Der ESP-01S, eine besonders kleine Variante eines ESP8266-Breakouts, eignet sich für „Ad-Hoc-Aufgaben“ durchaus für den Batteriebetrieb. Im Rahmen der Untersuchungen zur Heizungsoptimierung zeigten sich interessante Möglichkeiten …
31.01.2023, kosmetische Revision 02.07.2024
Messaufbau
Als Messaufbau (Abb. 1) diente die Temperaturüberwachung einer gas-Zentralheizung. Dazu misst der ESP8266 (ESP-01S) mit zwei Temperatursensoren DS18B20 alle 20 Sekunden Temperaturen und überträgt diese über https an einen Webservice. Im Loop wird zwischen den Übertragungen das WLAN ausgeschaltet, irgend eine Art des deep sleep ist nicht eingerichtet.
Der ESP-01S verträgt nur Spannungen bis knapp unter 4 Volt und hat keinen Spannungsregler an Bord. Daher versorgt eine kleine Schaltung mit einem Linearregler den ESP mit 3,3 Volt.
Aus den Mitschnitten der Temperaturwerte im Internet kann nun die Betriebsdauern mit unterschiedlicher Batterieversorgung bestimmt werden.
Abb.1: Foto des Messaufbaus
Testfälle
Folgende Testfälle wurden untersucht bzw sind geplant:
- 4 AA Batterien eines Discounters (Startspannung 6 Volt)
- 3 AA Batterien eines Discounters (Startstpannung 4,5 Volt)
- 2 AA Batterien eines Discounters (Startspannung 3 Volt)
- 4 AA NIMH Akkus 1200 mAh (no name, Startspannung knapp über 5 Volt)
- 3 AA NiMH Akkus 1200mAh (no name, Startspannung knapp unter vier Volt)
- 2 AA NiMH Akkus 1000mAh (no name, Startspannung etwa 2,6 Volt)
- 2 AAA Batterien mit einem ESP-12E
Anmerkung zum Testfall 7:
Dieser Testfall ist noch nocht abgeschlossen, zeigt aber Stand 30.06.2024 überzeugende Ergebnisse. Eingesetzt wird ein ESP-12E auf einem Adapter-Board, so dass ein Pinabstand von 2,54 mm eingehalten wird. Der Aufbau ist eine Minimalbeschaltung, die zwei Batterien sind direkt mit VCC verbunden. Der ESP läuft noch mit Spannungen bis hinunter zu 2,5V. Allerdings benötigen die daran angeschlossenen Temperatursensoren DS18B10 laut Datenblatt eine Mindestspannung von 3,0V. Im Testaufbau mit insgesamt drei Temperatursenosren DS18B20 fielen zwei der drei Sensoren aus bbei einer Gesamtbatteriespannung von 2,58V. Mit einem zusätzlichen Stützkondensator von 330 Mikrofarad direkt an Versorgungsspannungs-Pin des ESP und einer Verringerung der Pullup-Widerstände von 4,7kOhm auf 3,3kOhm ließ sich noch ein Weiterbetrieb erzwingen.
Messergebnisse
Folgende Betriebsdauern wurden ermittelt:
Testfall Batt/Akku. Anzahl Betriebsdauer/h 1. Batt. 4. noch offen 2. Batt. 3. 79 (>3 Tage) 3. Batt. 2. 4 4. Akku. 4. noch offen 5. Akku. 3 89 (>3 Tage) 6. Akku. 2. 6 (Fehlmessungen!)
Fazit
Mit drei Batterien eines Discounters kann ein ESP-01S mehr als drei Tage betrieben werden. Für Messungen, die sporadisch erfolgen sollen, ist das eine probate Energieversorgung.
Ein Betrieb mit Akkus ist auch möglich. Nachteil ist, dass bei drei Akkus einer tief entladen (0,4 Volt) und damit geschädigt wird. Hier ist ein Betrieb mit Wegwerfbatterien wirtschaftlicher und vermutlich auch ökologischer.
Ein Betrieb mit zwei Akkus oder Batterien ist möglich, allerdings nicht lange.
ToDo
Die Messreihe ist noch mit 4 Batterien oder Akkus zu komplettieren. Ich erwarte allerdings keine deutliche Verlängerung der Laufzeit.
Ein klügeres Energiemanagement (deep sleep) zwischen den Messungen sollte die Betriebsdauer deutlich erhöhen, allerdings kann der ESP-01S ohne Modifikationen nicht in den deep sleep versetzt werden
Glossar
Deep Sleep
Deep Sleep ist ein Energiesparmodus für Mikrocontroller. In diesem Modus wird der Mikrocontroller in einen Zustand versetzt, in dem er fast keine Energie (z.B. 1 MikroAmpere bei 3,3 Volt) verbraucht. Dies ist nützlich, wenn das Gerät für einen längeren Zeitraum nicht verwendet wird und die Batterie geschont werden soll. Wenn ein externes Ereignis wie ein Tastendruck oder ein Signal von einem Sensor auftritt, wird der Mikrocontroller aus dem Deep Sleep aufgeweckt und kann weiterarbeiten. Es gibt auch Möglichkeiten, den Deep Sleep zeitgesteuert zu beenden. Auf diese Weise kann ein Gerät mit begrenzten Energieressourcen (Akkubetrieb …) länger betrieben werden.
DS18B20
Der DS18B20 ist ein digitaler Temperatursensor. Im Gegensatz zu analogen Temperatursensoren, die ein analoges Spannungssignal ausgeben, das proportional zur gemessenen Temperatur ist, oder die ihren elektrischen Widerstand mit der Temperatur ändern, gibt der DS18B20 ein digitales Signal aus, das z.B. von einem Mikrocontroller wie dem ESP8266 oder einem Kleincomputer wie dem Raspberry Pi einfach ausgelesen werden kann. Das Anschlusskabel auf eine Entfernung von mehreren 10 Metern verlängert werden. Der DS18B20 verwendet eine Dallas-1-Wire-Schnittstelle, was bedeutet, dass mehrere Sensoren an einem einzigen Datenpin und an einem einzigen Datenkabel angeschlossen werden können. Der DS18B20 kann in einer breiten Spannweite von -55 bis +125 Grad Celsius verwendet werden und bietet eine hohe Genauigkeit von ±0,5 Grad Celsius. Er ist preiswert und gut beschaffbar und eignet sich daher besonders für Selbstbau (DIY) Projekte.
ESP-01S
Der ESP-01S ist ein presiwertes Microcontroller-Breakout mit integriertem Wi-Fi-Modul, des auf dem ESP8266-Microcontroller basiert. Er verfügt über einen 80 MHz Prozessor, einen 512 KB Flash-Speicher und einen 32 KB SRAM. Mit seiner geringen Größe und seiner Fähigkeit, mit einer Vielzahl von Geräten über Wi-Fi zu kommunizieren, eignet er sich gut für IoT-Anwendungen und Projekte, die eine einfache Konnektivität über WLAN benötigen. Im Gegensatz zu den größeren Modellen ist bei ESP-01S kein analoger Anschluss herausgeführt. Es können also nur digitale Sensoren angeschlossen werden.
ESP8266
Der ESP8266 ist ein Mikrocontroller mit integriertem WLAN, der für IoT-Anwendungen entwickelt wurde. Es verfügt über eine integrierte 802.11b / g / n-Funktionalität und eine 32-Bit-CPU, die es ermöglicht, Netzwerkanwendungen und -prozesse direkt auf dem Gerät auszuführen. Der ESP8266 kann einer Vielzahl von Entwicklungsplattformen und Programmiersprachen arbeiten, was ihn zu einer gängigen Wahl für DIY- und kommerzielle IoT-Projekte macht. Viele Anleitungen gibt es zur Programmierung in C mit der Arduino-IDE. Der ESP8266 kann auch in Micro-Python programmiert werden.
Linearregler
Ein Linearregler ist ein elektronisches Bauteil, das verwendet wird, um eine elektrische Spannung auf einen gewünschten Wert (oft 5 Volt oder 3,3 Volt) zu regulieren. Er arbeitet auf der Basis eines linearen Regelungsmodells und verwendet Feedback, um eine Abweichung zwischen dem gewünschten und dem tatsächlichen Wert zu messen und dann entsprechende Korrekturmaßnahmen zu ergreifen. Linearregler haben gegenüber einem Spannungswandler (DC-DC-Wandler) dann einen Vorteil, denn der Strom über längere Zeiträume sehr niedrig ist.
NiMH-Akku
Weiterlesen
Stützkondensator am ESP8266 und ESP23
Ein ausführliche Erklärung zum ESP32, die sich so auch für den ESP8266 gilt, findet man unter folgendem Link: https://arduino-hannover.de/2018/07/25/die-tuecken-der-esp32-stromversorgung/
Hier ist im Folgenden eine eine stark gekürzte Fassung wiedergegeben: Ein ESP32 benötigt ohne aktiven WLAN-Betrieb 50-70 mA, im WiFi-Betrieb geht der Stromverbrauch bis auf etwa 80-170 mA [im Mittel] hoch. Im WiFi-Betrieb werden beim Senden bis zu 400 mA und mehr gebraucht, allerdings nur für wenige Millisekunden. Fällt die Spannung dann unter einen Wert von 2,55 Volt, stürzt der ESP32 (oder auch der ESP8266) ab. Ein Unterschreiten der Spannung für weniger als eine Millisekunde reicht schon für einen Absturz aus. Sind die Zulaitungen für die Stromversorgung dünn, so kann durch den hohen Strom ein Spannungsabfall auf unter der notwendigen Betriebsspannung erfolgen.Beim WiFi-Empfang sieht es deutlich besser aus. Das ist aber auch dadurch bedingt, dass beim Empfang weniger Strom benötigt wird als beim Senden. Ein Teil der Lösung der Stabilitätsprobleme ist die Verwendung von dickeren Zuleitungskabeln. Eine weitere Möglichkeit ist die Pufferung der Betriebsspannung mit zwei Kondesnatoren: Einen 47-µF-Tantalkondensator, der direkt am ESP32-Modul zu den Pins VDD/GND parallel geschaltet wird. Dieser ist in der Lage, die geforderten Stromspitzen schneller als der LDO-Regler (beim Modell mit Spannungsregler) zu liefern. Zusätzlich zum Tantalkondensator gibt es dann noch die Möglichkeit, einen großen Low-ESR-Elektrolytkondensator mit einer Kapazität von 470 µF bis 2000 µF zu verwenden. Der Elko ist dann in der Lage, den Tantal nachzuladen, womit die Spannungsversorgung weiter stabilisiert wird.
Anmerkung: Ich verzichte auf den Tantalkondensator und verwende lediglich einen 330 Mikrofarad Elektrolytkondensator. Bisher hat das in allen von mir untersuchten Anwendungsfällen genügt. Ein vergleichbares Problem ergibt sich im Übrigen beim Betrieb eines SIM800L Mobilfunkmoduls, das beim GPRS-Aufbau Stromspitzen bis 2A erzeugt. Hier sind Elkos bis zu 2200 Mikrofarad erforderlich.
Dass die Spannungsversorgung ein Hautproblem des ESP sein könnte, lasst sich auch aus dem folgenden Blogbeitrag auf https://www.esp8266.com/viewtopic.php?p=71144 schließen. De Beitrag habe ich übersetzt:
„Der ESP8266 verzeiht nicht viel, wenn Sie ihn mit zu wenig Strom versorgen. Stromversorgungsprobleme können Sie in den Wahnsinn treiben, wenn Sie versuchen, die Ursache zu finden, wenn Sie glaubten, dass es ein Codeproblem war. Ich denke, als die ESP8266-Module entwickelt wurden, war der Gedanke, dass sie in ordnungsgemäß konzipierten Systemen mit angemessener Stromversorgung und Signalaufbereitung eingesetzt werden würden. Und das ist bei weitem nicht der Fall, wenn es um den Bastlermarkt geht. Der ESP8266 wird als stromsparender Chip angepriesen. Und das ist unter bestimmten Bedingungen auch richtig. Aber es gibt andere Betriebszustände, in denen er eine Menge Strom benötigt. (z.B. Selbstkalibrierung)
Spätere Revisionen einiger Module enthielten intern mehr Kapazität, um die Stromprobleme zu lösen. Sie sind besser, aber man muss immer noch vorsichtig sein, wenn man Stabilität und Zuverlässigkeit will.“