derzeit realisiere ich ein Projekt, welches eine Klimaanlage per SMS ein- und wieder ausschalten soll. Dabei ist der Arduino mit einem SIM808 Modul verbunden. Auf bestimmte Codes die per SMS an das Modul gesendet werden, soll der Arduino mittels IR LED vordefinierte IR Codes senden. Bisher hab ich alles auf dem Breadboard aufgebaut und es funktioniert auch soweit.
Jedoch stellen sich mir noch einige weitere Fragen bevor ich nun anfange ein Gehäuse zu entwerfen.
Das Ganze ist mein erstes Arduino Projekt, welches wirklich ununterbrochen (24/7) und etwa 500km unbeaufsichtigt von mir entfernt laufen soll.
Beim Programmieren hab ich deshalb versucht den Code möglichst simpel zu halten:
alle 30 Minuten wird das SMS Modul vom Arduino aufgeweckt, abgefragt ob eine SMS eingetroffen ist: falls ja -> entsprechenden Code senden. Falls nein: -> wieder in den Sleep Modus schicken.
Dazu soll bei jedem mal Aufwachen die Temperatur mittels einem DHT22 gemessen werden. Sofern die Temperatur einen gewissen Schwellenwert überschritten hat, soll das Gerät eine SMS mit einem Hinweis versenden das ggf. ein IR-Code gesendet werden kann um die Klimaanlage wieder auszuschalten.
Ich sehe hier nun zwei Probleme:
Die Stromversorgung soll aufgrund des hohen Strombedarfs vom SMS Modul beim Empfangen über ein 12V Netzteil erfolgen. Mittels Step-Down Wandler möchte ich 5V in den Arduino speisen. Zwei Netzteile sind eigentlich nicht erwünscht, jedoch mache ich mir Sorgen über die Lebensdauer und den Wirkungsgrad des Step-Down Wandlers. Hat da jemand Erfahrungen, wie die halten?
Der Sketch soll mindestens mehrere Monate, besser noch ein ganzes Jahr durchgängig laufen. Kann man davon ausgehen, dass der Arduino das schafft? Ist es möglich ihn sicherheitshalber zu bestimmten Zeitpunkten zu rebooten?
Da Du Deinen Code geheim hälst, können wir über dessen Langzeitstabilität keine Aussage treffen.
Ein sauber programmierter Arduino läuft ewig, wenn nichts physikalisch abraucht.
Ist es möglich ihn sicherheitshalber zu bestimmten Zeitpunkten zu rebooten?
Das ist doch kein Windows.
Ein Reboot im Programm dient nur zur Verschleierung von schlampiger Programmierung.
Hier werkeln mehrere NANO seit über einem Jahr in der Gegend liegend und senden mir (alle 10 Sekunden) die aktuelle Temperatur auf einen CAN-Bus - OHNE WatchDog (beim NANO mit 'old bootloader' wohl auch keine so gute Idee - Der braucht dann ein echtes Reset oder ein AUS/AN).
Selber bin ich hier gute 2 Jahre angemeldet - früher wird's also nicht gewesen sein und der CAN-Bus ist auch erst entstanden (die Kabel lagen, klar, aber daß Es CAN wird, musste sich erst herausstellen).
Ein WatchDog schadet hier bestimmt nicht, wobei ich hier mit einem UNO das Problem hatte, daß eine 8-fach-Relais-Karte (vom freundlichem Chinesen) binnen einer Minute den UNO aufknüpfte - trotz WDT (bereits im setup() ) kein Reset. Hier vermute ich die Störungen von den Relais-Spulen - seit dem Umbau auf SSR tadelloser Lauf - zumindest wäre mir kein Reset aufgefallen ... und ich habe manche Stunde an der Heizung rumgeschraubt ... und es folgen wohl noch ein paar ...
Zu 1) Im November 2017 habe ich meine LED-Uhr mit StepDown hier vorgestellt, die läuft seit dem still vor sich hin.
Der Wert des Spindelpotis könnte sich ändern und Elektrolyt-Kondensatoren trocknen aus. Elektronik ist also keineswegs "verschleißfrei"1). Bei einer geplanten Laufzeit von über 20 Jahren würde ich mir ernstlich Gedanken machen. Möchtest Du also dem Voyager-Projekt (Voyager 1) nacheifern wollen, wäre die preisgünstige Ware eher ungeeignet.
Allerdings würde ich Netzteile eher großzügig auslegen.
Zu 2) Ein Arduino "schafft" das problemlos. Kritisch sehe ich eher die Software. Beispielsweise den I2C-Bus habe ich schon zum Blockieren gebracht. Auch sind Stromausfälle in D eher selten, aber statistisch bei 10 Minuten pro Jahr auch nicht auszuschließen. Alle Module sollten ein sauberes Reset-Signal bekommen.
Mehr Sicherheit bringen redundante Systeme, die Alarm schlagen, wenn sie zu unterschiedlichen Ergebnissen kommen. Wobei die über unterschiedliche Netze (D1, D2, ...) kommunizieren sollten.
alle 30 Minuten wird das SMS Modul vom Arduino aufgeweckt, abgefragt ob eine SMS eingetroffen ist: falls ja -> entsprechenden Code senden. Falls nein: -> wieder in den Sleep Modus schicken.
Kann das Modul im Sleepmodus SMS empfangen? Kann es wenn es aufgeweckt wird beim SMS Server um ausstehende SMS nachfragen?
Hallo,
die Module lassen sich in der Regel so konfigurieren, das sie bei SMS-Empfang aufwachen.
Die Temperatur würde ich in ein Fenster legen (x bis x Grad)
Wenn sie aus dem Ruder läuft, SMS senden- oder sonst etwas.
Gruß und Spaß
Andreas