[geklärt] Stromverbrauch ESP-01 im "disabled" Zustand

Begonnen von TomLee, 11 März 2018, 00:46:21

Vorheriges Thema - Nächstes Thema

TomLee

Hallo,

hab mir vorgenommen den Wassermelder hier zu basteln. Als errechnete Batterielaufzeit wird von 8 Jahren gesprochen.

ZitatDer ESP8266-Modul in Sleep-Modus bzw. disabled verbraucht 16uA (0,016mA oder 0,000016A). Das habe ich selbst mit einem Multimeter gemessen.
Berechnung: 1,2Ah/0,000016A=75000h. 75000h/24= 3125 Tage. 3125Tage/365Tage= 8 Jahre

Da ich im durchschnittlich 3 jährigen Rythmus einen nassen Kellerboden aufwische, liegt das voll im Toleranzbereich ;D dacht ich mir.

Umgesetzt hab ich das hier bei meinem Testaufbau in leicht abgewandelter Version.

Zur Verwendung kommt ein ESP-01, mit der auf der Seite beschriebenen Schaltung.
Als Software nehm ich einfach Tasmota (oder ww ESP_Easy) um später wenn ich wollte auf die Batteriespannung per MQTT zuzugreifen.
Mit Presence und Doif setz ich die Warnung/Benachrichtigung um.

Das klappt soweit auch alles.

Das Problem an der Sache: Trotz abgeknipster Led komm ich immer noch auf 1,8mA im "disabled" Status. Das verkürzt das ganze dann gleich auf 277 Tage. Das wär nicht so zufriedenstellend. Der einzige Unterschied der mir noch kommen würde wäre das verwendete Modul, ich nutze ein schwarzes.

Hoffe mich versteht jemand und hat eine Erklärung woran der hohe Stromverbrauch noch liegen könnte ?

sbiermann

Ist denn der Tasmota "disabled" Zustand der gleiche wie "Deep sleep"? Bei Deep sleep schläft der ESP komplett. Das heißt es ist kein WLAN an, keine CPU, nur die RTC läuft und reseted nach Zeit x den ESP so das dieser wieder läuft. Alternativ zur Zeit x kann man wie in dem Wassermelder Beispiel über einen externen Interrupt den ESP neu starten. Wenn der ESP im deep sleep ist, wird keinerlei Abfrage über MQTT oder ähnlichem möglich sein.

Ich denke mal das Tasmota nicht die richtige Firmware für den ESP ist, da muss man wohl, wie in dem Beispiel Projekt eine eigene Firmware schreiben. Kleiner Hinweis, beim aufrufen der Deep Sleep Methode, kann maximal 1 Stunde geschlafen werden (ohne externen Interrupt).

Frank_Huber

Moin moin,

Du könntest auch alternativ auf 2 x AA Batterien (oder noch größere) umschwenken.

Ich frage mich gerade wie man die Original Firmware FHEM tauglich bekommen würde. Also ohne den externen Dienst.

Also quasi einen Dummy in FHEM der bei Wasseralarm mit Daten gefüllt wird. (rssi, vbatt,....)



Mit dem Handy online, daher kurz gefasst...


Otto123

Moin,

ich habe das einfach mit ESPEasy gemacht.

Funktioniert wie gewollt.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Frank_Huber

Zitat von: Otto123 am 11 März 2018, 10:04:27
Moin,

ich habe das einfach mit ESPEasy gemacht.

Funktioniert wie gewollt.

Gruß Otto
Standart espeasy?
Und dann mit send boot state?

Wie bringst ihn wieder in deep sleep?

Mit dem Handy online, daher kurz gefasst...


Otto123

Ja: Standard ESPEasy
Ist schon ne Weile her, ich kopiere mal meine Notiz:
ZitatFunktion
Der Eingang RESET und GPIO16 (D0) wird über einen Jumper verbunden. damit kann man das Modul in den Sleep Modus versetzen und es kann zyklisch oder über den EN Eingang aufwachen.

Der Eingang EN (CH_PD) ist normalerweise über einen Widerstand 1 MOhm nach Masse gezogen, das Modul befindet sich im Sleep Modus und verbraucht nur ca. 16 µA.

Wird der Eingang durch Wasser mit dem Pluspol verbunden (normaler Betrieb) startet das Modul und liefert aktuelle Werte an das ESPEasy Modul von FHEM. Diesen Event kann man in FHEM auswerten.

Der Eingang GPIO14 (D5) wird ebenfalls mit einem Widerstand 1 MOhm nach Masse gezogen und ist mit dem abgesägtem Spike verbunden. Mit ihm könnte "Wasserstand  von ca. 5 mm ermittelt werden.

Konfiguration
Der Jumper wird von den Anschlüssen RST und D0 entfernt und so gesteckt, dass EN und VCC gebrückt werden. Damit startet das Modul im normalen Modus.
Vorsicht, jetzt zieht das Modul dauerhaft ca. 80 mA. Wird es jetzt schon mit Batterie versorgt ist diese nach ca 15 Stunden (oder eher) leer.
Bei einem neuen Modul wird jetzt das Netzwerk konfiguriert.
Grundlegend ist die Konfiguration hier beschrieben
Nach dem Neustart unter dem Reiter Config:
ein sinnvoller Unit Name vergeben.
FHEM Server eintragen
Im Reiter Devices

