Sensorita - Hutschienen LCD Display für Sensoranzeige - Updated 21.03.2013 21:00

Heute wollte ich eigentlich meinen Sensorcontroller für das neue Terrarium zusammenbauen. Geplant war, in ein leeres Hutschienengehäuse den Arduino Micro, alle Steckeranschlüsse, das LCD-Display und 2 Buttons unterzubringen. Aber ich hab es einfach nicht hingekriegt, den ganzen Kram da so reinzukriegen, dass ich ihn im Fall der Fälle auch wieder herausbekomme. Tja. Somit habe ich umdisponiert und nur das LCD-Display und die beiden Buttons eingebaut. Auf die Leiterplatte habe ich auch die Pulldown-Widerstände für die Buttons und die Widerstände für den LCD-Anschluss drauf. Das Poti für die Kontrasteinstellung hab ich auch mit unterbringen können. Dann habe ich einen standardmässigen JST Stecker an 20cm Kabeln herausgeführt. Den Arduino mit den Sensoranschlüssen werde ich dann auf der Rückseite der Hutschienensteuerung unterbringen und mit dem o.g. Stecker verbinden.

Anbei Bilder vom LCD-Modul und von meiner Hutschienensteuerung. Auf der Vorderseite der Steuerung befindet sich eine Sicherung, die astronomische Jahresschaltuhr von Theben, das 4-Kanal-Erweiterungsmodul davon, ein Wechselschalter um zwischen Theben und Conrad-Uhr umzuschalten (der fehlt momentan, das ist die Lücke, Bestellung ist unterwegs), daneben eine einfache Conrad-Zeitschaltuhr, die für den Notfall gedacht ist, falls die Theben ausfällt (wobei die Conrad alle 8 Kanäle gleichzeitig schalten wird, während die Theben die Kanäle getrennt schaltet), daneben ein weiterer Wechselschalter, um zwischen Zeitschaltuhr oder manuellem Betrieb umzuschalten, daneben 8 Schalter für den manuellen Betrieb und letzlich die oben erwähnte Sensoranzeige.

Auf der Rückseite befinden sich links die Steckdosen für die 8 Schaltknäle, daneben ein paar Verteiler, dann eine Dauersteckdose (für den Worstcase, dass alle Steuerungsoptionen ausgefallen sind), ein 12V Netzteil, mit dem ich den Arduino (Sensorita) betreibe, und der u.U. auch einen Lüfter versorgen könnte.

Bild: LCD  auf Leiterplatte
LCD auf Leiterplatte (Jan. 25, 2013, 9:17 p.m.)
[Tags: terra2013 ] [Album: Terrarium ]
Bild: LCD Platte von unten
LCD Platte von unten (Jan. 25, 2013, 9:17 p.m.)
[Tags: terra2013 ] [Album: Terrarium ]
Bild: LCD im Gehäuse eingesetzt
LCD im Gehäuse eingesetzt (Jan. 25, 2013, 9:18 p.m.)
[Tags: terra2013 ] [Album: Terrarium ]
Bild: Fertiges LCD-Sensor-Anzeige-Gehäuse
Fertiges LCD-Sensor-Anzeige-Gehäuse (Jan. 25, 2013, 9:18 p.m.)
[Tags: terra2013 ] [Album: Terrarium ]
Bild: Steuerung von hinten
Steuerung von hinten (Jan. 25, 2013, 9:18 p.m.)
[Tags: terra2013 ] [Album: Terrarium ]
Bild: Steuerung von vorn
Steuerung von vorn (Jan. 25, 2013, 9:18 p.m.)
[Tags: terra2013 ] [Album: Terrarium ]


Update 26.01.2013 21:37:

Und hier noch ein Video von dem Teil in Aktion:

Man sieht, wie ich mit dem grünen Kopf durch die Untermenüs gehe. Und wenn ich eine Weile nix mache, geht es aus. Aktuell ist der Timeout natürlich noch recht kurz - zum Testen - später bleibt es eine Minute lang an.


Update 28.01.2013 21:47:

