ESP Energiebedarf
Der Bau von kleinen Computern eröffnet viele Wege und ein wichtiger Aspekt ist auch das Thema Energieverbrauch. Auch der kleinste Schaltkreis braucht Strom und so gibt es einige Dinge zu überlegen. Der ESP8266 braucht nach dem "PowerUp" oder "WakeUp" einige Sekunden um per WiFi wieder im Netzwerk angemeldet zu sein und das kostet schon um die 200mA für einige Sekunden. Wer damit auf einer Batterie arbeitet, kann nicht alle 10 Minuten einen Messwert erfassen und ins LAN senden. Dafür gibt es dann andere Techniken (ZigBee etc.), die viel schneller einfach "senden".
Achtung bei Boards wie dem WeMOS oder NodeMCU / LUA. Der Chip zieht manchmal mehr als die am Standard USB-Port erlaubten 500mA. Die Spannungsregler können zwar aus 5V aus einem Akkupack die 3,3V erzeugen aber der ESP01 hat durchaus auch höhere Stromstärken beim Senden. Ein großer Pufferkondensator kann das etwas mindern oder sie achten auf "gut gespeiste USB-Ports". An diversen Notebooks gibt es oft Hochstrom-Anschlüsse die "gelb" gekennzeichnet sind oder sie schalten einen USB-Hub mit eigenem Netzteil dazwischen.
Mittlerweile gibt es verschiedene ESP32-Module die auch mit unter 0,1mA auskommen und von einer 1000mA1 Akku damit monatelang funktionieren.
Energiequelle
Wenn der ESP8266 aber im "Deep Sleep"-Mode ist, braucht er laut Datenblatt typischerweise 10µA und mit zwei AA-Batterien (a 2600mAh) sollten damit auch 3 Jahre möglich sein. Bedenken Sie aber auch den Stromverbrauch einer externen Beschaltung und die Alterung der Batterien.
- Netzteil
Fast überall haben wir 220V aber selbst wenn ein Modul nur ganz wenig Leistung benötigt, so hat ein Netzteil immer auch eine Verlustleistung. Sicher gehen beim WiFi-Betrieb mit 200mA bei 3V schon 0,6W durch die Leitung aber das ist ja meist immer noch weniger als die Verlustleistung des Netzteils. - Klassische Batterien
Theoretisch lassen sich 3V mit 2x 1,5 AA recht schnell bereit stellen. Die Entladekurve einer Batterie zeigt aber, dass die 1,5 Volt sehr schnell abbauen und damit ein langer stabiler Betrieb nicht möglich ist.
Quelle https://de.wikipedia.org/wiki/Datei:Aa-alkaline-100_c-v.png
Wer nun 3x1,5V in Reihe schaltet, muss sich zumindest am Anfang mit der Überspannung von 4,5 Volt Gedanken machen. - CR2032 Knopfzelle
Diese Standardbatterie liefert leider nicht genug Strom, um den ESP im WLAN sicher zu betrieben. Laut Datenblatt kann die Zelle bis 210mA liefern, was aber für WLAN nicht genug ist. - Lithium-ManganDioxid
Batterien (häufiger Typ CR123)
Eine CR123 kostet zwischen 1-2€ und liefert nicht nur ca. 800mAh sondern behält ihre Spannung von 3,5-3,7V über lange Zeit und selbst bei niedrigeren Temperaturen und kurzfristig höheren Strömen. Laufzeiten von einem Jahr könnten damit aber schon erreicht werden. Natürlich nur, wenn der ESP8266 auch wirklich oft genug im "Deep Sleep" verharrt, sonst ist nach wenigen Stunden schon die Energie aufgebraucht. Manchmal gibt es aber auch schlechte Exemplare, wie ein Test von "Hiltihome" mit 40 verschiedenen CR123-Herstellern zeigt
https://www.messerforum.net/threads/cr123-im-vergleich-messergebnisse.74499/
Bei den meisten Zellen lassen sich aber schon bis zu 500mAh entnehmen, bis die 2,4 Volt unterschritten werden. Wann genau ihr ESP aber nicht mehr zuverlässig funktioniert, hängt auch von dem Board ab - Solar + GoldCAP
Ausprobiert habe ich es noch nicht, aber eine Solarzelle könnte zumindest zur Speisung beitragen. Allerdings sind auch hier die Spitzenströme nur durch größere Zellen zu erreichen. Aber wenn lange genug Licht auf das Gerät fällt, könnte eine Solarzelle mit einem Gold-CAP (Kondensator mit hoher Kapazität) eine Lösung darstellen. Aufgrund der Entladekurve eines Goldcap muss ein Spannungsregler aber mächtig arbeiten. Er ist also eher eine kleine "USV" aber kein Dauerspeicher.
https://de.wikipedia.org/wiki/Superkondensator - Solar + Akku
Wenn Sie ihren Lieblingslieferanten besuchen, dann finden Sie dort sicher auch Akku-Packs mit Solarzellen. Als Campingbedarf soll man damit auch "Outdoor" sein Smartphone aufladen können. Das klappt oft aber nicht, da die Erwartungen an die Leistung einer Solarzelle im direkten Sonnenlicht nicht immer realistisch sind. 5V und 1A -Ladestrom ist unrealistisch mit einer Solarzelle in den Abmessungen eines 5"-Smartphone. Schauen Sie sich mal die "Gartenleuchten" mit Solarzelle und AA-Zelle an. Das Licht des Tages kann schon für ein paar Stunden "LED-Betrieb" reichen.
Wenn die Aufgabenstellung wirklich so ist, dass nur ganz selten mal ein Wert zu ermitteln ist und keine aktive vom ESP8266 hin aufgebaut werden muss, dann kann der Baustein vermutlich am günstigsten mit Batterien betrieben werden. Selbst die 0,9mA im Standby können z.B. durch einen Akku mit Solarspeisung einen günstigen Betrieb z.B. im Garten erlauben. Von SparkFun gibt es sogar ein Modul mit integriertem LiPO-Laderegler und entsprechenden Anschlüssen:
- SparkFun ESP8266 Thing (16
US-$)
https://www.sparkfun.com/products/13231
Leider ist der USB-Anschluss nicht auch zugleich Programmierzugang. Aber so spart man sich nicht nur Teile sondern auch den Stromverbrauch eines USB/Seriell-Wandlers
Sleep Modes und Energiebedarf
Ich habe leider kein hochgenaues Volt/Ampere-Meter mit zuverlässiger Messung im Bereich von Milliampere. Aber andere Blogger haben hier schon viel Vorarbeit geleistet.
- Die Tücken der
ESP32-Stromversorgung
https://arduino-hannover.de/2018/07/25/die-tuecken-der-esp32-stromversorgung/ - Stromverbrauch des
ESP8266-01
https://www.dinotools.de/2015/07/14/esp8266-01-power-consumption/ - ESP8266 Wemos D1 Mini
Batterie Versorgungsspannung
auslesen überwachen
https://znil.net/index.php/ESP8266_Wemos_D1_Mini_Batterie_Versorgungsspannung_auslesen_%C3%BCberwachen
Achtung: Das Bild gibt die 3,3V direkt auf AnalogIn des Wemos, der dies wohl intern umsetzt. Beim echten ESP8266 digitalisiert der A0 nur Spannungen zwischen 0-1V.
https://GitHub.com/esp8266/Arduino/issues/721#issuecomment-325149737 - BW38 Homepage - ESP32 im
Batteriebetrieb
https://www.bw38.de/esp32battery
Sehr interessante Abhandlung. Auch mit dem Wechsel auf ESPNow - Sensoren durch Verwendung
von ESP-NOW über sehr lange Zeit
mit Batterie versorgen
https://www.az-delivery.de/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/sensoren-durch-verwendung-von-esp-now-ueber-sehr-lange-zeit-mit-batterie-versorgen - ESP32 mit Batteriebetrieb
https://www.radioshuttle.de/media/tech-infos/esp32-mit-batteriebetrieb/
Am einfachsten ist es, den ESP32 direkt mit einer CR123-3-V-Lithium-Batterie zu betreiben - Max deep sleep for ESP8266
https://thingpulse.com/max-deep-sleep-for-esp8266/ - ESP8266 current / power
usage charts
http://blog.hekkers.net/2015/03/20/esp8266-current-power-usage-charts/ - Insight Into ESP32 Sleep
Modes & Their Power Consumption
https://lastminuteengineers.com/esp32-sleep-modes-power-consumption/ - Stromverbrauch Arduino &
Wemos Boards
https://arduino-projekte.info/stromverbrauch-arduino-wemos-boards/ - Tame the beast: Ultra-Low
Power #ESP8266 Thing
https://www.hackster.io/fablabeu/esp8266-thing-by-sparkfun - Low Power ESP8266 – Sleeping
at 78 micro Amps
http://tim.jagenberg.info/2015/01/18/low-power-esp8266/ - ESP8266: Good enough für a
battery powered sensor?
http://blog.hekkers.net/2015/04/06/esp8266-good-enough-for-a-battery-powered-sensor/ - ESP8266 in deep sleep
http://blog.hekkers.net/2015/02/26/esp8266-in-deep-sleep/ - How to Run Your ESP8266 for
Years on a Battery
https://openhomeautomation.net/esp8266-battery/ - Example Sketch: Goodnight
Thing (Sleep Mode)
https://learn.sparkfun.com/tutorials/esp8266-thing-hookup-guide/example-sketch-goodnight-thing-sleep-mode - ESP8266 Reset and CH_PD pins
for FTDI auto reset
https://hallard.me/esp8266-autoreset/ - ESP8266 with DHT22 sending
MQTT
http://lazyzero.de/elektronik/esp8266/dht_deepsleep/start - ESP8266 GPIO on deep sleep
and reset
https://www.mjt.me.uk/posts/esp8266-gpio-deep-sleep-and-reset/ - Reducing WiFi power
consumption on ESP8266
https://www.bakke.online/index.php/2017/05/21/reducing-wifi-power-consumption-on-esp8266-part-1/
https://www.bakke.online/index.php/2017/05/21/reducing-wifi-power-consumption-on-esp8266-part-2/
https://www.bakke.online/index.php/2017/05/22/reducing-wifi-power-consumption-on-esp8266-part-3/
Sehr gut aufgemachte Analyse zum Stromverbrauch und Optimierungen - How to Run Your ESP8266 for
Years on a Battery
https://openhomeautomation.net/esp8266-battery/. - Serie zu ESP8266 und Energie
Running Wifi Microcontrollers on Battery https://blog.voneicken.com/projects/low-power-wifi-intro/
ESP8266 Deep-Sleep with Periodic Wake-up https://blog.voneicken.com/2018/lp-wifi-esp8266-1/
ESP8266 with Optimized Periodic Wake-up https://blog.voneicken.com/2018/lp-wifi-esp8266-2/
Low-Power Wifi using Power Save Mode https://blog.voneicken.com/2018/lp-wifi-association/
ESP8266 Maintaining an Association https://blog.voneicken.com/2018/lp-wifi-esp8266-assoc/ - Low-Power Wifi with the
ESP32
https://blog.voneicken.com/2018/lp-wifi-esp32-1/ - A DEEP DIVE INTO LOW POWER
WIFI MICROCONTROLLERS
https://hackaday.com/2018/12/17/a-deep-dive-into-low-power-wifi-microcontrollers/ - Fixing a restart/reset/reboot
loop on ESP8266
https://gyorgybalassy.wordpress.com/2019/01/23/fixing-restart-reset-reboot-loop-on-esp8266/ - The Hive Monitoring project
https://blog.bajonczak.com/hivemonitoring_part1
Überwacht Bienenstöcke mit Wemos D1, Akku, Solarzelle etc. - M5Stack:Getting Longer
Battery Run Time
https://community.m5stack.com/topic/1162/getting-longer-battery-run-time - ESP32 Deep Sleep & Its Wake-up
Sources
https://lastminuteengineers.com/esp32-deep-sleep-wakeup-sources/ - ESP32 Deep Sleep with
Arduino IDE and Wake Up Sources
https://randomnerdtutorials.com/esp32-deep-sleep-arduino-ide-wake-up-sources/ - ESP32: Tips to increase
battery life
https://www.savjee.be/2019/12/esp32-tips-to-increase-battery-life/ - Monatelanger ESP8266 Batteriebetrieb mittels Deep-Sleep
https://tutorials-raspberrypi.de/monatelanger-esp8266-batteriebetrieb-mittels-deep-sleep/ - Low Power ESP8266 – Sleeping
at 78 micro Amps
https://tim.jagenberg.info/2015/01/18/low-power-esp8266/
#47 Power Saving with ESP8266 (Sleep Mode) Tutorial with some Tricks
https://www.youtube.com/watch?v=6SdyImetbp8
ESP8266 Sensor läuft 17 Tage mit einer
Knopfzelle und sendet Daten zu sparkfun.com and ubidots.com
https://www.youtube.com/watch?v=IYuYTfO6iOs
Tech Note 131 - ESP32/8266 Reducing
Battery Load Hints & Tips
https://www.youtube.com/watch?v=kUHEHTev3UE
Low Energy Boards
Kaum jemand wird den ESP8266 selbst als Modul verlöten, sondern NodeMCU, Wemos und andere Board tragen schon das Modul samt Spannungsregler und vielleicht auch Programmieradapter mit. Diese Komponenten benötigen aber alles auch Energie, selbst wenn Sie nicht genutzt werden. Daher gibt es aber auch Boards, die mit dem Ziel eines minimalen Energiebedarfs konstruiert wurden, z.B.: indem die ganze USB-Seriell-Schnittstelle entfällt oder deaktivierbar ist oder besonders effektive Spannungswandler verwendet wurden.
- Trigboard ca. 20€
https://www.kevindarrah.com/wiki/index.php?title=TrigBoard
https://www.tindie.com/products/kdcircuits/trigboard-ultra-low-power-esp8266-iot-platform/
When idle, it pulls less than 1uA... your smoke detector probably uses more power than this. But here's the best part, it wakes up via a dry contact type switch, connects to the WiFi network and sends you a push notification. - trigBoard V7 - ESP8266 Ultra Low Power
WiFi Platform - INTRO
https://www.youtube.com/watch?v=y0XkklwPk5o - Motion Activated Push Notification on
Battery! - ESP8266 with trigBoard!
https://www.youtube.com/watch?v=cVELBk86tO8 - Das ESP32 „ECO Power“-Board und die
Technik
https://www.radioshuttle.de/esp32-eco-power/esp32-eco-power-board/
https://www.radioshuttle.de/media/tech-infos/esp32-mit-batteriebetrieb/
Mittlerweile gibt es einige ESP32-Boards die direkt mit Ladeelektronik und minimalen Energiebedarf ausgestattet sind.
Ausschnitt von Andreas Spiess
#366 9 New ESP32 Boards: Comparison and Tests (Min 9:18)
https://youtu.be/mnoZYlyebBc?t=558
Vollständige Vergleichstabelle:
http://bit.ly/2J9jpdu
#193 Comparison of 10 ESP32 Battery powered Boards without display (incl.
deep-sleep)
https://www.youtube.com/watch?v=-769_YIeGmI
ESP01 "nackt"
Wer wirklich niedrigsten Stromverbrauch sucht, kann auch das nackte ESP01-Board nutzen. Es hat natürlich keinen USB/Seriell-Adapter, keinen Spannungsregler, keine Status-LED etc. Aber damit auch keine Komponenten, die Strom brauchen.
Die WIFI-LED kann ja ruhig bei Aktivität "blinken" aber die Power-LED würde ich dann ablöten. Die Programmierung sollte in einem eigenen Socket erfolgen, damit die wenigen GPIO-Ports nicht durch externe Beschaltungen belastet sind.
Der "Deep-Sleep" benötigt aber eine besondere Beschaltung, da auf dem Board der "Wakup Pin" GPIO16, nicht herausgeführt ist. Der muss mit einem ganz reinen Draht auf "RESET" verbunden werden.
- Die optimale ESP8266 Box
https://www.jentsch.io/die-optimale-esp8266-box/ - ESP01. Get started with the Arduino or
PlatformIO IDE. Which module to choose?
Pinout
https://diyprojects.io/esp01-get-started-arduino-platformio-ide-module-choose-pinout/ - ESP8266 Deep Sleep with Arduino IDE
(NodeMCU)
https://randomnerdtutorials.com/esp8266-deep-sleep-with-arduino-ide/
Solarzelle und Akku/SuperCap
Wenn der Einsatzort nicht in einer Kiste oder Schrank drin ist, sondern sie irgendwo "Licht" her bekommt, dann kann eine Solarzelle mit einem Akku die Einsatzzeit des ESP-Projekts unabhängig vom Netzwerk machen. Auch hier ist wieder die Spannung ein wichtiges Kriterium:
- ESP8266 brauchen VCC, Spannung (+3,3 V
bis 3,6 V)
Quelle: https://de.wikipedia.org/wiki/ESP8266#Pinbelegung_des_ESP-01
Wobei oft externe Beschaltungen auf einen Board die Bandreite erweitern - Ströme
Speziell wenn der ESP per WLAN kommuniziert, dann brauchen wir deutlich mehr mA und einige Quellen brechen dann schnell ein. Kondensatoren können hier kurze Spitzen überbrücken. - Überspannung
Die Digitaleingänge sind wohl je nach Modul etwas besser gegen Überspannungen abgesichert aber auch hier müssen wir einen Blick drauf haben - Charakteristik von Solarzellen
Es gibt einen "MPP" (Maximum Power Point) bei der eine Solarzelle die maximale Energie liefert und das ist immer ein Kompromiss zwischen maximalem Kurzschlussstrom und maximaler Leerlaufspannung. Die Spannung einer unbelasteten Solarzelle ist abhängig vom Licht oft viel zu hoch. Ohne Regelung und bei vollem Akku würde ein ESP sterben.
All digital IO pins are protected from
over-voltage with a snap-back circuit connected between the
pad and ground. The snap back voltage is typically about 6V,
and the holding voltage is 5.8V. This provides protection
from over-voltages and ESD. The output devices are also
protected from reversed voltages with diodes.
Quelle:
https://www.adafruit.com/images/product-files/2471/0A-ESP8266__Datasheet__EN_v4.3.pdf))
Ein Regler hat aber auch einen Eigenverbrauch und Ruhestrom. Er muss den Akku schützen, wobei ein LiPo-Akkus selbst nur 3,7V liefert aber mit bis zu 4,2 Volt geladen werden kann. Daher darf Solarzelle, Akku und ESP nicht direkt verbunden werden.
Eine LiPo Zelle darf nicht tiefentladen werden. NiCD und NiMH-Akkus waren das deutlich toleranter. Aber normale LiPo-Akkus halten recht gut ihre Spannung bis kurz vor Schluss. Für den ESP ist also eher der Start mit "Überspannung" und natürlich eine ungefilterte Ladespannung gefährlich.
Zum Ende zu wird der ESP natürlich unter 3,3 Volt die Arbeit einstellen. Das bedeutet aber nicht, dass er dann keinen Strom mehr bezieht. Eine aktive Abschaltung bei Unterspannung ist weiterhin notwendig.
Zum Glück gibt es fertige Bausteine, die auf der einen Seite die Ladung von LiPo-Akkus mit Solarzellen oder anderen Quellen für kleines Geld erlauben und den Akku vor Überladung sichern. Auf der anderen Seite brauchen wir aber einen LowDrop Spannungsregler, der den ESP vor den höheren Ladespannungen schützt. Natürlich sollte der Laderegler auch Tiefentladungen verhindern, indem der Verbrauche notfalls ganz abgeschaltet wird. Wenn dann noch die Akku-Spannung durch den ESP (z.B. Analogport A0) gemessen werden kann, wäre das System komplett.
Aufgrund der niedrigen Kosten wird es aber oft auf einen Kompromiss hinaus laufen. Die Überspannung eines ESP könnte über einen Z-Diode gesichert werden, die aber keine Tiefentladung verhindert. Das wäre dann der Job des Laderegler. Wenn Sie aber all die "Gartenleuchten" mit LED und Solarzellen anschauen, dann ist es wohl gelebte Praxis, hier weniger perfekt zu arbeiten.
Nicht alle LiPo Lader habe auch einen Tiefentladeschutz, der für LiPo-Zellen aber genauso wichtig ist, wie der Überladeschutz. Es gibt aber auch LiPo-Zellen, die schon direkt einen Überladeschutz und Tiefentladeschutz eingebaut haben. Wir brauchen dann aber immer noch eine Spannungsregelung für den ESP.
The 5 Best Solar ChargerBoards for
Arduino and ESP8266
https://www.youtube.com/watch?v=ttyKZnVzic4
The Best Power Source for ESP32/
ESP8266 Projects
https://youtu.be/FrCgQgahzsI
- CN3065 1S Solar Lader Regler 35 -
1000mA für Lithium Polymer Akku 3,7V LiPo
https://www.ebay.de/itm/371969007256 - MT3608 DC-DC Netzteil Adapter Step up Modul
https://www.az-delivery.de/products/mt3608-dc-dc-step-up-modul-1
Konvertiert 2-24V auf 2-28V mit 7% Verlust - TP4056 Mini USB 5V 1A Laderegler Lithium
Li - Ion Batterie Charger Modul
MiniSUB https://www.az-delivery.de/products/az-delivery-laderegler-tp4056-mini-usb
MicroUSB https://www.az-delivery.de/products/az-delivery-laderegler-tp4056-micro-usb - MCP1700-3302E
https://makeradvisor.com/tools/low-dropout-ldo-regulator-mcp1700-3320e/ - New TP4056 Lithium Cell Charger Module with Battery Protection
https://www.youtube.com/watch?v=Qw4psECqpwI - #160 40 Cent Do-It-Yourself Li-Ion Protection for 18650 Cells (Tutorial) and
how they work
https://www.youtube.com/watch?v=1rg3ZWxBNUE - Lipo Akkus - Frust, Mythen, Meßwerte und Eigenschaften
https://forum-raspberrypi.de/forum/thread/29640-lipo-akkus-frust-mythen-me%C3%9Fwerte-und-eigenschaften/ - Solarbetrieb der BOB-Platine mit einem CN3065 Solar-Lader
https://community.hiveeyes.org/t/solarbetrieb-der-bob-platine-mit-einem-cn3065-solar-lader/2308 - Solar Powered Sensor with
Supercapacitors and ESP32
https://www.tobias-schwarz.com/en/posts/11/ - MCP 1702-3302 LDO-Regler, fest, 3,3 V,
TO-92
https://www.reichelt.de/ldo-regler-fest-3-3-v-to-92-mcp-1702-3302-p90114.html?&nbc=1
LowDop Spannungsregler kommen mit minimalen Eigenstrombedarf und geringen Differenzen aus - HT73xx / HT7333 Spannungsregler
Liefert 250mA aber verliert nur 90mV Dropout und braucht selbst nur 4-8uA
https://www.kollino.de/elektronik/low-drop-spannungsregler-ht73xx/ - Power ESP32/ESP8266 with Solar Panels (includes
battery level monitoring)
https://randomnerdtutorials.com/power-esp32-esp8266-solar-panels-battery-level-monitoring/ - ESP8266 Voltage Regulator (LiPo and Li-ion
Batteries)
https://randomnerdtutorials.com/esp8266-voltage-regulator-lipo-and-li-ion-batteries/ - Is it possible to power the ESP32
directly with a CR123 battery?
https://rntlab.com/question/is-it-possible-to-power-the-esp32-directly-with-a-cr123-battery/
ESP Stromsparen
Dass die Netzwerkkommunikation per WLAN die meiste Energie braucht, ist mittlerweile klar. Daher gibt es einige Tipps, um den Energieverbrauch zu reduzieren. Aber auch andere Besonderheiten im Code oder externer Beschaltung können wahre Wunder vollbringen, wenn es im Bruchteile von mA geht.
Aktion | Beschreibung | |
---|---|---|
LEDs abgeklemmen |
Die meisten ESP-Boards haben eine oder zwei LEDs. eine LED, die WLAN-Aktivitäten anzeigt, kann man dran lassen aber eine dauerhaft leuchtende LED als "Spannungsanzeige" ist keine gute Idee. Sie braucht meist 2mA und das ist beim Batteriebetrieb schädlich. |
|
Spannungsteiler |
Wer die Batteriespannung mit überwachen will, nutzt meist den ADC-Port, der aber nur 1V verträgt. Daher ist ein Spannungsteiler vorzusehen, der aber auch einen Ruhestrom hat. zwei Widerstände a 1kOhm hören sich nach viel an aber bei 6V Batteriespannung fließen hier auch 3mA. Es spricht nichts dagegen, hier mit 100kOhm, 220kOhm oder 470kOhm zu arbeiten und damit den Ruhestrom zu verringern. Hinweis: Einige Boards haben schon einen 1:3 Spannungsteiler mit 220kOhm und 100kOhm eingebaut um 3V-tolerant zu sein. Dann müssen Sie dies mit einbeziehen. |
|
Seriel Debugging und "Delay" |
Jede gesparte CPU-Sekunde spart Strom. Ich nutze auch gerne zum Debugging die serielle Ausgabe und vor allem "Delay"-Befehle um z.B. LEDs langsam blinken zu lassen. Anstatt die Sekunden fest zu hinterlegen, kann man den Wert als Konstanten definieren. Aus dem gleichen Grund sollte man die Baudrate nicht bei 9600 Bit/Se lassen sondern gerne hochstellen. 115200 Bit/Sek ist ein guter Wert. Die Profis arbeiten mit bedingter Kompilierung, um solchen Debug-Code gleich ganz aus dem "finalen Code" entfernen. |
|
Interne PullUPs |
Beim ESP kann ich die Digitaleingänge auch als Ausgang konfigurieren und sogar einen internen Pullup-Widerstand einschalten. Auch hier können je nach externe Verschaltung ein paar mA verloren gehen. Es ist daher ratsam, die Ausgänge nur dann als Ausgang zu schalten, wenn sie auch gebraucht werden und ansonsten einfach als Eingang zu betreiben. |
|
WLAN dynamisch ein/ausschalten |
In vielen wird die WLAN-Verbindung schon im "SETUP"-Abschnitt aktiviert, die beim Einschalten des Systems erfolgt. Besser ist es, zuerst die Daten von den Sensoren alle einzulesen und erst zum eigentlichen Versand dann WAN zu starten. Verlagern Sie "WiFi_ON()" und "WiFiOFF()" einfach in den aktiven Code im Bereich "loop()" // Abschalten von WLAN WiFi.mode(WIFI_OFF); WiFi.forceSleepBegin(); delay(1); // Einschalten WLAN char ssid[] = "wlanssid"; // WLan SSID char pass[] = "wlanwpakey"; // WLAN WPA Key WiFi.forceSleepWake() delay(1); WiFi.mode(WIFI_STA); WiFi.begin(ssid, pass); Oder Sie verzichten auf klassisches WLAN und Nutzen z.B. ESP-Now |
|
Verzicht auf DHCP |
Wenn ihre Sensoren eh alle statische Adressen haben, dann müssen Sie nicht erst per DHCP einen Request senden und die Antwort abwarten. IPAddress ip(192, 168, 178, 101) IPAddress dns(192, 168, 178, 1) IPAddress gateway(192, 168, 178, 1) IPAddress subnet(255, 255, 255, 0) WiFi.config(ip, dns, gateway, subnet);
|
|
Kanäle vorbelegen |
Wer noch weiter "sparen" will und kann, darf bei WIFI.begin auch noch die SSID und die MAC-Adresse des AccessPoints vorgeben. Das spart weitere Zeit ein. Die Daten müssen natürlich "passen". char ssid[] = "wlanssid"; // WLan SSID char pass[] = "wlanwpakey"; // WLAN WPA Key uint8_t bssid[] = {0x12,0x34,0x56,0x78,0x9A,0xBC}; int32_t channel = 4; WiFi.begin(ssid, pass, channel, bssid, true);
|
|
WLAN beim Wakeup auslassen |
Normalerweise aktiviert der ESP die WLAN-Komponenten beim "Aufwecken" alleine. Auch das kann man beim "Schlafen gehen" unterbinden. WiFi.disconnect(true); delay(1); ESP.deepSleep(60e6 , WAKE_RF_DISABLED ); // ca. 60 Sek schlafen
|
|
- Reducing WiFi power consumption on
ESP8266
Part 1 https://www.bakke.online/index.php/2017/05/21/reducing-wifi-power-consumption-on-esp8266-part-1/
Part 2 https://www.bakke.online/index.php/2017/05/21/reducing-wifi-power-consumption-on-esp8266-part-2/
Part 3 https://www.bakke.online/index.php/2017/05/22/reducing-wifi-power-consumption-on-esp8266-part-3/
Tech Note 131 - ESP32/8266 Reducing Battery Load Hints & Tips
https://www.youtube.com/watch?v=kUHEHTev3UE
Weitere Links
- Power supply for ESP based Wifi Sensors
http://blog.koepi.info/2016/02/power-supply-for-esp-based-wifi-sensors.html
Die Bedeutung mehrerer Kondensatoren und Spannungsreglern - Bei Batterien weniger kritisch - RT9166A LDO-Festspannungsregler, 2.8V bis 5.5V, 580mV Dropout, 1.2Vout,
600mAout, SOT-223-3
https://de.farnell.com/richtek/rt9166a-12ggl/ic-ldo-fest-1-2v-0-6a-sot-223/dp/2363087
Spannungsregler - Autarke Stromversorgung am Bienenstand
https://honey-pi.de/autarke-stromversorgung-am-bienenstand/ - Zeit- und Energiemanagement mit
Witty Pi (optional)
https://www.uugear.com/product/witty-pi-3-realtime-clock-and-power-management-for-raspberry-pi/
https://honey-pi.de/witty-pi/
Modul für Raspberry und nicht ESP - Submit sensors by using ESP-NOW with battery for a very
long time
https://www.az-delivery.de/en/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/sensoren-durch-verwendung-von-esp-now-ueber-sehr-lange-zeit-mit-batterie-versorgen - Sensoren durch Verwendung von ESP-NOW über sehr lange
Zeit mit Batterie versorgen
https://www.az-delivery.de/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/sensoren-durch-verwendung-von-esp-now-ueber-sehr-lange-zeit-mit-batterie-versorgen - RTC und NTP in MicroPython mit ESP8266 und ESP32 - Teil
2 - Dornröschenschlaf
https://www.az-delivery.de/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/rtc-und-ntp-in-micropython-mit-esp8266-und-esp32-teil-2-tiefschlaf