deep sleep?

Begonnen von ernst1024, 07 März 2016, 23:55:11

Vorheriges Thema - Nächstes Thema

ernst1024

Hallo,

nachdem meine ESP8266-01 Module fleissig Daten an Fhem senden, habe ich mir jetzt einen ESP8266-12 bestellt.

In erster Linie um ein wenig mit dem deep-sleep modus zu spielen, Batteriebetrieb usw. Gibt es diesbezgl schon Erfahrungen?
Gruß Ernst

Kuzl

Hallo Ernst,

ein Batteriebetrieb ist je nach Szenario bei den meisten Fällen nicht sinnvoll möglich.
Das Wlan zieht einfach zu viel Strom.
Selbst bei nur 5s Wlan alle 10 minuten würden batterien nur ca. 2 Monate reichen.

Bei sowas wie z.b. einen Dashbutton o.ä ist das natürlich anders.

frank

messdaten zwischenspeichern und gesammelt versenden, kann die batterielaufzeit natürlich noch verlängern, falls dieser modus ausreicht.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

sbiermann

Ich komme auf 7 Sekunden alle 5 Minuten mit meinen ESP und DHT22, nach meiner Rechnung müssten die AA Batterien mit 2300 mAh etwa 66 Tage reichen. Ich rechne mal eher mit 60 Tage.
Neben dem Verbrauch des ESP kommt noch der Verbrauch des Spannungswandlers. Dieser kann je nach Chip ganz schön happig ausfallen. Die auf den meisten Boards (NodeMCU, usw.) verbauten Teile sind LM1117 und die verbrauchen 5-10 mA im Ruhezustand. Das macht eine ganze Menge aus wenn man betrachtet wie wenig der ESP im Deep Sleep verbraucht. Idealer Step Down wäre der AS1363 aber da ist nur schwer ran zu kommen. Im Moment nutze ich den MCP1825ST-3302E/DB, der ist leicht zu beschaffen und dessen Ruhestrom ist mit 120 uA auch wesentlich geringer als der des LM1117.

Um praktisch unbegrenzt den ESP betreiben zu können werde ich meinen ESP mit DHT22 umrüsten auf einen 18650 Li-Ion Akku und einer Solar Zelle plus Ladegerät. Dann kann der Akku am Tag aufladen durch das Umgebungslicht und Nachts wird der Akku dann leer gelutscht. Die Idee habe ich von diesem Projekt: http://www.dieletztedomain.de/3-analoge-bodenfeuchtigkeits-sensoren-am-esp8266-update/

MadMax-FHEM

Hallo,

probiere auch schon seit geraumer Zeit einen Füllstandsmesser per ESP8266 zu realisieren weil ich das teil an sich super finde...

Aber für Batteriebetrieb habe ich noch keine Lösung...

An 2AA betreibe ich einen ESP Ultraschallsensor "geschaltet" durch einen ATTiny85 und FET (damit auch die StepUp/Down Regler "aus" sind) und kam auf knapp 5 Wochen.
Achja: alle 10min für ca. 5sec on (reicht meist [habe fixe IP, kein DHCP] / Übertrage Füllstand und Batteriespannung, die kommt nicht immer mit bei 5sec ist aber auch kein Problem, wenn sie nur jedes zweite mal oder so mitkommt). Sollte der ESP früher fertig sein geht er in DeepSleep.

Problem ist, dass zwar der ATtiny noch zuverlässig schaltet (bis ca. 1.8V runter) aber der StepUp bei zu geringer Spannung/Leistung der Batterie beim Booten/WLAN des ESP in die Knie geht.
Habe verschiedene StepUp-Module probiert aber keines schafft es sobald die Batterien auf 2.6V runter sind (was ja noch nicht so wenig ist)...

Akku mit Solar scheint die einzige Lösung, allerdings nur, wenn man halt auch Licht hat ;-)

Ich leider nicht... :-|

Entweder muss ich eine Steckdose finden oder mir eine andere Datenübertragung nehmen...

Servus, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

ernst1024

oh, so viele Antworten, hatte ich nicht mit gerechnet.  :)

Also zunächst mal ist bei mir auch viel Spaß am experimentieren dabei. Ob ich in der Praxis jemals die Batterie betriebene Lösung einsetzen werde ist erstmal Nebensache

Einen Spannungswandler brauche ich doch beim Betrieb mit 2 AA Batterien nicht. Meine bisherigen Versuche mit dem -01 ergeben Laufzeiten von etwas über einen Tag. Das ist natürlich auf Dauer Unsinn. Aber eine Laufzeit von 2 Monaten finde ich schon mehr als akzeptabel.

Hat jemand mal versucht den -01 hardwaremässig zu tunen, also diese Lötverbindung von einem der mikroskopisch kleinen Beinchen der CPU zum GPIO Pin? Das traue ich mir nicht zu, daher der -12.
Gruß Ernst

Kuzl