Heute habe ich 5 Sensoranschlüsse verlötet (4 x DS1820 Temperatursensor und 1 x LDR) und die entsprechenden Sensorkabel hergestellt. Leider ist einer der DS1820 kaputt (das herauszufinden, hat mich über 2 Stunden Debugging gekostet!). Anbei ein Video der Sensorita in Aktion:

Und ich hab noch 2 Fotos an das Posting gehängt. Auf dem Einen sieht man die komplette gerätschaft und auf dem anderen die Sensorkabel aus der Nähe (links der LDR, in der Mitte der Stecker und rechts der DS1820).

Bild: Sensoren angeschlossen und in Betrieb
Sensoren angeschlossen und in Betrieb (Jan. 28, 2013, 9:51 p.m.)
[Tags: terra2013 ] [Album: Terrarium ]
Bild: Ein Sensorkabel (mit DS1820)
Ein Sensorkabel (mit DS1820) (Jan. 28, 2013, 9:51 p.m.)
[Tags: terra2013 ] [Album: Terrarium ]


Update 29.01.2013 23:39:

Die Sensorita ist heute fertig geworden. War dann doch mehr Arbeit als erwartet. Aber lohnt sich. Anbei wie üblich das aktuelle Video der Endversion:

Die hohen Lux- und Watt-werte rühren daher, dass ich zum Testen einen 500 Watt Halegenstrahler angeschlossen habe. Die Hauptanzeige hab ich geändert, da werden jetzt alle Werte auf einmal dargestellt, bei der Temperatur der Durchschnitt. Mit dem grünen Knopf kommt man zu den Detailanzeigen. Dort werden dann jeweils noch Min- und Max-Werte hinzukommen.

Angeschlossene Sensoren: DHT22 (Temperatur und Luftfeuchtigkeit), Strom (Watt, Ampere, kwh), 4 x DS1820 (Temperatur) und eine Photodiode (Lux).

Ich habe auch mal den aktuellen Sourcecode hochgeladen. Ist noch nicht bei Github, kommt aber noch.


Update 10.02.2013 15:36:

Den Sourcecode habe ich nun endlich mal bei Github eingecheckt.


Update 10.02.2013 17:39:

Bei Github gibts jetzt ne neue Version, ich habe die Anzeige nochmal überarbeitet. Die Steuerung ist inzwischen auch im Terrarium eingebaut, siehe Foto. Ausserdem habe ich mal alle Anzeigemenüs fotografiert, damit man mal sieht, wie das ungefähr aussieht nachher. Der exorbitant hohe Stromverbrauch kommt von der angeschlossenen Testlampe (ein Halegenstrahler).

Bild: Eingebaut ins Terrarium
Eingebaut ins Terrarium (Feb. 10, 2013, 5:40 p.m.)
[Tags: terra2013 ] [Album: Terrarium ]
Bild: Alle Anzeigemenüs im Überblick
Alle Anzeigemenüs im Überblick (Feb. 10, 2013, 5:40 p.m.)
[Tags: terra2013 ] [Album: Terrarium ]


Update 01.03.2013 15:45:

Und hier die finale Ansicht, jetzt mit Beschriftung und Legende.

Bild: Steuerung fertiggestellt
Steuerung fertiggestellt (March 1, 2013, 3:45 p.m.)
[Tags: terra2013 ] [Album: Terrarium ]


Update 11.03.2013 12:10:

So, das Logging hab ich jetzt auch fertiggestellt. Ich wollte dafür ursprünglich meine noch vorhandene und derzeit nicht genutzte NSLU2 benutzen. Ich hatte die deshalb geöffnet und den seriellen Port mit einem Stecker verbunden und herausgeführt. Von einem Arduino aus konnte ich dann auch tatsächlich serielle Daten (via TTL) dorthin schicken. Das Problem war nur, dass das Gerät zu unzuverlässig ist. Zum einen ist es nach diversen Reboots nicht mehr hochgekommen, da musste ich jedesmal mit Redboot rumfrickeln. Ein Scheiss. Und zum anderen läuft unter Linux der serielle Read-Buffer voll, wenn man da Daten hinschickt und die keiner abholt und das ist nur per Reboot abzustellen. Dazu kann ich nur sagen: what the bloody hell?!

