Überwachung Kühlzelle

Hallo Leute,
ich würde gerne wieder mal ein neues Projekt starten. Vermutlich wird dieses meine Kentnisse weit übersteigen :slight_smile:

Vielleicht kann mir jemand helfen mal ein Konzept zu erstellen.

Ich möchte folgendes realisieren:
Wir haben eine Kühlzelle in einer Hütte die weit entfernt von unserem Wohnhaus liegt (Internet vorhanden).
Jetzt würde ich gerne überwachen ob die Kühlzelle läuft.
Dabei dachte ich aber nicht an eine thermische überwachung obwohl das schon cool wäre sondern erstmal nur an eine Überwachung der Stromabnahme, sollte es einen Stromausfall geben möchte ich das gerne wissen.

Hat jemand einen Tip wie ich das überachen kann und das für einen blutigen Anfänger auch umsetzbar ist.

Zur verfügung hab ich ein D1 mini oder ein UNO, ich hätte auch noch ein Nano aber mangels Netzwerkschnittstelle hierfür nicht zu gebrauchen.

Das ganze will ich dann über eine Website anzeigen damit ich den Status bequem ablesen kann.
In weiterer Folge möchte ich dann vielleich einen Temperatursensor einbauen und bei unterschreiten einer gewissen Temperatur eine Nachricht oder ein Emails senden.

Also vielleicht hab schonmal jemand sowas ähnlcih gebaut und kann mir ein paar ips geben, wem langes gescheibsel zumühsam ist würde icch mich auch schon über die wichtigen Stichworte freuen nachdenen ich mal das Internet durchforsten kann :slight_smile:

Danke euch schon im voraus für eure Hilfe.

Danke

Hallo,
ich würde einen Akku, plus Überwachung, mit in die Konstruktion einplanen, damit die Alarmanlage einen Status senden kann, wenn es zu einem Stromausfall kommt.

Das ist ein guter Hinweis!!

Wie soll der D1 was senden wenn er selbst stromlos ist aufgrund eines Stromausfalls :slight_smile:

Danke schonmal dafür.

Hallo
als Alternative zum Akku-Geschäft kann man einen entsprechenden Kondensator, PolyCap, wählen, der genug Energie bereitstellt um einmal die Alarmmeldung zu senden.

Vielleicht mach ichs jetzt doch mit der Temperatur da das deutlich einfacher ist weil ich damit schon bischen gespielt habe.

Vorschlag für Hardware:
D1 Mini (falls Wlan bei der Kühlzelle vorhaden, ansonsten ein UNO)
USB Netzteil für Stromversorgung
DSB18b20 als Temperatursensor (Wasserdichte Variante)
Kleines LED Display für die Stationäre Temp anzeige

Das mit dem Kondensator klingt cool, vermutlich auch einfacher zu realisieren als der Akku aber damit hab ich absolut keine Erfahrung, da würde ich auf jedenfall Hilfe benötigen bei der Auswahl der hardware und auch wie ich das verdrahten muss.
Und wenn ich jetzt so drüber nachdenke dann werde ich vermutlich beides prüfen müssen, weil wenn es einen Stromausfall gibt dann sinkt ddie Temperatur langsam und dann ist schon lange kein Strom mehr vorhanden :slight_smile:
Mit schrieben kommt kan immer wieder auf was drauf.

Das bedeutet ich würde gerne die Temperatur prüfen aber trotzdem zusätzlich die Stromversorgung, jetzt wirds aber wirklich kompliziert :confused:

Kann mir jemand sagen was ich für die Stromversorungsprüfung für Hardware benötige?

Programm:
Grundsätzlich stell ich mir das so vor das ich im Loop ständig die Temp anfrage und wenn diese einen voreingestellten Grenzwert unterschreitet eine Email sendent.
zusäztlich sollte immer die Sttromversorung geprüft werden und wennn diese Weg ist durch Stromausfall dann sollte das System eine Alarmemail senden.

Jetzt wird aus einem kleinen Projekt wieder ein kompliziertes Konstrukt, es ist immer das selbe :slight_smile:

Danke euch

Läuft das Wlan auch ohne Strom in der Hütte?

Wlan auch ohne Strom

Früher haben Telefone ihren Strom aus der Telefon-Leitung bekommen.
Und die Post (!) hat versucht nachzumessen, ob jemand heimlich zusätzliche Klingeln oder Böseres angeschlossen hat.

Ich sehe das Problem in der Stromversorgung.

Da Du über Internet die Daten senden willst mußt Du sicherstellen, daß das Internet bei Spannungsausfall auch funktioniert. Es genügt nicht nur Dein Projekt batteriebufferst, sondern Du mußt auch das Modem am funktionieren halten. Alternativ könntest Du über Händynetz die Daten senden.

