NodeMCU stromstparend programmieren

Gast #5037731
Lesenswert?

Hallo zusammen,
Ich studiere Wirtschaftsingenieurwesen und habe derzeit ein 
Mechatronikprojekt. Ich baue eine Wetterstation aus einem NodeMCU, einen 
MPL3115A2, einen DS18B20, einen DHT22 und eine RGB-LED.
Nun ist die Anweisung meines Dozenten, das ganze stromsparend zu 
programmieren. Ich bin ein absoluter Anfänger und habe keine Ahnung, 
also bitte ich um Verständnis. Wie kann ich den Microcontroller 
stromsparend programmieren? ICh habe überlegt, dass der NodeMCU nur alle 
5 Minuten die Werte ziehen soll.. Aber keine Ahnung, ob das als 
"stromsparend" ausreicht.. Ich danke euch bereits im Voraus für gute 
Ideen :)
Viele Grüße,
Melina
Gast #5037863
Lesenswert?

Melinamellmel schrieb:
> Hallo zusammen,
> Ich studiere Wirtschaftsingenieurwesen und habe derzeit ein
> Mechatronikprojekt. Ich baue eine Wetterstation aus einem NodeMCU, einen
> MPL3115A2, einen DS18B20, einen DHT22 und eine RGB-LED.
> Nun ist die Anweisung meines Dozenten, das ganze stromsparend zu
> programmieren. Ich bin ein absoluter Anfänger und habe keine Ahnung,
> also bitte ich um Verständnis. Wie kann ich den Microcontroller
> stromsparend programmieren? ICh habe überlegt, dass der NodeMCU nur alle
> 5 Minuten die Werte ziehen soll.. Aber keine Ahnung, ob das als
> "stromsparend" ausreicht.. Ich danke euch bereits im Voraus für gute
> Ideen :)
> Viele Grüße,
> Melina


Das reicht nicht aus. Das NodeMcu-Modul zieht zuviel Strom. Nimm eins 
dieser kleinen ESP-Boards (ESP-12F oder so) und papp die Sensoren da 
dran.
Wie oft Du die Sensor-Werte sendest, hängt vom Einsatzzweck bzw. den 
erwarteten Erkenntnissen ab.
Gast #5039001
Lesenswert?

Es geht sicher darum, den deep-sleep Modus zu nutzen, und einen Timer, 
der den Chip in regelmäßigen Intervallen durch einen Reset-Impuls 
aufweckt.

Dazu musst du GPIO16 (=Ausgang es Timers) mit Reset verbinden.

Das NodeMCU Board ist allerdings nicht gerade auf StromSparen ausgelegt. 
Darauf befinden sich einige Komponenten, die ständig signifikant Strom 
aufnehmen. Zum Beispiel der Spannungsregler und der USB-UART.

Ich kenne da die Methode, ein ESP-12 Modul direkt an zwei Alkaline 
Batterien zu betreiben. Bis 2,5V runter läuft das ESP Modul noch. So 
kann man die Batterien zwar nicht optimal ausnutzen, aber man erspart 
sich die zusätzliche Stromaufnahme des Spannungsreglers.

Wenn du es wirklich ernst meinst, verwendest als Timer einen kleinen 
8bit Mikrocontroller (z.B. ATTiny13), der die gesamte Stromversorgung 
des NodeMCU Moduls mit einem MOSFET bei nicht-gebrauch abschaltet.

Denn so ein ATTiny kann direkt an die Batterie angeschlossen werden und 
nimmt viel viel viel weniger Strom auf.
#5039010
Lesenswert?

Stefan U. schrieb:
> Das NodeMCU Board ist allerdings nicht gerade auf StromSparen ausgelegt.
> Darauf befinden sich einige Komponenten, die ständig signifikant Strom
> aufnehmen. Zum Beispiel der Spannungsregler und der USB-UART.

Der USB-Wandler zieht nur dann deutlich Strom, wenn aktives USB 
dranhängt. Behauptet jedenfalls das Datasheet vom CH340.

Beim Spannungsregler wäre interessant, ob man den links liegen lassen 
kann um die NodeMCU direkt über die 3,3V Versorgung zu füttern.
#5039025
Lesenswert?

Stefan U. schrieb:
> Das NodeMCU Board ist allerdings nicht gerade auf StromSparen ausgelegt.

Ja, aber wie du das beschreibst ist sie schon auf unter 5µA herunter.

Oder sie nimmt gleich ein anderes Modul: ESP32 und BMP280
dazu ein Solarlader samt 1-2W Solarzelle und ihr Projekt
läuft mehrere Jahre...