Also in die Tonne damit. Mir geht Linux mittlerweile sowieso nur noch auf den Zeiger. Aber sowas? Verdammtes Amateurgeraffel. Also ich verwende jetzt einen zweiten Arduino, den ich eigentlich für Testzwecke da hatte. Ich hab dem Teil einfach den Ethernetshield aus meinem Terraduinoprojekt aufgesteckt. Das hat dort sowieso nie richtig funktioniert und ich benutze es auch nicht mehr. RX und TX verbinden (witzigerweise musste ich TX nach TX und RX nach RX stecken, damit es geht, die Beschriftung ist falsch herum auf dem Teil!) und per Ethernet raus damit.

Source von Sensorita und dem Loggingmodul wie üblich bei Github.

Die Logdaten schickt das Etherlogmodul dann zu meinem Djangoserver, der es in der Datenbank ablegt. Ich schicke mehr Daten als MRTG nutzt, d.h. die tatsächliche Auflösung beträgt etwa 1 Datensatz pro Minute. Für MRTG wird aus diesen Daten ein Durchschnitt ermittelt. In den angehängten Screenshots sieht man die MRTG Graphen und auf der rechten Seite die aktuellen Sensorwerte. Im zweiten Bild sieht man die Rohdaten in der Datenbank.

Weiters habe ich herausgefunden, dass man mit der Obelisksoftware von Theben, mit der ich die Programmierung für die astronomische Jahresschaltuhr einstelle, einen CSV Export machen kann. Das hab ich natürlich sogleich ins Django eingebaut und so kann ich nun sehen, wann die einzelnen Kanäle gemäß Programmierung angehen werden. Sehr feine Sache, das.

Bild: MRTG und Datenanzeige
MRTG und Datenanzeige (March 11, 2013, 12:10 p.m.)
[Tags: terra2013 ] [Album: Terrarium ]
Bild: Sensorlogs in der Django DB
Sensorlogs in der Django DB (March 11, 2013, 12:10 p.m.)
[Tags: terra2013 ] [Album: Terrarium ]
Bild: Schaltzeiten der Theben Schaltuhr
Schaltzeiten der Theben Schaltuhr (March 11, 2013, 12:10 p.m.)
[Tags: terra2013 ] [Album: Terrarium ]


Update 12.03.2013 15:14:

Jetzt, wo ich die Sensordaten erstmal in der Datenbank habe, kann ich die natürlich auch überwachen. Da ich bereits Nagios einsetze, mach ich es damit.

Anbei zwei Screenshots aus meinem Nagios, einmal ohne und einmal mit (künstlichem) Alarm :) Und die SMS kann man auch bewundern :)

Bild: Nagios alles grün
Nagios alles grün (March 12, 2013, 3:15 p.m.)
[Tags: terra2013 ] [Album: Terrarium ]
Bild: Nagios ein Ausfall
Nagios ein Ausfall (March 12, 2013, 3:15 p.m.)
[Tags: terra2013 ] [Album: Terrarium ]
Bild: Nagios SMS bei Ausfall
Nagios SMS bei Ausfall (March 12, 2013, 3:44 p.m.)
[Tags: terra2013 ] [Album: Terrarium ]


Update 21.03.2013 21:00:

Nachdem das MRTG nun eine Weile läuft, habe ich inzwischen auch einen kombinierten Graphen, in dem alle Werte gleichzeitig angezeigt werden (im Bild links oben). Dadurch kann man sehr gut die Zusammenhänge zwischen verschiedenen Dingen erkennen.

Bild: DRRAW kombinierter MRTG Graph
DRRAW kombinierter MRTG Graph (March 21, 2013, 9 p.m.)
[Tags: terra2013 ] [Album: Screencaps ]

25.01.2013 20:49 CC0 Terrarium