Als Batterie könntest Du einen Bleiakku mit Dc/Dc Wandler. Alternativ eine LiPo mit Ladeplatine und BatterieSchutzschaltung nehmen. Da ist aber zu schauen ob der Mindeststrom fließt damit die Ladeschaltung nicht abschaltet.

Alles andere, Spannungsausfallkontrolle, Temperaturkontrolle ist nicht schwierig.

Grüße Uwe

Was du brauchst ist ein "lifebit". Zum Beispiel alle 5min die Temperatur messen und an einen Server oder sonst was senden. Dann brauchst du ein Script oder eine Logik die Alarm schlägt wenn entweder die Temperatur zu hoch ist oder z.B 3 Mal hintereinander keine Messungen mehr übertragen wurden.

Wenn der Strom/die Kühlzelle ausfällt brauchst du auch keine Temperatur mehr zu senden, dann musst du eh hinfahren..

Gruß

Danke euch alle schonmal für die vielen Antworten.

Ich habe wiedermal so viele Dinge nicht beachtet, ihr habt vollkommen recht, das Problem wird immer die Stromversorung sein und darum finde ich die Idee von Scherheinz genial einfach.

Genau so werde ich das erstmal machen.

Also Temperatur alle zb. 3 Minuten auslesen und auf einem externen Server in eine Mysql speichern.
Stromversorgung alle 3 Minuten prüfen und in eine DB auf dem externen Server speichern.

Also ich denke punkt eins bekomme ich vielleicht noch hin, da hab ich schon ähnliche Sachen gemacht, ist zwar schon ewig her aber das könnte hinhauen.

Punkt zwei aber nicht, kann mir da jemand mal sagen wie ich das messe und was ich für Hardware dazu brauche?

Jedenfalls vielen Dank euch, genau deswegen bin ich hierhergekommen, damit ihr mir die Augen öffnet wie unfähig ich bin etwas fertig zu denken :slight_smile:

Wenn du die Versorgungsspannung des Arduino messen willst gibt es viele Beispiele, einfach mal in der Suche eingeben.

Aber wenn du die 230V Versorgung überwachen willst, kannst du dir eine kleine USV für den Arduino basteln wenn du ihn eh per Akku betreiben willst. Oder noch einfacher ein 5V Schaltnetzteil in die Steckdose, Massen verbinden und die 5V auf einen Einganspin des Uno zum Beispiel.

Gruß

So Leute,
ich hab heute Nachmittag ein bischen was umgesetzt.

Ich hab einen D1 mini und nen DS18B20 auf nem Bredboard laufen und der sendet mit jetzt zum testen alle 10 Sekunden (Wird dann natürlich auf zb. 5 Minuten umgestellt) Datum, Temperatur, Sensorname und Ort an einen externen Webserver.
Dort speichere ich die Daten in einemr MySQL Datenbank.

Der Anfang ist getan.

Wie würdet ihr jetzt die Prüfung machen?
Ein Cronjob ruft alle 5 Minuten ein PHP Script auf und prüft ob in den letzten 15 Minuten 3 Einträge gemacht wurden, wenn nicht Sende ein Email? (Macht das überhaupt Sinn was ich da schreibe ? :slight_smile: )

traillight:
Wie würdet ihr jetzt die Prüfung machen?

thinkspeak https://thingspeak.com/ macht wohl einiges frei konfigurierbar.

Ich hoffe mich ereilt nicht das fegefeuer mit dem Hinweis auf den Dienst...

Ansonsten würde ich alle x Minuten in der DB nach dem letzten Eintrag suchen, dort Timestamp auslesen und weicht der um xxxx von der aktuellen Zeit ab, Alarmmail.

Oder zum D1 ein GSM-Modul und SMS.

Ich machs lieber auf meinem eigenen Server :slight_smile:

Also einfach nur eine Zeit prüfen ist denke icch zu wenig, kann ja sein das eine Datenübertragung mal nicht hingehauen hat oder sowas oder das Wlan mal kurz offline war oder das D1 keine Verbindung hatte.

Also 3 bis 4 Pings sollten schon rückwirkend geprüft werden damit das halbwegs vernünftig ausgeweertet wird.
Da ich zwei Kühlzellen habe mach ich das ganze auch zwei mal, also mit getrennter Hardware, dann kann ich dadurch auch nochmal einen Fehler an einem D1 ausschliessen, wenn beide den Heatbeat 3 oder 4 mal nicht gesendethaben ist entweder der Router abgesürtzt oder Stromausfall.

Wie ich mit php aber eine Sinnvolle auswertung mache hab icch mir noch nicht zusammengereimt.

