Stell dir vor, du baust einen wetterfesten Außensensor, der einmal täglich die Temperatur misst und die Daten an deinen Server sendet. Oder du entwickelst einen Bewegungssensor für dein Smart-Home-System, der nur aktiviert wird, wenn jemand den Raum betritt. Vielleicht planst du auch eine batteriebetriebene Wildtierkamera, die nur bei Bewegungserkennung Bilder aufnimmt. In all diesen Fällen sorgt Deep-Sleep dafür, dass der Stromverbrauch minimiert wird und deine Sensoren monatelang ohne Batteriewechsel laufen können.
Produktempfehlungen und -suche in Verbindung mit dem Amazon Partnerprogramm:
- Preis aufsteigend
- Preis absteigend
- Reduzierte zuerst
¹ Angaben ohne Gewähr. Bei einem Kauf über den Link erhalten wir eine Provision.
Mit Deep-Sleep kannst du deinen ESP besonders energieeffizient betreiben und die Batterielaufzeit erheblich verlängern. Aber Achtung: Nicht alle Boards sind gleich effizient im Deep-Sleep-Modus.
Zum Kapitel springen Was ist Deep Sleep?
Deep-Sleep ist ein Zustand des Boards, in dem es einen sehr geringen Stromverbrauch aufweist. Grund dafür ist, dass so gut wie alle Funktionen des Boards außer Betrieb sind. Besser gesagt: Alle Funktionen bis auf die RTC (Real-Time Clock).
Hier mal eine Übersicht, welche Funktionen des Boards im Deep-Sleep Modus betroffen sind:
| Funktion | Zustand |
|---|---|
| WLAN | aus |
| System clock | aus |
| CPU | aus |
| RTC | an |
Wir erkennen, dass der Deep-Sleep-Modus tatsächlich ein Standby-Modus ist, in dem nur begrenzte Funktionen verfügbar sind. Dieser Modus ist jedoch entscheidend, um den Stromverbrauch zu minimieren und die Batterielaufzeit zu verlängern.
Zum Kapitel springen Stromverbrauch im Deep-Sleep
Laut verschiedenen Angaben im Netz beträgt der Stromverbrauch während dem Deep-Sleep zwischen 10 und 20 µA. Das entspricht gerade einmal 0,01 - 0,02 mA. Das ist der Wahnsinn! Im Datenblatt ist der Deep-Sleep mit 20 µA angegeben, und damit kann der ESP, je nach Aufgabe, monatelang mit einer einzigen Batterie betrieben werden.
Mehr dazu findest du im Datenblatt des ESP8266 0a-esp8266ex_datasheet_en.pdf im Kapitel Table 3-4. Power Consumption by Power Modes.
Allerdings ist hier Vorsicht geboten. Der Deep-Sleep ist nicht in allen Fällen gleich effizient. In Verbindung mit Entwicklerboards wie zum Beispiel dem D1 Mini kann es zu einem erhöhten Stromverbrauch kommen. Damit ist der Deep-Sleep bei diesen Boards unter Umständen nicht wirklich brauchbar. Entwicklerboards haben zusätzliche Bauteile wie unter anderem den Serial-Konverter, der zusätzlich Strom verbraucht und so die Akkulaufzeit erheblich verringert. In der Messung sind das bei einem ESP8266 D1 Mini etwa 0,001A (1000 µA). Eine Messung des Stromverbrauchs war mir mit dem ESP01-S im Deep-Sleep nicht möglich.
Zum Kapitel springen Vergleich des Stromverbrauchs im Deep-Sleep
| Gerät | Stromverbrauch im Deep-Sleep | Stromverbrauch in mA |
|---|---|---|
| ESP8266 (Datenblatt) | 20 µA | 0,02 mA |
| ESP8266 D1 Mini | 1000 µA | 1,0 mA |
Zum Kapitel springen Beispielrechnung mit einem 300mAh Akku
Angenommen, wir verwenden einen 300mAh Akku. Um zu berechnen, wie lange der Akku hält, verwenden wir die folgende Formel: Batterielaufzeit (in Stunden) = Batteriekapazität (in mAh) / Stromverbrauch (in mA)
-
ESP8266 (Datenblatt):
Batterielaufzeit = 300mAh / 0,02mA = 15000 Stunden
Das sind etwa 625 Tage oder knapp 1,7 Jahre. -
ESP8266 D1 Mini:
Batterielaufzeit = 300mAh \ 0,02mA = 300 Stunden
Das sind etwa 12,5 Tage.
Diese einfache Rechnung zeigt, wie wichtig es ist, den Stromverbrauch genau zu kennen, um die Batterielaufzeit optimal zu nutzen. Natürlich sind diese Werte rein theoretisch und in der Praxis kann es definitiv zu anderen Werten kommen. Jedoch zeigt der Vergleich deutlich, dass Deep-Sleep nicht immer gleich effizient ist.
Zum Kapitel springen Möglichkeiten zum Aufwecken
Zum Aufwecken des ESP8266 während eines Deep-Sleeps gibt es zwei Möglichkeiten:
-
Aufwecken per Knopfdruck
Eine Möglichkeit, den ESP aus dem Schlaf zu holen, ist der Knopfdruck. Hierbei gibt es keine Zeitbeschränkung. Das Aufwecken per Knopfdruck könnte zum Beispiel für Fernbedienungen jeglicher Art verwendet werden. -
Automatisch nach Ablauf einer bestimmten Zeit
Der ESP kann auch für eine bestimmte Zeit in den Deep-Sleep versetzt werden. Die maximal mögliche Dauer beträgt hierbei 71 Minuten. Diese Methode eignet sich unter anderem für Sensoren, die regelmäßig einen Wert liefern oder abfragen sollen.Produktempfehlungen und -suche in Verbindung mit dem Amazon Partnerprogramm:
- Preis aufsteigend
- Preis absteigend
- Reduzierte zuerst
AZDelivery 3 x HC-SR501 PIR Bewegungssensor Bewegungsmelde Modul kompatibel mit Arduino und Raspberry Pi inklusive E-Book! ¹ Preis: -25% 9,99 € ¹ auf Lager ¹ PrimeELEGOO - 5 Stück HC-SR04 Ultraschall Sensor Distanzsensor für Arduino UNO, Roboter, XBee, ZigBee usw. ¹ Preis: 10,99 € ¹ auf Lager ¹ PrimeKEYESTUDIO 37 in 1 Sensormodul Kit kompatibel mit Arduino IDE, Raspberry Pi, elektronisches Starter Kit für Anfänger geeignet ¹ Preis: 26,69 € ¹ auf Lager ¹ PrimeHailege 5pcs Hochempfindliche Sprachgeräuscherkennung Sensor Mikrofon Sound Sensor Modul 3,3V-5V Roboter Hubschrauber Flugzeug DIY Kit ¹ Preis: 6,99 € ¹ auf Lager ¹ PrimeHeemol Mini bewegungsm 110V 220V PIR Infrarot Sensor Schalter Erkennung Auto Sensor Lichtschalter lichtschalter mit bewegungsmelder 2 Stück ¹ Preis: 8,39 € ¹ auf Lager ¹ PrimeS SIENOC 3D Drucker 1.75mm Filament Erkennungsmodul Filament Monitor Sensor mit Kabel DIY Zubehör (1) ¹ Preis: 7,00 € ¹ auf Lager ¹ PrimeAZDelivery 3 x GY-68 BMP180 Barometrischer Luftdruck und Temperatur Sensor kompatibel mit Arduino und Raspberry Pi inklusive E-Book! ¹ Preis: 5,99 € ¹ auf Lager ¹ PrimeSensor Luftdrucksensor High Precision Digital barometrischer Druck Temperatursensor Luftfeuchtigkeit und Luftdruck Modul Board Sensor für DIY I2 C SPI ¹ Preis: 9,81 € ¹ auf Lager ¹ StandardversandAZDelivery 3 x IR Infrarot Modul für Hinderniserkennung Abstand Sensor kompatibel mit Arduino und Raspberry Pi inklusive eBook! ¹ Preis: 5,49 € ¹ auf Lager ¹ PrimeHOSMART 1/2 Meile Drahtloser Bewegungsmelder auffahrt Alarm funkalarmanlage und Wetterfeste Sicherheit Bewegungsmelder ¹ Preis: 49,99 € ¹ auf Lager ¹ PrimeHailege 3pcs AM312 Mini Pyroelektrisches PIR Human Sensor Modul PIR Infrarot IR Sensor Körper Manuelle Bewegung Infrarot IR Detektor ¹ Preis: 7,99 € ¹ auf Lager ¹ PrimeTapo T110 Smart Kontakt Sensor für Fenster-/Türsicherung, Batterielebensdauer von mehr als 1 Jahr, Sofortige App-Benachrichtigung, Muss mit Tapo Hub verwendet Werden ¹ Preis: -45% 10,99 € ¹ auf Lager ¹ PrimeDemiawaking 3,7V DIY Solar LED Board, Control Sensor Board Modul für Garten Nachtlicht Controller Infrarot, Solarlampe Platine Kit (5Pcs) ¹ Preis: 10,99 € ¹ auf Lager ¹ StandardversandAZDelivery 3 x KY-024 Hall Sensor Linear Magnetic Sensor-Modul kompatibel mit Arduino und Raspberry Pi inklusive eBook! ¹ Preis: 6,99 € ¹ auf Lager ¹ PrimeANGEEK TCS34725 Low Power IR Blocking Filter RGB Light Color Sensor Recognition DIY Kit Electronic PCB Board for Arduino ¹ Preis: 6,99 € ¹ auf Lager ¹ PrimeHailege 5pcs Piezoelektrischer Sensor Analoges Keramik-Schwingungssensor-Modul Piezoelektrizität für Arduino DIY KIT ¹ Preis: 7,49 € ¹ auf Lager ¹ PrimeMagene S3 + Geschwindigkeits- und Trittfrequenzsensor 2 Stück, ANT+ und Buletooth 4.0 Drahtloser Fahrraddrehzahlsensor RPM ¹ Preis: 36,99 € ¹ auf Lager ¹ PrimeOktaplex motion Jan Einbau-Bewegungsmelder Aussen IP65 / IP20 360° Infrarot-Sensor klein 8m Reichweite 230V mit Dämmerungssensor, Weiß Matt ¹ Preis: 15,99 € ¹ auf Lager ¹ PrimeHELLA 6PT 009 309-331 Sensor, Kühlmitteltemperatur - 12V - 2-polig - gesteckt - mit Dichtung - mit Sicherungsring ¹ Preis: 11,06 € ¹ auf Lager ¹ PrimeAZDelivery 5 x KY-003 digitaler Hall Effekt Sensor Transistor kompatibel mit Arduino und Raspberry Pi inklusive E-Book! ¹ Preis: 5,99 € ¹ auf Lager ¹ PrimeREV Bewegungsmelder aussen - IP44, Leuchtdauer & Helligkeitsempfindlichkeit einstellbar, LED geeignet, Reichweite 12m/180°, vertikal verstellbar, weiß ¹ Preis: -40% 8,98 € ¹ auf Lager ¹ PrimeOktaplex Bea Bewegungsmelder Außen IP65 schwenkbar 180° Infrarot-Sensor 12m Reichweite 230V weiß mit Dämmerungssensor ¹ Preis: 17,99 € ¹ auf Lager ¹ PrimeAZDelivery 5 x KY-018 LDR Lichtsensor mit Fotowiderstand Helligkeitssensor Diode kompatibel mit Arduino und Raspberry Pi inklusive eBook! ¹ Preis: 7,99 € ¹ auf Lager ¹ PrimeAZDelivery 5 x TTP223B Digitaler Kapazitiver Touch Sensor, Switch Modul kompatibel mit Arduino inklusive E-Book! ¹ Preis: 5,99 € ¹ auf Lager ¹ PrimeIrfora Batterie IC-Karten sensor Schrankschublade Intelligentes Smart Lock DIY unsichtbares verstecktes digitales Schloss ohne perforiertes Loch ¹ Preis: 16,89 € ¹ auf Lager ¹ StandardversandANGEEK 5Stk. 5V KY-008 650nm Laser Sensor Modul für Arduino Raspberry DIY ¹ Preis: 5,99 € ¹ auf Lager ¹ PrimeAZDelivery MQ-135 Gas Sensor Luftqualität Modul kompatibel mit Arduino inklusive E-Book! ¹ Preis: 6,49 € ¹ auf Lager ¹ PrimeMehr Ergebnisse für sensoren¹ Angaben ohne Gewähr. Bei einem Kauf über den Link erhalten wir eine Provision.
Die Beschränkung auf 71 Minuten liegt an der Größe der Variable, die die Zeit im Deep-Sleep speichert. Der Wert wird in Mikrosekunden angegeben und die maximale Größe eines 32-Bit-Integers beträgt 4.294.967.295. Wenn man diesen Wert in Mikrosekunden umrechnet, erhält man etwa 71 Minuten.
Zum Kapitel springen Deep Sleep mit Aufwachen per Knopfdruck
Um den ESP auf unbestimmte Zeit in den Deep-Sleep zu schicken, wird lediglich eine Zeile Code benötigt.
ESP.deepSleep();
In einem Programm könnte das so aussehen:
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, LOW);
delay(5000);
ESP.deepSleep();
}
Sobald der ESP mit Strom versorgt wird, leuchtet die blaue LED für 5 Sekunden. Nach Ablauf des delay(5000); schicken wir den ESP auf unbestimmte Dauer in den Deep-Sleep-Modus. Zum Aufwecken muss der Pin RST kurz mit GND verbunden werden.
Sobald RST nicht mehr mit GND verbunden ist, startet der ESP und führt den gespeicherten Programmcode aus. Die Zeile ESP.deepSleep(); schickt den ESP anschließend wieder schlafen, bis wir ihn erneut aufwecken.
Fertig ist der ESP, der auf Knopfdruck startet, das Programm ausführt, und danach wieder pennen geht.
Zum Kapitel springen Deep Sleep mit Aufwachen per Zeit
Um den ESP für eine bestimmte Zeit in den Deep-Sleep zu schicken, wird die selbe Zeile Code benötigt, diesmal aber mit Zeitangabe. Die Angabe der Zeit erfolgt in Mikrosekunden.
ESP.deepSleep(5000000);
Diese Zeile schickt den ESP für 5 Sekunden in den Deep-Sleep. In der Funktion können auch mathematische Bezeichnungen verwendet werden. Folgende Zeile schickt den ESP ebenfalls für 5 Sekunden in den Deep-Sleep.
ESP.deepSleep(5e6);
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, LOW);
delay(5000);
ESP.deepSleep(5e6);
}
Auch hier gilt: Der ESP führt das Programm aus und wird anschließend in den Deep-Sleep geschickt, diesmal aber nur für 5 Sekunden. Leider geht das Aufwecken nicht ohne Weiteres automatisch.
Damit sich der ESP nach Ablauf der 5 Sekunden selbst wecken kann, muss eine dauerhafte Verbindung zwischen RST und GPIO16 hergestellt werden. Erst diese Verbindung automatisiert den Vorgang des Weckens.
Sobald die Verbindung steht, haben wir einen ESP, der alle 5 Sekunden das gespeicherte Programm ausführt und sich anschließend selbst wieder in den Deep-Sleep versetzt. Übrigens: Der ESP kann auch bei der letzteren Methode jederzeit durch die Verbindung von RST und GND manuell oder per Knopfdruck aufgeweckt werden.