@Melina: Wenn du die Daten alle 10-15 Minuten erfassen und
hochladen willst, bist du bei gerade ~1.5mA.
Gast #5039175
Lesenswert?

> Der USB-Wandler zieht nur dann deutlich Strom, wenn aktives USB
> dranhängt. Behauptet jedenfalls das Datasheet vom CH340.

Im DB steht: "Total source current when USB suspending  0.05mA"

Bei Batteriebetrieb halte ich Ruhestromaufnahmen über 1µA für nicht 
akzeptabel. Dafür sind mir die Batterien zu teuer und der 
Batteriewechsel zu Aufwändig.

Deswegen lieber ganz abschalten.

> NodeMCU ... Ja, aber wie du das beschreibst ist sie schon auf
> unter 5µA herunter.

Wie kann das sein? Schon das ESP modul nimmt ca 25µA auf, dazu mommen 
noch 50µA für den USB-UART sowie satte 5mA für den Spannungsregler.
Gast #5039205
Lesenswert?

> UART und der Regler werden abgeschaltet...ESP weniger als 5µA

Da sind gleich zwei Sachen unstimmig: UART und Regler kann man auf 
diesem Board gar nicht abschalten und der ESP nimmt viel mehr Strom auf, 
ganz sicher.

Laut Datenblatt nimmt der ESP 20µA bei 2,5V auf. Wir haben aber 3,3V und 
es kommt noch die Stromaufnahme vom Flash-Speicher und vom Timer dazu.
#5039219
Lesenswert?

Stefan U. schrieb:
> UART und Regler kann man auf
> diesem Board gar nicht abschalten

Klar, deswegen sagte ich->

Richard B. schrieb:
> Jemand hat hier so eine Schaltung gepostet.

Direkt mit nodeMCU geht das so nicht.

Stefan U. schrieb:
> Laut Datenblatt nimmt der ESP 20µA bei 2,5V auf.

Ich habe aber trotzdem 3,8µA (3.3V) gehabt... ohne Timer.
5µA waren für diese Schaltung Typisch gewesen.

Hast du vielleicht ein ESP32 zum testen?
Gast #5039267
Lesenswert?

Wenn die HW vorgegeben ist, dann
- programmiere es erstmal rund, ohne an den Strom zu denken
- refaktoriere den Code, bis es wieder rund läuft,
- refaktoriere den Code, bis es wieder rund läuft,
- messe den Strom während verschiedener Modi,
- variiere die Modi und Messe nochmal die Ströme

dann setze Dich hin und überlege Dir Konzepte für einen stromsparenden 
Betrieb
dann überlege, ob Du Dein Design änderst oder von Grund auf neu 
programmierst.

Du wirst am Ende sehen, dass Du damit *insgesamt immer noch schneller 
bist*, als wenn Du schon vor der ersten Zeile über Optimierung 
nachdenkst.
#5039318
Lesenswert?

für gewöhnlich zieht der esp12 auf dem nodemcu board (also esp8266 + 
flash) um die 25µA (je nach Vorbereitung der gpios auf deepsleep).

Ob der USB/seriell Wandler bei Speisung über den 3V3-pin mitversorgt 
wird hängt von der nodemcu Clone-Version ab.

Der oft verbaute AMS1117 3.3V Regler liegt meist eher bei 10mA 
"quiescent"
current, es gibt aber auch Boards mit beserem...

eventuell ist eine Lösung mit "nur" ESP-01 und TPL5110 zulässig?

Aber generell läßt sich - mit mehr oder weniger Aufwand, je nach 
Cloneversion - auch aus jedem nodemcu eine low power Messplatform 
machen.
Gast #5039413
Lesenswert?

Melinamellmel schrieb:
> Hallo zusammen,
> Ich studiere Wirtschaftsingenieurwesen ....

> Nun ist die Anweisung meines Dozenten, das ganze stromsparend zu
> programmieren. Ich bin ein absoluter Anfänger und habe keine Ahnung,

In der Stromzufuhr eine Schaltur und einen Energiezähler einschleifen.
Die Schaltuhr programmieren(*): alle n Minuten, für d Minuten ein; sonst 
aus.
Den NodeMCU programmieren(*): alle Arbeit (Sensoren einlesen, ggfs. 
umrechnen, speichern oder übertragen) gleih beim Aufstarten erledigen.; 
warten.

Reicht die Zeit d nicht um die Arbeit zu erledigen? d erhöhen.
Energieaufnahme gemäß Zähler zu hoch (Batterie hält nicht lange durch)? 
n erhöhen.

(* das Wort programmieren wird hier umgangssprachlich eingesetzt)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren