… Balkonbox since 2008
Angefangen hat es mit einer Richtfunkverbindung um die Kabel-D Leitung von Bekannten mit zu nutzen, danach diente sie als erster Aussenposten, bestückt mit Sensoren, für die Haussteuerung mit dem Allnet-Funksteuercomputer, danach wurde sie lange Zeit nur als Gehäuse für die Parkplatz-Cam genutzt – jetzt soll in ihr wieder etwas mehr zur Sache gehen!
Ausschlaggebend für das Hardwareupdate ist die Aktion mit der Bewässerungsanlage und dem Wunsch, den Füllstand des Wasserkanisters zu überwachen.
Also nehme man:
- einen Raspberry Pi + Kameramodul als neues Gehirn und Ersatz für die China-VGA IP-Kamera (Aviosys)
- einen Arduino Nano für den Anschluss der Sensorik für Kanisterüberwachung und weitere Dinge
- Drucksensor für die Füllstandsmessung – den Günstigsten von Reichelt, der leider allerdings nicht so empfindlich ist – aber ausreichend (wird gleich erklärt)
- Nebenbei einen Tageslichtsensor (Licht-Spannungswandler, noch vorhanden – lag jahrelang im Keller rum) als besseren Lichtsensor für die Homematic-Installation
- Teile aus einem alten Blutdruckmessgerät (1 € Ebay) – unteranderem Mini-Luftpumpe (nur die Ruhe erzähle ich gleich was zu)
- Schlauch, übrig geblieben von Blumatset + T-Stücke
Ziel des Ganzen ist es die Messwerte der Sensoren in Homematic Systemvariablen zu speichern. Das habe ich mit folgendem Weg realisiert:
Sensor –> Arduino Nano <-USB-> Python-CGI Server auf RasPi <-LAN-> Homematic-Skript welches CGI-Skript pollt und Wert in Systemvariable speichert
Die Methode klappt sehr zuverlässig und nun jetzt schon seit 2 Woche ungebrochen. Sourcen möchte ich diesmal auch Teilen…
Kanister-Pegelmessung Hintergrundinfo zur Steigerung der allegemeinen Verwirrung:
Als Messmethode für den Füllstand des Kanisters wollte ich nicht sowas schnödes wie einen einfachen Pegelsensor verwenden 😉 Damit es spannend bleibt, habe ich mich für die Messung per Differenzdruck entschieden – deswegen auch die Miniluftpumpe und als Sensor einen Drucksensor am Arduino.
Die Methode ansich ist relativ schlüssig und auch so gesehen sehr simpel: Am Deckel des Kanisters wird ein Innenrohr (braunes Fallrohr aus dem Baumarkt) angeklebt (mit Silikon). Der Kanisterdeckel bekommt mittig einen Schlauanschluss für den Druckschlauch und im Aussenbereich (neben dem Innenrohr) noch einige kleinere Bohrungen zum Druckausgeleich für das entnommene Wasser der Bewässerungsanlage, damit kein Unterdruck im Kanister entstehen kann. Wichtig ist, dass diese Konstruktion sehr dicht ist, da der spätere Systemdruck im Rohr relativ hoch ist und die Klebestellen gerne nachgeben nach einiger Zeit. (Habe beim Schlauchanschluss mit Heißkleber diesmal schlechte Erfahrungen gemacht). Kanister wird normal befüllt und der Deckel samt Innenrohr aufgeschraubt. Praktischerweise denke ich gerade aber noch über eine separate Befüllungsöffnung nach, damit man nicht den ganzen Klumpatsch (Sensorkabel, Schlauch,…) immer wieder beim Aufschrauben des Kanisters strapaziert. Durch einen im Innenrohr befestigten Pegelsensor (selbstgebaut aber noch nicht perfekt) kann erkannt werden ob die Röhre frei von Wasser ist, was wichtig ist um den korrekten Druck zu messen. Vor einer Druckmessung pumpt die Minipumpe nun solange Luft in die Innenröhre, bis das gesamte Wasser aus ihr verdränkt wurde, was vom Pegelsensor erkannt wird, der die Pumpe abschaltet. Sollte vor der nächsten Messung die Röhre noch leer sein, bleibt dann logischerweise die Pumpe aus und es wird direkt gemessen. Der Druck, bei leerer Röhre, repräsentiert die Kraft des Wassers was auf die Luftsäule in der Röhre drückt. Je leerer der Kanister desto geringer der Gegendruck, je voller desto höher der Druck.
Der Arduino übernimmt die Steuerung dieser Aufgabe, schaltet die Pumpe entsprechend und liest die Sensoren. Der Drucksensor repräsentiert seine Messwerte mit einer Spannung von 0-5 Volt die über einen Analog (ADC) Port aufgenommen werden, genauso wie beim Tageslichtsensor (Licht-Spannungswandler) der ebenfalls linear zu gemessenen Helligkeit eine Spannung ausgibt.
Jetzt erstmal ein paar Eindrücke vom Umbau der Balkonbox:
Der Arduino-Nano auf einer Lochrasterplatine aus einem verworfenen anderen Projekt…
Der Licht-Spannungswandler, provisorisch angeschlossen
Rückseite der Platine mit dem Drucksensor
Kanisterdeckel mit angeklebtem Innenrohr
Bau „Luft“ Pegelsensor, unter dem Silikonring befindet sich ein Reedkontakt…
Der Schwimmer des Sensors: eine ehemalige IC-Transportverpackung, unten ein Stück Ferrit-Magnet aus einem alten PC Lüfter. Schwimmer wurde oben zugebrutzelt mitm Feuerzeug…
Kurzer Test des Pegelschalters…
Sensor wurde nun unten in das Innenrohr geklebt (vorerst mit Heißkleber, da ich momentan noch nicht 100 % überzeugt bin von meinem Pegelsensor – so bekommt man ihn im Gegensatz zu einer Silikonklebung nochmal ab…). Es gibt schon die Überlegeung den Wasserstand einfach mit 2 Elektroden zu messen – aber momentan noch keine Zeit gehabt es umzusetzen…
Jetzt geht es an das Innenleben der Balkonbox:
Die alte IP-Kamera ist schon rausgeflogen – hat jetzt seit 2008 einwandfrei funktioniert. Zweites Flachbandkabel hatte ich noch im Keller, so kann man noch was anderes mit der Kamera anfangen…
Pi wurde schonmal testweise angeschlossen – das alte Kamera Flachbandkabel war etwas zu breit für den Kamerasensor und wurde entsprechend aufgetrent. Die übrigen Kontakte dienen später dem Tageslichtsensor als Verbindungsleitung, der auch im kleinen Nebengehäuse bei der Kamera untergebracht wird…
Die Raspberry-Pi Kamera … im kleinen Nebengehäuse…
Das Ende der Flachleitung mit angelöteten Leitungen für den Lichtsensor
Oben links die kleine Pegelwandlerplatine von Sparkfun für den TTY Port des Pi’s (momentan nicht genutzt) und rechts die Pi-Coupler Platine an der der alte 1-Wire Temperatursensor angechlossen wurde, der auch noch in der Balkonbox vorhanden war (wird auch von der Homematic ausgelesen)
Erste Übersicht der Komponenten, unten links die Mini-Luftpumpe
So, nun ist alles soweit vorbereitet: die Sachen können wieder raus in die Wildnis!
Erstmal provisorisch verlegt…
So, der Hardwareteil ist ersmal erledigt – speziell die Sache mit dem Eigenbau-Pegelsensor im Kanister muss sich noch bewähren (bis jetzt siehts nicht gut aus für den Sensor: er neigt zum festhaken und schaltet somit nicht zuverlässig die Pumpe ab). Die Druckmessung liefert aber ansich schon klare Werte die sich gut abgrenzen lassen, so dass ich wenn demnächst mal wieder Zeit übrig ist, einen weiteren Beitrag mit der softwaretechnischen Ansteuerung veröffentlichen werde. (es wird nur mit „einfachstem Wasser gekocht“, da ich ja bekannterweise ja eher programmierfaul bin).
Hier ein Screenprint der Testseite auf der Dash-UI zur Anzeige der Messwerte:
Beim Lichtsensor werde ich auf eine Umrechnung der Skala in Lux verzichten, da es sowieso nicht sonderlich genau ist und nur der Schaltung von Lichtern dient. Bei der Skala des Kanisterdrucks möchte ich das gerne mal in Liter oder zumindest in Prozent umrechnen, damit es greifbarer wird.
Bis dahin, gute Nacht 😉