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.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
> 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?
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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)
> In der Stromzufuhr eine Schaltur ... einschleifen.
Danke, endlich stehe ich nicht mehr ganz alleine mit diesem Vorschlag
da.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.