Go Down

Topic: NodeMCU im Dauerbetrieb (Read 392 times) previous topic - next topic

Tell_me_why

Hi,

Ich wollte ein NodeMCU im Dauerbetrieb 24/7 betreiben. Ist der Controller dafür ausgelegt? Brauch ich noch Hardware z.B. Kondensatoren oder ähnliches. Andere Frage wie ist es mit dem Wlan kann es passieren, dass der Controller plötzlich eine Störung hat und vom Wlan getrennt wird?

Mfg

combie

Bist du süchtig, nach Problemen?
Leider kann ich dir keine anbieten.
Du musst also heute ohne Sorgen ins Bettchen gehen.
Wer seine Meinung nie zurückzieht, liebt sich selbst mehr als die Wahrheit.

Quelle: Joseph Joubert

GreyDiamond

Ich habe seit ca. 1 Monat ein NodeMCU V1 im Garten liegen (verpackt, keine Sorge) der hat bis jetzt noch keine Probleme gemacht.
Gebt mir einen Hebel, der lang genug, und einen Angelpunkt, der stark genug ist, dann kann ich die Welt mit einer Hand bewegen. ~Archimedes

Tommy56

Ich habe mal einen WEMOS D1 mini pro 1,5 Jahre im Dauerbetrieb gehabt - keine Probleme.
Ein reconnect zum WLAN solltest Du einbauen, da ja auch mal Dein WLAN-Router sterben kann.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

Tell_me_why

Ein reconnect zum WLAN solltest Du einbauen
Hatte ich mal so versucht;

Code: [Select]

 if (WiFi.status() == WL_DISCONNECTED) {
    Serial.println("Verbindung verloren! Neustart...");
    ESP.restart();
  }


hat aber nicht geklappt. sobald das WLAN weg war hat er nichts mehr gemacht

postmaster-ino

Hi

Liegt ggf. daran, daß Du, statt 'disconnected' eher den Zustand 'broken' hattest?
Ein paar (Dutzend) Serial.print im Code lassen erahnen, wohin die Reise ging.

MfG
anscheinend ist Es nicht erwünscht, einen Foren-internen Link als 'Homepage' einzubinden, damit JEDER nur einen Klick von combie's Liste zum Thema State-Maschine entfernt ist.
... dann eben nicht ...

Tommy56

Probier doch mal das Gegenteil:
Code: [Select]

if (WiFi.status() != WL_CONNECTED) {
  // mache einen Reconnect
}


Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

noiasca

Ich wollte ein NodeMCU im Dauerbetrieb 24/7 betreiben. Ist der Controller dafür ausgelegt? Brauch ich noch Hardware z.B. Kondensatoren oder ähnliches.
da brauchst keine Sorgen haben, die Laufen grundsätzlich stabil. Einschränkung "grundsätzlich" weil es an dir liegt sauberen Code zu schreiben.

Extra Kondensatoren haben meine normalerweise nicht, schaden tun die aber auch nicht.
Einige über Micro-USB Netzteil, einige mit Step-Down Wandler und ein Sonoff-Touch seit einem Jahr und 3 Tage (Jul 27 2018 10:46:35) - außer den normalen Stromausfällen, hat der auch noch nie einen separaten Reset gebraucht (wäre auch blöd, weil der ist verbaut).

Und dein Code soll in der Lage sein, sich zu einem Wifi wieder zu verbinden, weil du damit rechnen musst, dass mal WLAN kurz weg ist und deswegen darf sich dein Code nicht aufhängen.
how to react on postings:
- post helped: provide your final sketch, say thank you & give karma.
- post not understood: Ask as long as you understand the post
- post is off topic (or you think it is): Stay to your topic. Ask again.
- else: Ask again.

Derfips

Ich habe mal einen WEMOS D1 mini pro 1,5 Jahre im Dauerbetrieb gehabt
Sowas hätte ich auch gerne mal erlebt!
Mein Sonoff Dual hat zuletzt irgendwas mit 127 Tagen geschafft, dann war wieder Stromausfall.
Kaum zu glauben, aber wahr, sieben Tage später ist hier eine Trafostation in Flammen aufgegangen.

Die Stromausfällen sind hier allgegenwärtig, wie am Mekong!


Gruß Fips

Meine Esp8266 & ESP32 Projekte => https://fipsok.de

amithlon

Hallo,

Die Stromausfällen sind hier allgegenwärtig, wie am Mekong!
Du hast aber schonmal darüber nachgedacht, warum Deine ESPs das Stromnetz zusammenbrechen lassen? ;)

Hier geistern ca. 15 ESPs als Sensoren, Aktoren, Wetteranzeige, Uhren mit NTP-Sync usw. rum.
Dauerlaufzeiten kann ich nicht anbieten, ich achte nicht darauf. Ausfälle durch die Hardware habe ich garkeine, Abstürze durch ungünstige Programmierung oder Experimente durchaus, alle möglichen Möglichkeiten bei WLAN, MQTT, Internet usw. sauber abzufangen und sinnvoll zu bearbeiten, kann dauern, bis es wirklich stabil ist. Etliches ist aber schon seit Jahren in Betrieb.

Gruß aus Berlin
Michael
 

noiasca

irgendwas mit 127 Tagen geschafft,
hättest da einen Zweizeiler für mich wie ich über das unsigned long Limit beim millis komme?
how to react on postings:
- post helped: provide your final sketch, say thank you & give karma.
- post not understood: Ask as long as you understand the post
- post is off topic (or you think it is): Stay to your topic. Ask again.
- else: Ask again.

Tommy56

Was hat das mit den 127 Tagen zu tun? Man könnte z.B. Sekunden/Minuten/Stunden/Tage zählen, mit dem Unix-Timestamp arbeiten oder uint64_t nutzen, wenn man unbedingt Millisekunden aufaddieren will.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

noiasca

die millis am nodemcu sind doch auch nur 32bit oder? also nehme ich an er hat was gemacht haben dass er auf 127 Tage kommt und den Rolllover nach 49,irgendwas mitbekommt.
how to react on postings:
- post helped: provide your final sketch, say thank you & give karma.
- post not understood: Ask as long as you understand the post
- post is off topic (or you think it is): Stay to your topic. Ask again.
- else: Ask again.

Tommy56

Also ich wußte es daher, dass ich alle 15 Minuten die Daten in eine MySQL-Datenbank geschrieben hatte (incl. Timestamp)

Welchen Weg Fips gegangen ist, weiß ich nicht, aber ein paar mögliche Wege habe ich Dir aufgezeigt. Evtl. hat er auch mit der NTP-Zeit gearbeitet.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

Derfips

#14
Jul 31, 2019, 03:16 pm Last Edit: Jul 31, 2019, 03:20 pm by Derfips
hättest da einen Zweizeiler für mich wie ich über das unsigned long Limit beim millis komme?
Gerne auch etwas mehr Zeilen?

Die Funktion "String runtime()" im Admin Tab.

Im loop mit
 
if (millis() < 0x2FFF || millis() > 0xFFFFF0FF) runtime();

aufrufen.

So ist sicher das die Funktion den Überlauf registriert.

Die Prüfung auf den Überlauf ist einfach, immer wenn die aktuelle millis() kleiner als die letzte millis() hat es den Überlauf gegeben.


Gruß Fips
Meine Esp8266 & ESP32 Projekte => https://fipsok.de

Go Up