Forum: Mikrocontroller und Digitale Elektronik ESP32 kein geringerer Stromverbrauch im deep sleep


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von David P. (devryd)


Lesenswert?

Hallo zusammen,
ich bin neu hier, also entschuldigt bitte, wenn ich mich eventuell nicht 
an vorhandene Regeln halte. Das geschieht wenn aus Unwissenheit und 
nicht aus bösartiger Absicht.

Ich habe kürzlich einen ESP32 gekauft(genauer diesen hier: 
https://www.az-delivery.de/products/esp-32-dev-kit-c-v4) und habe ein 
paar Beispiele ausprobiert. Ich habe das Wlan-scan sketch getestet, und 
das Deep sleep sketch. Beide funktionieren, also zumindest laut 
Konsolenausgabe in putty, allerdings haben beide einen sehr ähnlichen 
Stromverbrauch von ca 60mA. Sollte es im deep sleep nicht deutlich 
weniger sein?
Ich habe mir das board eigentlich gekauft, weil der esp32 laut Internet 
im deep sleep einen Stromverbrauch von ca 100 Microampere haben soll. 
60mA ist irgendwie das 600 fache und deutlich mehr als ich sinnvoll 
nutzen kann.
Danke für eure Hilfe
devryd

von Purzel H. (hacky)


Lesenswert?

Und das Sendemodul ist wie abgeschaltet ?

von David P. (devryd)


Lesenswert?

Ich bin davon ausgegangen, dass das automatisch mit dem sleep mode 
abgeschaltet wird. Ist das nicht der Fall?
Ich hatte gelesen, dass im deep sleep so ziemlich alles deaktiviert ist.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

ESP8266 benötigt eine Verbindung zwischen dem Reset Pin und einem der 
GPIOs (wars Nummer 16?) für Deep Sleep.
Prüfe, ob das beim ESP32 auch erforderlich ist.

von Purzel H. (hacky)


Lesenswert?

Das Modul ist separat zum ESP chip, der Sleepmode gilt erst mal nun fuer 
den Prozessor. Ich wuerde aber erwarten, dass auch das Modul in einen 
sleep geschickt werden kann.

von David P. (devryd)


Lesenswert?

Matthias S. schrieb:
> Prüfe, ob das beim ESP32 auch erforderlich ist.

Dazu haben ich in diversen Tutorials nichts gefunden, somit glaube ich 
nicht, dass das der Fall ist. Man kann den esp32 über pins wecken, aber 
ich hatte ihn über einen Timer in deep sleep geschickt, weshalb das 
nicht nötig sein sollte.

Purzel H. schrieb:
> Das Modul ist separat zum ESP chip, der Sleepmode gilt erst mal nun fuer
> den Prozessor. Ich wuerde aber erwarten, dass auch das Modul in einen
> sleep geschickt werden kann.

Aber selbst wenn nur der Prozessor in deep sleep geht, sollte sich der 
Stromverbrauch doch minimal ändern oder?
Ich habe mit beiden Sketches einen schwankenden Stromverbrauch zwischen 
ca 58 und 62mA gemessen.

von Johannes F. (doppelgrau)


Lesenswert?

Ganz blöd gefragt: Wo misst du den Strom?
IIRC hatten einige der Module sehr miese Spannungsregler, dazu noch die 
Power-LED ...

von David P. (devryd)


Lesenswert?

Johannes F. schrieb:
> Ganz blöd gefragt: Wo misst du den Strom?
> IIRC hatten einige der Module sehr miese Spannungsregler, dazu noch die
> Power-LED ...

Gemessen habe ich am 5V Pin, also 5V von nem Raspberry pi geholt, Ground 
verbunden, und dann das Multimeter dazwischen geschaltet.
Ist das so korrekt, oder sollte ich an anders messen?

von Johannes F. (doppelgrau)


Lesenswert?

Purzel H. schrieb:
> Das Modul ist separat zum ESP chip, der Sleepmode gilt erst mal
> nun fuer
> den Prozessor. Ich wuerde aber erwarten, dass auch das Modul in einen
> sleep geschickt werden kann.

Hast du dafür Quellen, die Doku sagt ja was anderes:
"In deep sleep and light sleep modes, wireless peripherals are powered 
down."
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/sleep_modes.html

von Johannes F. (doppelgrau)


Lesenswert?

David P. schrieb:
> Johannes F. schrieb:
>> Ganz blöd gefragt: Wo misst du den Strom?
>> IIRC hatten einige der Module sehr miese Spannungsregler, dazu noch die
>> Power-LED ...
>
> Gemessen habe ich am 5V Pin, also 5V von nem Raspberry pi geholt, Ground
> verbunden, und dann das Multimeter dazwischen geschaltet.
> Ist das so korrekt, oder sollte ich an anders messen?

So wie du gemessen hast, hast du alle zusätzlichen Verbraucher (der Chip 
der USB<-> Seriell wandelt, Spannungswandler mit Verlusten und die LED) 
mit gemessen...
Die Stromaufnahme vom ESP32 selbst dürfte so sehr schwer zu messen sein. 
Maximal Unterschiede in der Stromaufnahme in den verschiedenen Modi.

von David P. (devryd)


Lesenswert?

Johannes F. schrieb:
> Maximal Unterschiede in der Stromaufnahme in den verschiedenen Modi.

Aber selbst das lässt sich ja leider nicht messen. Ich erwarte für das 
ganze Board natürlich keinen Stromverbrauch im Microampere Bereich, aber 
60mA sind dann doch recht viel, besonders weil ich die ja scheinbar im 
deep sleep und im normalen Modus brauche.

von tut nix zur Sache (Gast)


Lesenswert?

LED_BUILTIN soll wohl angeblich manchmal so definiert sein, dass sie 
kollidiert mit dem DeepSleep

von dunno.. (Gast)


Lesenswert?

alleine der CP2102 tut sich ja schon 20 - 26mA rein, dazu der 3.3V 
spannungsregler..

da wird sich der ESP auch auf den kopf stellen können, wirklich low 
power wird mit dem board so nichts..

von Stefan F. (Gast)


Lesenswert?

dunno.. schrieb:
> alleine der CP2102 tut sich ja schon 20 - 26mA rein

Normalerweise wird der vom USB Kabel versorgt, so dass er die Batterie 
nicht belastet.

Spannungsregler und Power-LED von diesem Board sind wie gesagt nicht 
wirklich gut für Deep-Sleep Modul geeignet. Dennoch würde ich erwarten, 
dass die Stromaufnahme mindestens auf 15mA runter geht.

von MaWIn (Gast)


Lesenswert?

David P. schrieb:
> Aber selbst wenn nur der Prozessor in deep sleep geht, sollte sich der
> Stromverbrauch doch minimal ändern oder?

Ja. Für das ESP-Modul. Also dieses kleine Huckepack-Modul auf deiner 
Platine.

Diese Dev-Boards sind aber oft nicht auf Deepsleep ausgelegt und die 
Komponenten auf dem Dev-Board (Spannungswandler, Serial transceiver, 
...) ziehen auch im Deepsleep ordentlich Strom, weil sie nichts zum 
Deepsleep wissen.

von David P. (devryd)


Lesenswert?

MaWIn schrieb:
> Diese Dev-Boards sind aber oft nicht auf Deepsleep ausgelegt und die
> Komponenten auf dem Dev-Board (Spannungswandler, Serial transceiver,
> ...) ziehen auch im Deepsleep ordentlich Strom, weil sie nichts zum
> Deepsleep wissen.

Also sollte ich für ein Projekt, welches mit Batterien betrieben wird 
eher einen einzelnen esp32 nutzen?

von Stefan F. (Gast)


Lesenswert?

David P. schrieb:
> Also sollte ich für ein Projekt, welches mit Batterien betrieben wird
> eher einen einzelnen esp32 nutzen?

Wenn du damit ein Modul (wie das WROOM-32 meinst): ja

von David P. (devryd)


Lesenswert?

Stefan ⛄ F. schrieb:
> Wenn du damit ein Modul (wie das WROOM-32 meinst): ja

jap das meinte ich, danke

von Frank K. (fchk)


Lesenswert?

David P. schrieb:

> Also sollte ich für ein Projekt, welches mit Batterien betrieben wird
> eher einen einzelnen esp32 nutzen?

Ein Projekt, was mit Batterien betrieben wird, sollte eh kein WLAN 
verwenden, sondern etwas energiesparenderes. Da gibts einiges, was auf 
802.15.4 aufbaut: Thread, 6LoWPAN, ANT, Zigbee,...

fchk

von MaWin (Gast)


Lesenswert?

Frank K. schrieb:
> Da gibts einiges, was auf
> 802.15.4 aufbaut: Thread, 6LoWPAN, ANT, Zigbee,...

Der ESP32 hat BTLE.

von Pandur S. (jetztnicht)


Lesenswert?

Fuer solche Projekte sollte man sich die einzelnen Datenblaetter 
anschauen. Und allenfalls Komponenten optimieren. Ein guenstiger 
spannungsregler fuer 15 cents zieht gerne mal 5mA, nur fuer sich. Wenn 
man da etwas mit einem Eigenverbrauch von 20uA haben will muss man sich 
etwas mehr anstrengen.
Und weg von den 5V. Stromsparendere Analogik laeuft ab 3.3V oder 
weniger.
Ein einzelner Widerstand von 1MOhm laesst schon 5uA bei 5V runter.

von Dominik (koelner)


Lesenswert?

Hallo,

es sind nun wieder Jahre vergangen. Gibt es mittlerweile vielleicht ein 
fertiges ESP32-Devboard, dass auf geringen Verbrauch im Deepstandby 
getrimmt ist? Also ich meine mit sehr sparsamen Spannungsregler für den 
Deepsleep (ev. Linearregler statt Schaltregler?) und eventuell 
abschaltbare USB-Schnittstellenwandler z.B. über Dip-Schalter oder 
Mikrojumper?

von Michael M. (michael89)


Lesenswert?

Hallo,

guck dir mal den link an. Das ist ein Modul mit Simcard. Dieser hat es 
glaub ich geschaft in deep sleep auf 2.2 mA runter zu gehen.

Das Modul hatte allerdings ein Problem (weiß nicht ob mittlerweile 
behoben), dass beim senden von Wlan oder SMS (bin mir nicht mehr sicher) 
der Spannungsregler, der über Batterie betrieben wird, den Strom nicht 
liefern konnte und die Spannung eingebrochen ist und führte immer zum 
Reset des Moduls.

Aber evtl. ist es ja ein Anhaltspunkt für dich.

https://github.com/Xinyuan-LilyGO/LilyGo-T-Call-SIM800

Gruß
Michael

von Manfred P. (pruckelfred)


Lesenswert?

Michael M. schrieb:
> Dieser hat es glaub ich geschaft
> in deep sleep auf 2.2 mA runter zu gehen.

Für Sleep Faktor 100 zu viel, für Tiefschlaf eher Faktor eintausend.

Um 3,3V-Versorgung halten zu können, bekommt man aus einem guten 
18650-LiIon bestenfalls 2,5Ah heraus. Gerechnet gibt das 47 Tage, aber 
da fehlen noch die aktiven Zeiten mit höherem Strom.

Da kommt man also auf einen Monat Laufzeit, nicht beeindruckend lange.

Vielleicht ist der ESP ja keine gute Wahl, wenn es um Stromsparen geht?

von Michael M. (michael89)


Angehängte Dateien:

Lesenswert?

Dominik schrieb:
> es sind nun wieder Jahre vergangen. Gibt es mittlerweile vielleicht ein
> fertiges ESP32-Devboard, dass auf geringen Verbrauch im Deepstandby
> getrimmt ist?

Michael M. schrieb:
> Dieser hat es glaub ich geschafft in deep sleep auf 2.2 mA runter zu gehen.

Manfred P. schrieb:
> Für Sleep Faktor 100 zu viel, für Tiefschlaf eher Faktor eintausend.

Da bin ich bei dir, aber es wurde nach existierende Modulen gefragt.

Hab mal das Foto auf der verlinkten Seite gefunden.
Er hat es wohl geschafft auf 500µA runter zu kommen (siehe Bild).

Gruß
Michael

von DSGV-Violator (Gast)


Lesenswert?

Michael M. schrieb:

> Er hat es wohl geschafft auf 500µA runter zu kommen (siehe Bild).

Nö, auf dem Bild sieht man 0,0005A. Das kann auch 549 µA sein oder 451 
µA
Oder was ganz anderes, weil man die Toleranzen des Messgerätes nicht 
kennt.

Anzeige mit nur einem digit aber dann auf drei Stellen genau ablesen 
wollen - voll die Experten hier.

Das der benutzte Anschluss mit "10A" beschriftet ist, hinterläßt auch 
nicht den Eindruck, das es bei der Messung um Genauigkeit ging.

von Rubble C. (Gast)


Lesenswert?


von Oliver R. (superberti)


Lesenswert?

Moin,

ich habe hier gerade zwei Lilygo TTGO T3_V1.6 als 
Funk-Wetterstation-LoRa-Sender verbaut. Die Dinger sind recht praktisch, 
da Display, LoRa, LiIon-Ladechip und SD-CARD dabei sind.
Schaltet man im Deep-Sleep vorher alles sauber ab, dann kommt man auf 
ca. 140 µA (nachgemessen mit dem Current-Ranger 
"https://github.com/LowPowerLab/CurrentRanger";). Sendet man alle 2 
Minuten eine kleine LoRa-Message, dann sollte der Akku so 1,5 Jahre 
halten.
Das finde ich bei solch einem komfortablen Board ganz OK.
Noch im Teststadium ist bei mir ein Heltec-Wireless-Lite-Stick mit 
ESP32-S3 und SX1262. Der hat auch einen LiIon-Lader und soll bei 
Batteriebetrieb auf 15 µA kommen. Das habe ich aber noch nicht 
verifiziert.

Gruß,
Oliver

von Michael U. (amiga)


Lesenswert?

Hallo,

ein nacktes ESP32-Wroom läuft hier mit einem BME280 und einem MAX44009 
dran.
Alle 5 Minuten ein MQTT-Paket per WLAN an den Broker, öfter brauch 
Änderungen des Wetters auf dem Balkon nicht. Ansonsten DeepSleep aller 
Komponenten, Versorgung eine 18650 LiFePO4 1500mAh, läuft ziemlich genau 
2 Monate, egal ob Sommer oder Winter. Akku wird dann getauscht und 
extern geladen.

Gruß aus Berlin
Michael

von Michael M. (michael89)


Lesenswert?

DSGV-Violator schrieb:
> Nö, auf dem Bild sieht man 0,0005A. Das kann auch 549 µA sein oder 451
> µA
> Oder was ganz anderes, weil man die Toleranzen des Messgerätes nicht
> kennt.
>
> Anzeige mit nur einem digit aber dann auf drei Stellen genau ablesen
> wollen - voll die Experten hier.
>
> Das der benutzte Anschluss mit "10A" beschriftet ist, hinterläßt auch
> nicht den Eindruck, das es bei der Messung um Genauigkeit ging.

oh Gott nerv woanders du scheiß Klugscheißer, hab ich irgendwo behauptet 
das die Messung akkurat ist ?

Für Leute die sich für sowas interessieren ist das doch schonmal ein 
guter Ausgangspunkt sich weiter damit zu beschäftigen. Die werden dann 
schon wissen/rausbekommen wie man aussagekräftig misst.

willst auch noch was zum Thema beitragen ?

Gruß

von Helmut -. (dc3yc)


Lesenswert?

Oliver R. schrieb:
> Schaltet man im Deep-Sleep vorher alles sauber ab, dann kommt man auf
> ca. 140 µA (nachgemessen mit dem Current-Ranger

Könntest du bitte ein Beispiel posten, was man alles wie abschalten 
muss?
Und welche LoRa-Frequenz verwendest du mit welchen Parametern? Ich 
empfange im 865-869MHz-Band jede Menge ungewollten Mist.

von Xanthippos (xanthippos)


Lesenswert?

Hier hatte ein freundlicher Mensch den Stromverbrauch verschiedener 
Boards im deep sleep gemessen. Er beschreibt zwar sehr gut die Probleme, 
hat aber kein optimales Board gefunden.

https://www.youtube.com/watch?v=ajt7vtgKNNM

Unter dem Video ist ein Link auf ein Spreadsheet.

von Monk (roehrmond)


Lesenswert?

DSGV-Violator schrieb:
> Nö, auf dem Bild sieht man 0,0005A. Das kann auch 549 µA sein oder 451
> µA Oder was ganz anderes, weil man die Toleranzen des Messgerätes nicht
> kennt.

Um derartige Feinheiten geht es hier doch gar nicht.

von Andree S. (amshh)


Angehängte Dateien:

Lesenswert?

Ohne jemals nach diesen "Modulen" geschaut zu haben, befürchte ich, dass 
es damit schwierig wird. Vielleicht gibt es ein entsprechend optimiertes 
.... aber anscheinend ist die bisherige Suche danach erfolglos ...

Ich habe (aus reinem Spieltrieb) auch damit experimentiert. Es sollte 
unbedingt ein ESP sein. Und damit ich weniger Probleme habe, habe ich 
eine einfache, sparsame RTC dazu genommen und ansonsten die gesamte 
Schaltung über einen P-Mosfet abgeschaltet. Schläft jetzt immer 5 
Minuten (auf ca. 1 Sekunde/Tag genau >> RTC), wacht dann auf, sendet 
Temperatur via LORA Funk und dreht sich dann selbst wieder den Saft ab. 
Ergebnis: Im "Sleep", d.h. im abgeschalteten Zustand laut meinem 
Messgerät < 1µA. Läuft mit einer CR123 Lithium Batterie seit Anfang 
September.

Gruß
A.

: Bearbeitet durch User
von Rubble C. (Gast)


Lesenswert?

Andree S. schrieb:
> RTC dazu genommen und ansonsten die gesamte Schaltung über einen
> P-Mosfet abgeschaltet

Das ist natürlich der Königsweg.

von Oliver R. (superberti)


Lesenswert?

Moin,

Helmut -. schrieb:
> Oliver R. schrieb:
>> Schaltet man im Deep-Sleep vorher alles sauber ab, dann kommt man auf
>> ca. 140 µA (nachgemessen mit dem Current-Ranger
>
> Könntest du bitte ein Beispiel posten, was man alles wie abschalten
> muss?
> Und welche LoRa-Frequenz verwendest du mit welchen Parametern? Ich
> empfange im 865-869MHz-Band jede Menge ungewollten Mist.

schau Dir mal den Code in meinem Wetterstation-github an:

https://github.com/Superberti/wetterstation/tree/master/esp/lora_temperature

In main/lora_temp.cpp ab Zeile 340 kannst Du nachlesen, was ich alles 
vor dem Deep-Sleep mache (alles ESP-IDF).

Was LoRa beim Empfangen angeht: Die Dinger sind sehr empfindlich und da 
können auch mal "Geisterpakete" empfangen werden. Gerade auf der 
Empfangsseite gehört zu einer wirklich zuverlässigen Übertragung etwas 
mehr Aufwand.
Bei LoRa sollte man IMMER den CRC auf beiden Seiten einschalten und 
überprüfen. "Geisterpakete" haben aber manchmal gar keinen ungültigen 
CRC, sondern sie liefern diesen einfach nicht mit! Also immer auch 
überprüfen, ob im empfangenen Header auch der CRC eingeschaltet ist. Je 
schneller die Übertragungsrate und je kleiner die Menge an 
Vorwärtskorrekturdaten, desto mehr "Geisterpakete". Am Raspi verwende 
ich ein RA-02-Modul, welches auf den SPI-Leitungen sehr störempfindlich 
ist und dann manchmal (aber doch selten) in einen Zustand geht, wo gar 
nichts mehr empfangen wird. Hier hilft ein Timeout mit Reset, dann läuft 
es wieder.

Mit den LoRa-Einstellungen ab Zeile 382 bin ich recht zufrieden, ein 
guter Kompromiss aus Sendedauer, Reichweite und Sicherheit. OK, das 
gehört jetzt eigentlich nicht mehr zu diesem Thread...

Gruß,
Oliver

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.