Jap, hab ich damals auch mit eine -01er gemacht, hat ganz gut funktioniert, da beide Pins am Eck sitzen :)

Du brauchst zwar bei 2AAs nicht unbedingt einen Spannungswandler, jedoch wird der ESP wohl nur bis 2.8V oder so laufen, da sind die Batterien ja noch fast voll.

ernst1024

Zitat von: Kuzl am 08 März 2016, 12:56:43
Jap, hab ich damals auch mit eine -01er gemacht, hat ganz gut funktioniert, da beide Pins am Eck sitzen :)

Du brauchst zwar bei 2AAs nicht unbedingt einen Spannungswandler, jedoch wird der ESP wohl nur bis 2.8V oder so laufen, da sind die Batterien ja noch fast voll.

Respekt, da lassen meine Augen mich im Stich.

Aber letzteres verstehe ich nicht. Wieso sollte ich einen Spannungswandler bei 2 AA einsetzen? Wie soll das den gehen, dachte immer die V-in muss hier immer höher liegen als V-out? Oder meinst du im Betrieb mit z.B 4 AA's?
Gruß Ernst

sbiermann

Die 1,5V pro AA Batterie ergeben insgesamt 3 V wenn diese vollständig geladen sind. Mit steigender Entladung sinkt auch die Spannung so das du Ruck-Zuck unter 2,8 V landest und schon funktioniert der ESP nicht mehr. Guckst du dieses Bild: http://images.tecchannel.de/images/tecchannel/bdb/389082/890.jpg die Grafik beschreibt die Entladung einer AA Batterie bei 100 mA Verbrauch. Wie man sehen kann sinkt die Spannung doch relativ zügig runter.

MadMax-FHEM

Es gibt nicht nur Spannungswandler "nach unten": StepDown (also aus großer/größerer Spannung kleine/kleinere)

sondern eben auch Spannungswandler "nach oben": StepUp (also aus kleiner/kleinerer Spannung große/größere)

Beispielsweise braucht der Ultraschallsensor 5V...

Also: Batterie -> 5V (StepUp) für den Ultraschall und dann -> 3.3V (StepDown) für den ESP
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

ernst1024

also wenn ich das jetzt recht verstehe: 2 AA's step-up -> 5V dann step-down -> 3,3 V ergibt trotz Verluste beim wandeln eine längere Laufzeit??

Gruß Ernst

Kuzl

Ich würde in diesem Beispiel eher 2x Step-Up jeweils von der Batterie nehmen, da sich sonst die Verluste der beiden multiplizieren.
Einfacher ist es allerdings da einfach Sensoren zu suchen, die auch mit 3.3V laufen. Gibts in der Regel fast für jedes Szenario.

Da z.B der SRF06, der sein Signal über den Strom liefert. Den kannst du z.b. mit einem GPIO nur dann einschalten, wenn du ihn brauchst und dann über einen AD-Wandler oder den Analogen Eingang des ESP messen.

MadMax-FHEM

Ich schalte den gesamten "Schaltkreis" also den ESP und den Sensor nur ein, wenn ich messen und Daten verschicken will (alle 10min).

Gut statt StepUp auf 5V (für den Ultraschall) und dann StepDown 3.3V für den ESP kann ich 2mal StepUp probieren...
...also StepUp 5V für den Ultraschall und StepUp 3.3V für den ESP...

Habe mir den erwähnten Ultraschallsensor mal angeschaut aber auf der Herstellerseite folgendes gefunden:

The SRF06 requires a minimum voltage of 9v.

Hilft leider auch nicht.
Wobei so wie ich den verwendeten HC-SR04 verstehe ist dort noch mal ein StepUp (12V/24V?) drauf...

Aber der Sensor braucht in Summe den wenigsten Strom...

Mal sehen...
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

ernst1024

#13
Hi, also da haben wir uns missverstanden. Ich brauche für meinen DS18B20 keine 5V, der läuft prima mit 3V. Ich hatte allerdings eine ANtwort von Kunzi so verstanden dass 2 AA's step-up auf 5V und dann wieder step-down auf 3,3V in zu einer  längeren Batterielaufzeit führen würde. Das schien mir irgendwie unlogisch, so eine Art Perpetuum Mobile :-)

@MadMax wie programmierst du den ESP? Und kannst du mal kurz erklären wie das funktioniert mit sleep und aufwecken? Habe nur mal kurz geschaut aber anscheinend muss ein GPIO auf Masse gezogen werden (oder plus) und dann? Ein einfaches wack-up oder sleep  im code oder wie muss ich mir das vorstellen?


Edit: sorry Kuzi heisst der Gute, nicht Kunzi :-). Aber ich glaube ich verstehe jetzt wie das gemeint ist: die 3V der 2 AA's mit step up auf 3,3V bringen. Ja das könnte Sinn machen. Habe zuerst etwas umständlich gedacht ....
Gruß Ernst

sbiermann

Deep Sleep geht relativ simple, man muss es dem ESP nur mitteilen das er jetzt für X Millis schlafen soll und er tut es. Mit der Arduino IDE sind das nur wenige Zeilen Code. Siehe zum Beispiel hier: https://github.com/sbiermann/ESP8266-DHT22-MQTT/blob/master/ESPDHT22FHEM/ESPDHT22FHEM.ino. Spannender ist die Hardwareseite, denn da muss man den GPIO16 mit dem Reset Eingang verbinden. Das alleine reicht aber noch nicht, denn laut Foren/Webseiten gibt es wohl hin und wieder das Problem das der ESP sich in einen Zombie-Modus verabschiedet nach dem Reset (wurde hier auch schon geschildert im Forum). Daher wird empfohlen noch den GPIO0 und GPIO2 auf VCC zu legen mittels 10k Widerständen. Ich selber habe nur den GPIO0 auf VCC gelegt und nicht den GPIO2 und bei mir läuft der Deep Sleep seit  einigen Wochen ohne Probleme.

MadMax-FHEM

Hi ernst1024, sbiermann,

ja DeepSleep geht einfach.

Wie beschrieben.

Allerdings hatte ich Probleme da sich der ESP manchmal "aufgehängt" hatte und dann "endlos" durchbootete und so die Batterie leer gesaugt hat...

Bin dann (weil ich noch ein paar rumliegen hatte) auf die Idee mit dem ATtiny85 gekommen.
Der schläft und schaltet alle 10min per FET (siehe Bild ein paar Einträge zuvor) die Spannungswandler und somit den ESP und den Sensor ein.
Wartet eine Zeit lang (habe mal gestoppt wie lange der ESP so braucht) und schaltet wieder "hart" ab.
Sollte der ESP hängen oder loopen wär das egal, er startet 10min später wieder komplett neu ;-)

Ist der ESP früher fertig geht er in DeepSleep bis er "hart" ausgeschaltet wird...

Hat den Vorteil, dass hier nur der ATtiny an der Batterie hängt (4uA), also auch die Spannungswandlerverluste bei DeepSleep des ESP ja trotzdem weg sind...

Und der ATtiny selbst bei ca. 1.8V noch zuverlässig schaltet bzw. mit dem FET dann noch bis gut 2V...
Leider die StepUp-Module schon früher "einbrechen" also nicht mehr für den ESP zufriedenstellend Strom liefern... :-|

Dafür muss ich noch eine Lösung finden sonst wird es wohl nichts mit Batteriebetrieb...
...außer man ist mit 1-2Monaten und alle 10min Daten senden zufrieden...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Kuzl

Hallo Joachim,

durch das schalten der Versorgungsspannung hast du das Problem, dass im Einschaltmoment extrem viel Strom benötigt wird, der von einem Stützkondensator gepuffert werden sollte.
Der ESP hat ja keine Spannungsversorgung mehr und daher sind auch die Kondensatoren auf dem Board entladen.
Du könntest versuchen zwischen batterie und FET einen großen Kondensator zu hängen.

Gruß,
Kuzl

MadMax-FHEM

Hallo Kuzl,

danke!

Da habe ich auch schon drüber nachgedacht und auch schon mal 2Stufig geschalten:

StepUp 5V -> StepDown 3.3V Kondensator etwas warten und dann erst den ESP.

Damit lief es etwas länger aber nicht wirklich nennenswert (ca. 1 Tag).

Aktuell läuft parallel ein Temperature/Humidity Sensor auch mit ATtiny geschaltet und nur StepDown 3.3V mit einschalten/senden alle 3min ca. 1 Monat...
...evtl. gehe ich mal mit dem Füllstandsmesser in eine ähnliche Richtung.

Bei messen/senden alle 10min wäre ich dann bereits bei ca. 3Monaten (nicht genau wo ich hin will aber besser)...
...und eigentlich reicht wohl auch alle halbe Stunde... ;-)

Mal sehen, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

PeMue

Zitat von: sbiermann am 09 März 2016, 12:12:19
Deep Sleep geht relativ simple, man muss es dem ESP nur mitteilen das er jetzt für X Millis schlafen soll und er tut es.
Hallo,

wie kann man den ESP dann wieder daraus aufwecken? Geht das nur vom ESP aus oder ist das auch per WLAN machbar?
Hintergrund: ich spiele mit dem Gedanken, mit Hilfe eines e-Paper Displays ein fhem Statusdisplay zu machen (Leiterplatte geht, mit der Software könnte es ein bisschen hapern).
Wenn jetzt der ESP über WLAN aufgeweckt werden könnte, wäre das perfekt.

Danke + Gruß

PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

scuba

im deep sleep legt sich bis auf die clk alles schlafen, somit ist auch keine Kommunikation über WLan möglich. Ich glaube mich zu erinnern , dass es aber noch weitere Energiesparmodi gibt.