Ich lese die Datenbank auf mit Limit 3 (also die letzten 3 Eintträge) und vergleiche den aktuellen Timestamp mit den letzten 3 Einträgen und wenn keiner über 15 Minuten alt ist ist alles ok?
Wäre das ein Ansatz?

traillight:
Ich machs lieber auf meinem eigenen Server :slight_smile:

Guter Mann :wink:

Ich lese die Datenbank auf mit Limit 3 (also die letzten 3 Eintträge) und vergleiche den aktuellen Timestamp mit den letzten 3 Einträgen und wenn keiner über 15 Minuten alt ist ist alles ok?
Wäre das ein Ansatz?

Nein nicht 3.
Lese den letzten.
Ist die Zeit des Eintrages älter als (xx Zyklen * Zykluszeit) ist was faul.
Nutze dafür einfach Unixtime. Dann hast keine Probleme mit Zeitzonen oder Sommer/Winter.
Die Zeit wird in der Tabelle durch den Server generiert -> Zeit des Eintrages.
Frage den Server nach seiner Zeit UND die Zeit des letzten Eintrages.
Vergleiche.
Reagiere.

Genauso hatte ich das auch gemeint, ohne jetzt genau zu wissen wie es in der Praxis umgesetzt werden kann. Also wenn du die Endlösung dann zeigen könntest, vorallem was die PHP Geschichte angeht, ware ich dankbar

Gruß

Danke XY ich glaub jetzt hab ichs dich :slight_smile:

Also ich lese den letzten Datensatz aus und prüfe ob der vom aktuellen Timestamp mehr als 15 minuten abweicht (zyklus sagen wir ist 5 Minuten) dann wurden 3 Heartbeats nicht empfangen.

Hab ichs jetzt kapiert :slight_smile: ?
Das sollte auch mit meinem begrenzeten Kentnissen einfach umzusetzen sein.

Aber in welchem Ryhtmus muss ich das dann aber über den Cronjob aufrufen lassen 5 Minuten oder 15 Minuten? (Hm jetzt bin ich schon wieder durcheinander)

Danke schomal für weitere Hinweise :slight_smile:

traillight:
Aber in welchem Ryhtmus muss ich das dann aber über den Cronjob aufrufen lassen 5 Minuten oder 15 Minuten? (Hm jetzt bin ich schon wieder durcheinander)

Danke schomal für weitere Hinweise :slight_smile:

Auf jeden Fall kleiner als 15min aber wie oft genau ist eigentlich egal. Die Zeit kommt kann halt zu den 15min noch obendrauf vorallem wenn kommen wenn es zwischen Arduino und deinem Server zu einem Zeitvesatz gekommen ist.

Gruß

traillight:
Hab ichs jetzt kapiert :slight_smile: ?

vermutlich :wink:

Aber in welchem Ryhtmus muss ich das dann aber über den Cronjob aufrufen lassen 5 Minuten oder 15 Minuten? (Hm jetzt bin ich schon wieder durcheinander)

Eigentlich recht einfach:
Ablaufplan
Abrufintervall=5Minuten
Reaktionszeit=10Minuten
Starte Abruf
var1: timestamp Eintrag
var2: aktualtime Server
var2-var1>Abrufintervall?
Ja - dann
{
Abrufintervall = 2Minuten
wenn var2-var1 > Abrufintervall + Reaktionszeit dann
a) -> Fehlermeldung
b) -> Status merken und nicht andauernd Fehlermeldungen senden
}
Nein - alles ok - Abrufintervall wieder 5 Minuten
Fang wieder an von vorn.

[edit] vielleicht ist es auch besser, das Abrufintervall 1 Minute mehr stehen zu lassen, als der Sensor sendet.
Also Sensor sendet 5 Minuten - Abruf 6 Minuten.
Dann läufst Du nicht Gefahr, das sich was überschneidet.

:frowning:
Was für eine Zeit ist Abrufintervall, das Intervall vom Eintragen oder der Intervall vom Cronjob der die Prüfsteie aufruft?
Was ist dann aber Reaktionszeit für ein Wert?

ich stell mich grad so ein bischen ***** an

Ich hab jetzt mal die Berechnung des Deltas vom letzten Eintrag und des aktuellen Timestamps.

	//Delta in Sekunden ausrechnen
	$delta = ($aktueller_tstamp - $last_heartbeat);

	//Delta Umrechnen in Minuten
	$delta = $delta / 60;

	// Vergangene Zeit seit dem letzten Heartbeat anzeigen
	echo "Letzter Heartbeat eingetragen vor: ".round($delta,2)." Minuten!";

EDIT: Könnte ich jetzt nicht einfach

if $delta > 15
schick email machen