FHEM Forum

Verschiedenes => Bastelecke => ESP Familie => Thema gestartet von: ernst1024 am 07 März 2016, 23:55:11

Titel: deep sleep?
Beitrag von: ernst1024 am 07 März 2016, 23:55:11
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?
Titel: Antw:deep sleep?
Beitrag von: Kuzl am 08 März 2016, 07:24:52
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.
Titel: Antw:deep sleep?
Beitrag von: frank am 08 März 2016, 08:14:58
messdaten zwischenspeichern und gesammelt versenden, kann die batterielaufzeit natürlich noch verlängern, falls dieser modus ausreicht.
Titel: Antw:deep sleep?
Beitrag von: sbiermann am 08 März 2016, 08:53:59
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/
Titel: Antw:deep sleep?
Beitrag von: MadMax-FHEM am 08 März 2016, 09:43:18
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
Titel: Antw:deep sleep?
Beitrag von: ernst1024 am 08 März 2016, 12:46:50
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.
Titel: Antw:deep sleep?
Beitrag 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.
Titel: Antw:deep sleep?
Beitrag von: ernst1024 am 08 März 2016, 13:12:03
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?
Titel: Antw:deep sleep?
Beitrag von: sbiermann am 08 März 2016, 14:50:00
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.
Titel: Antw:deep sleep?
Beitrag von: MadMax-FHEM am 08 März 2016, 16:27:38
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
Titel: Antw:deep sleep?
Beitrag von: ernst1024 am 08 März 2016, 18:08:49
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??

Titel: Antw:deep sleep?
Beitrag von: Kuzl am 09 März 2016, 07:47:46
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.
Titel: Antw:deep sleep?
Beitrag von: MadMax-FHEM am 09 März 2016, 10:55:57
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...
Titel: Antw:deep sleep?
Beitrag von: ernst1024 am 09 März 2016, 11:57:32
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 ....
Titel: Antw:deep sleep?
Beitrag 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. 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.
Titel: Antw:deep sleep?
Beitrag von: MadMax-FHEM am 09 März 2016, 16:12:38
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
Titel: Antw:deep sleep?
Beitrag von: Kuzl am 10 März 2016, 07:36:47
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
Titel: Antw:deep sleep?
Beitrag von: MadMax-FHEM am 10 März 2016, 10:12:31
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
Titel: Antw:deep sleep?
Beitrag von: PeMue am 10 März 2016, 21:17:25
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
Titel: Antw:deep sleep?
Beitrag von: scuba am 10 März 2016, 23:29:29
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.