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
Melinamellmel schrieb:> ICh habe überlegt, dass der NodeMCU nur alle 5 Minuten die Werte ziehen> soll.
Alle 50 min wäre noch sparender, alle 500min noch sparender, wenn er nie
sendet ist er am sparsamsten...
Sehr interessant was man in
Melinamellmel schrieb:> Wirtschaftsingenieurwesen
nicht machen muss. Abwägen und nachdenken.
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.
Melinamellmel schrieb:> Ich bin ein absoluter Anfänger und habe keine Ahnung,> also bitte ich um Verständnis. Wie kann ich den Microcontroller> stromsparend programmieren?
Google "nodemcu stromverbrauch" führt zu
https://www.dinotools.de/2015/07/14/esp8266-01-power-consumption/
Danach weiter suchen und belesen. Ohne Ahnung wird das nicht besser.
Also Ahnung erzeugen :)
rgds
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.
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.
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.
> 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.
Stefan U. schrieb:> Wie kann das sein?
Ich habe das gerade nicht im Kopf...
Jemand hat hier so eine Schaltung gepostet.
UART und der Regler werden abgeschaltet.
Danach nimmt der ESP weniger als 5µA (~3,8µA).
> 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.
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?
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.
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.
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)