Automatische Bewäserungssteuerung

Grundidee

Bisheriger Ventilblock am Tomatenhaus

Bisheriger Ventilblock am Tomatenhaus

Zur Steuerung  der Bewässerung unseres Tomatenhauses setzte ich bisher eine einfache Zeitschaltuhr ein, welche mithilfe eines Netzteils ein einfaches 12V-Ventil steuert:

Zudem wurde von mir ein RGB-Stripe am Haus angebracht , welcher alles noch richtig in Szene setzte. Dieser wurde bereits mit einer selbst gebauten Arduino-Websteuerung gesteuert.

Diese beiden Elemente sollten nun in ein gemeinsames Steuerungskonzept einfließen. Neben einem Arduino standen natürlich auch zahlreiche weitere Plattformen, wie beispielsweise Raspberry PI zur Verfügung. Da ich jedoch zahlreiche Arduinos herumliegen habe und ich noch über kaum Kenntnisse zur Raspberry PI Programmierung verfüge, entschied ich mich dafür meine Projektidee mittels eines Arduinos und eines dazu passenden Ethernet-Shields umzusetzen.

Hardwarezuteilung

Die Steuerung soll dabei folgenden Komponenten bedienen:

  • Webinterface mittels eines Ethernet-Shields
  • Automatische Ansteuerung des Ventils
  • Erfassung der Flussmenge
  • Kontrolle des bereits montierten RGB-Stripes

Für die serielle Kommuniktion werden bereits die Pins 0 und 1 benutzt.

Durch das Ethernet Shield am Arduino Uno sind zudem die Pins  10, 11, 12 und 13 fest verbunden. Außerdem wäre für das Slave Select der SD-Karte auch  noch Pin 4 reserviert.

Da für die Ansteuerung des RGB Stripes 3 PWM-Ausgänge benötigt werden, wurden hierfür die Pins 3, 5 und 6 benutzt.

Zuletzt soll der Flussmengensensor über den interruptfähigen Pin 2 ausgewertet und das Ventil über Pin 7 angesteuert Werden.

Somit bleiben noch die Pins 8, 9 und eventuell noch 4 zur Verfügung.

Aufbau der Hardware

Fertige Steuerung, bestehend aus einem Arduino UNO, einem Ethernet-Shield, und der selbstgebauten Steuerungsplatine

Fertige Steuerung, bestehend aus einem Arduino UNO, einem Ethernet-Shield, und der selbstgebauten Steuerungsplatine

Die Steuerung wurde wie bereits erwähnt mit einem Arduino und einem dazu passenden Ethernet-Shield zusammengebaut. Die restlichen benötigten Funktionen wurden dann noch mit einem Selbstgebauten Shield ergänzt, welches bisher einen Step-Down-Converter zur Reduzierung der 12V Versorungsspannung auf die 5V des Arduinos, 3 Mosfets zum Betreiben des RGB-Stripes, Klemmleisten zum Anschluss der externen Komponenten und eine Stiftleiste mit welcher ein externes Simulationsgerät angeschlossen werden kann, besitzt.

Design des Webinterfaces

Das Webinterface spielt bei dem Projekt eine Zentrale Rolle – mit ihm können die gesamten Funktionen überwacht und gesteuert werden. Daher sollte auf das Webinterface ein besonderes Augenmerk gelegt werden.

Für eine gute Darstellung sowohl am PC als auch auf dem Smartphone  wurde daher auf jQuery Mobile als Clientseitiges Framework gesetzt:

Bewässerungssteuerung - Zustand

Zustand-Seite

Bewässerungssteuerung - Einstellung

Einstellung-Seite

Bewässerungssteuerung - Farbsteuerung

Farbsteuerung-Seite

 

 

 

 

 

 

 

 

 

 

 

 

 

Mit der Zustand-Seite kann der aktuelle Zustand der Bewässerung abgefragt werden. Neben der aktuellen  auf dem Gerät vorhandenen Uhrzeit kann der aktuelle Zustand des Ventils und die gemessene Flussmenenge dargestellt werden.

Bei der Einstellungen-Seite kann der Ventilmodus Dauer Auf, Automatik und Dauer Zu , die Startzeit  und Dauer der Bewässerung eingestellt werden. Um das Gerät vor einer ungewollten Änderung zu schützen ist zudem noch ein einfaches Passwort vorhanden.

Zuletzt kann mit der Farbsteuerung-Seite die Farbe des RGB-Stripes eingestellt werden. Zudem ist dies die einzige Seite, welche selbst ohne die jQuery Libraries durch ein HTML Formular bedienbar bleibt.

Test in der Simulationsumgebung

Simulationsteil des Testaufbaus - Frequenzgenerator, Arduino und einige Tiefpässe  Spielen der Steuerung vor sich wie in der echten Anwendung zu befinden

Simulationsteil des Testaufbaus – Frequenzgenerator, Arduino und einige Tiefpässe Spielen der Steuerung vor sich wie in der echten Anwendung zu befinden

Um die Steuerung im Betrieb testen zu können ohne dabei eine Überschwemmung zu verursachen, habe ich mir extra dazu eine Simulationsmöglichkeit geschaffen.

Dabei erzeugt ein Funktionsgenerator das Rechtecksignal, welches ansonsten der Flussmengensensor liefern würde. Die PWM-Ansteuersignale werden mit RC-Tiefpässen geglättet und ebenso wie das Ansteuersignal für das Ventil von einem weiteren Arduino erfasst.

Die Simulation wird dann mit dem Programm Labview gesteuert. Der Ansteuerungszustand des Ventils multipliziert mit der Sollflussmenge wird über ein PT1-Glied geführt, um einen verwascheneren Übergang der Durchflussmengen zu erreichen. Multipliziert mit dem Faktor 8,1 entsteht daraus die Signalfrequenz, welche vom Funktionsgenerator ausgegeben wird. Die geglätteten und danach eingelesenen Analogwerte der einzelnen Farben und verschiedene weitere Größen werden dann in der Oberfläche dargestellt. Da die Schreibfunktion für den Funktionsgenerator mehrere lange Pausen enthält musste ich die verschiedenen Programmteile in jeweils unterschiedlichen While-Schleifen ausführen lassen, unter denen Ich mittels globalen Variablen die Daten ausgetauscht habe. Mit diesem Trick blieb die Oberfläche trotz der großen Verzögerung immer noch ansprechbar.

Labview-Programm

Labview-Programm

Endergebnis und Ausblick

Mit dem Projekt konnte ich viel Erfahrung sammeln. Jedoch zeigt sich, dass der Interne Speicher des Arduinos mit meinem bisherigen Programm bereits fast randvoll gefüllt war und somit kaum noch Spielraum für Erweiterungen bleibt. Das Einbinden einer Speicherkarte wäre sicherlich eine Möglichkeit zur Lösung dieses Problems, jedoch würde das den Arduino deutlich inperformanter machen.

Daher plane ich in Zukunft dem Arduino nur noch Stell- und Steuerungsaufgaben über das Netztwerk zuzuteilen. Die Verwaltung kann dann ein Heimautomatisierungssystem wie openHAB weches beispielsweise auf einem Server oder Raspberry PI läuft übernehmen. Damit sollte der Entwicklungsaufwand drastisch sinken, aber die Performance und Nutzbarkeit deutlich steigen.

Gesamtüberblick über das System

Gesamtüberblick über das System mit angeschlossenem Simulator und RGB-Stripe

Schreibe einen Kommentar