1. Gerät definieren, System RSSI

2. Gerät definieren, Switch, GPIO14, kein Pullup
Nach dem die Geräte in FHEM automatisch angelegt wurden kann man den ESP in den Sleep Mode schicken: Unter Reiter Config Häkchen setzen. Mit der Zeitspanne in µsec kann man erreichen, dass sich der Melder immer wieder schlafen legt und in diesem Abstand eine erneute Meldung absetzt.
Jetzt zieht man den Jumper von der Verbindung EN - VCC und steckt ihn auf RST-GPIO16
Das Gerät darf jetzt nicht mehr erreichbar sein.

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomLee

Zitat von: Otto123 am 11 März 2018, 10:04:27
Moin,

ich habe das einfach mit ESPEasy gemacht.

Funktioniert wie gewollt.

Gruß Otto

Moin,

und was sagt der Stromverbrauch bei dir im "disabled" Zustand, kommst du auf die erwähnten 0,000016A?

@Frank_Huber

hier hat bismosa den Sketch angepasst und schreibt die Daten in einen Dummy.

Das brauch ich aber gar nicht, löst der Sensor einmal in 3-4 Jahren aus, so mein Plan, bekommt er eh gleich neue Batterien spendiert.

Otto123

eigenhändig gemessen :) ich habe allerdings nur den ESP8266 12F Chip dran.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

MadMax-FHEM

Zitat von: Otto123 am 11 März 2018, 10:28:07
eigenhändig gemessen :) ich habe allerdings nur den ESP8266 12F Chip dran.

Da geht das mit dem Reset einfach ;)

Bei einem ESP-01 muss man direkt an den Beinchen des Chips rumlöten.

Hab ich auch mal gemacht aber ist schon ziemlich haarig und "wackelig"...

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)

Frank_Huber

Danke Otto!

Und nach einem Wasser Alarm schickst ihn manuell in den deep sleep?



Mit dem Handy online, daher kurz gefasst...


Otto123

Nein, wenn Wasser weg dann schläft er von selbst wieder :)

Ich sehe schon, ich muss meinen Artikel mal fertig machen. Es fehlten nur noch Fotos und Schaltplan.  ;D

Der einzige Nachteil der Sache: Man hat eben nie eine "is Alive" Meldung. Man kann wie beim Rauchmelder einmal im Monat testen: Einfach mit dem Finger die Spikes verbinden.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomLee

Welche Software da drauf ist sollte doch letztendlich egal, Hauptsache der ESP verbindet sich mit WLAN wenn CH_PD und VCC verbunden sind. Deep-Sleep wird auch nur dann genutzt damit der ESP nur alle paar Minuten sich verbindet und Meldung gibt(um Strom zu sparen). Darauf würd ich aber verzichten und wie gesagt gleich neue Batterien nehmen. Hauptsache ist doch ich bekomme die Meldung einmal.

Zurück zu meiner Frage: Ob nun ESP-12 oder ESP-01. Warum messe ich noch 0,18mA im "disabled" Zustand (CH_PD und VCC nicht verbunden) mit der ESP-01-Schaltung aus dem ersten Beispiel auf der Webseite, trotz abgeknipster LED. Hier muss ich doch auch auf die 16 µA kommen. Unabhängig von der verwendeten Software.

Otto123

#12
Ich weiß nicht ob es beim ESP01 genauso ist, aber reden wir wirklich von der gleichen Vorgehensweise?
(CH_PD und VCC nicht verbunden)

versus

Der Eingang RESET und GPIO16 (D0) wird verbunden.
Der Eingang EN (CH_PD) ist normalerweise über einen Widerstand 1 MOhm nach Masse gezogen, das Modul befindet sich im Sleep Modus und verbraucht nur ca. 16 µA.

BTW: die Basis für meine Schaltung ist exakt die von Dir verlinkte Webseite. Ich habe allerdings am Chip parallel zur Spannungsversorgung noch 100 µF geklemmt. Der ESP "mag es nicht" wenn die Spannungsversorgung nicht abgepuffert ist.

Hast Du deinen Chip schon mal mit 5 Volt geärgert? Widerstand verkehrter Wert? Kondensator kaputt/ keine Folie?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomLee

#13
Zu

ZitatIch weiß nicht ob es beim ESP01 genauso ist, aber reden wir wirklich von der gleichen Vorgehensweise?
(CH_PD und VCC nicht verbunden)

siehe Anhang. Erstes Beispiel mit ESP-01 auf der Seite.

Hast Du deinen Chip schon mal mit 5 Volt geärgert?

::) Ich kann's ehrlich gesagt nicht ausschliessen. Ich versuch's später noch mal mit einem neuen. Muss noch kurz was arbeiten.

edit:

ZitatIch habe allerdings am Chip parallel zur Spannungsversorgung noch 100 µF geklemmt. Der ESP "mag es nicht" wenn die Spannungsversorgung nicht abgepuffert ist

Zum testen mit einem ESP-01 nutz ich immer einen selbstgebauten Adapter (incl. Kondensator) um Fehler auszuschliessen. s. Anhang



TomLee

Es war wohl etwas spät gestern abend, ich messe 1,8mA (2,8mA übrigens mit LED) nicht 0,18mA, auch mit einem neuen ESP-01, mit der Schaltung im Anhang.