Inhaltsverzeichnis
Pflanzenbewässerung
Autor: Thomas Reininghaus Titel: "IoT Austria Projekt Pflanzenbewässerung" Status: Community Projekt Projektstart: 2016.06.30
Publikationsziele
- Dokumente Quickstart, HowTo und Stückliste für eine einsatzfähige minimale Ansteuerung einer Pflanzenbewässerungsanlage
- OSD Wiki Eintrag mit Quickstart, HowTo und Stückliste
- OSD Wiki Eintrag mit optionalem Ausbau der Pflanzenbewässerung
- OSD Wiki Einträge mit konkreten Problemlösungen im Zusammenhang mit Pflanzenbewässerungsanlagen
- OSD Github Repository mit Beispielcode der die einzelnen Anwendungsfälle realisiert
- OSD Github Repository mit Code für eine Anwendung, welche die Anwendungsfälle benutzerfreundlich zusammenfasst
Lösungsziele
Vermeidung
- Austrocknung Pflanzen
- Überwässerung Pflanzen
- Tauchpumpenprobleme
- Fördert Luft (Wasser verbraucht oder Wasserstand zu niedrig)
- Springt nicht an
- Wasserschaden
- Frostschaden
Sicherstellung
- (Kinder)sicherheit/-festigkeit
- elektronische Verriegelung Touch Pad
- Dichtheit (IP54 oder mehr) für elektrische Isolierung der wasserführenden Teile
Community Projekt Events
KickOff Event „IoT Workshop June 2016: Pflanzenbewässerung Community Projekt“
am 22.06.2016 fand der KickOff Event „IoT Workshop June 2016: Pflanzenbewässerung Community Projekt“ statt siehe Meetup Event Seite inkl. Fotos
Hier gibt es die Slides zum Workshop
Die vier Teile des Workshops gibt es auch als Videos zum Nachschauen. Die Videos wurden von Michael Ebner (IoT Vienna) zur Verfügung gestellt.
Youtube Playlist mit allen vier Teilen
- Teil 1: Thomas Reininghaus (IoT Austria) spricht über die neuesten Entwicklungen im Verein und die Vereinsprojekte im Zusammenhang mit dem Community Projekt Pflanzenbewässerung.
- Teil 2: Thomas Reininghaus (IoT Austria) zeigt live den Entwicklungsstand der ersten Version der Bewässerung an Hand von zwei Hardware Versionen.
- Teil 3: Wolfgang Sokol (Institut für Hydraulik und landeskulturelle Wasserwirtschaft, WAU, BOKU) präsentiert erste Resultate einer Messung des open Hardware Bodenfeuchte Sensors von Mic und es werden Ausbauvarianten der Bewässerung besprochen.
- Teil 4: Johannes Dobler stellt seine Eclipse Windows IDE für Contiki als, ohne Installation lauffähiges, Archiv vor.
Workshop Nachfolge Event
Der Nachfolge Event im kleinen Rahmen (max. 12 Personen) findet am Fr 08.07.2016 14-18 Uhr im ersten Stock des Lokals „im Hof“ ohne Reservierung statt
Weyringergasse 36, 1040 Wien mail@im-hof.at T +43 (0)1 929 44 38 http://im-hof.at/
Es soll ein zwangloses Treffen sein um über eure Pläne und Projekte im Zusammenhang mit der Bewässerung zu sprechen. Ich werde meine Merkurboards und Programmer sowie die Ventilbox mit haben und an den im Workshop besprochenen Erweiterungen arbeiten. Jeder kann nur zusehen oder selbst an seinem Projekt arbeiten und meine Hilfe in Anspruch nehmen.
Anwendungsfälle und -szenarien
Vorführ-Szenario Community Projekt Workshop June 2016
Zur Zeit können die Anwendungsfälle mittels coap-client und folgende REST Resourcen auf der Kommandozeile bedient werden (wer möchte ein Mobile UI machen?).
Mit der Software guh ist geplant ein Browser basiertes Benutzerinterface auf einem Handy/Tablet zur Verfügung zu haben.
- done: Ich will einen Bewässerungsvorgang jetzt vor Ort (hier bei den Pflanzen) starten/stoppen
- done: Ich will einen Bewässerungsvorgang jetzt ortsunabhängig starten/stoppen
- done: Ich will, falls ich vergessen habe den manuell gestarteten Bewässerungsvorgang zu stoppen, dass die Bewässerung das automatisch nach einer einstellbaren Zeit tut
- Ich will den Touch Button Sensor aktivieren/deaktivieren (dient als Kindersicherung)
- done: Ich will die Uhrzeit für den Start des zeitgesteuerten (täglich einmaligen) Bewässerungsvorganges einstellen
- done: Ich will die Laufzeit in Sekunden für einen manuell oder zeitgesteuert gestarteten Bewässerungsvorgang einstellen
- Ich will den automatischen zeitgesteuerten Bewässerungsvorgang aktivieren/deaktivieren
- done: Ich will ortsunabhängig nachsehen, ob gerade ein Bewässerungsvorgang läuft
- Ich will ortsunabhängig nachsehen, wann die letzten Bewässerungsvorgänge gelaufen sind
externe Voraussetzungen
zeitabhängige Wassermenge
Derzeit wird von einem nicht regelbaren Ventil zur Wasserfreigabe ausgegangen. Das heisst, dass das Ventil beim Start ganz geöffnet wird und nur die Wasserzufuhr durch ihren Leitungsdruck und die angeschlossenen Schlauchsysteme mit ihren Durchmessern, Längen, eventuellen Verzweigungen und Öffnungen die pro Zeiteinheit austretende Wassermenge bestimmen (wie bei der klassichen Tröpfchenbewässerung). Somit wird die gesamte bei einem einzelnen Bewässerungsvorgang freigegebene Wassermenge von der Zeit zwischen Start und Stop bestimmt. Reguliert wird daher durch die Änderung der Bewässerungsdauer eines Bewässerungsvorgänges und/oder durch die Änderung der Anzahl der Bewässerungsvorgänge.
Benutzerinterface Ideen
Der Mensch hat ein gutes Gefühl für seine Pflanzen und ihre Bedürfnisse. Daher wird ausgehend von einer ungefähren Zeitangabe für die Regulierung der Wassermenge nur ein großer Drehregler zur Verfügung stehen, um die Wassermenge zu erhöhen oder zu verringern. Je nach angeschlossener Sensorik, kann das System die eingehenden Informationen benutzen um die vom Menschen gewünschte Wassermenge unter den, von den Sensoren gemessenen und als real angenommenen, Bedingungen auch tatsächlich zu erreichen.
Die weiteren möglichen Ausbaustufen:
Weitere Eingriffsmöglichkeiten sollen dahingehend bestehen, dass die Anzahl der Gießvorgänge pro Zeitintervall (z.B.: täglich/wöchentlich…) und die bevorzugten Tageszeiten (z.B.: nach Sonnenaufgang/vor Sonnenuntegang/Nacht…) angegeben werden kann.
Ausnahmen sollte der Mensch immer machen können. Daher soll man die nächsten paar, in die Zukunft vorgeschlagenen Gießvorgänge, jederzeit individuell stornieren können.
Bestandteile
Fixe Bestandteile:
- dichte Box mit Steckernetzteil zur Stromversorgung
- Ventil
- Ventilsteuerung
- Merkur Board
- Relaisboard (Powerboard)
- 230V Anschluss über Steckernetzteil
Optionale Bestandteile:
- Tauchpumpe
- Heizung
Sensoren/Aktoren:
- Touch Pad Sensor
- Bodenfeuchte
- „sich verbrauchende“
- Kapazitive
- Luftfeuchte
- Regen
- Temperatur (f. Frostwächter, kann der Temperaturfühler am Merkurboard dafür verwendet werden?)
- Wasserstand (im Brunnen/Regenfass)
- Durchflusszähler (Erkennung Leckage oder Ventilschaden/Fehlöffnung)
- externe Web Sensoren
- e.g. ZAMG Werte (Feuchte/Regen/Gewitter)
- Astronomic Timer z.B.: zur Erkennung von Sonnenaufgang/Untergang
- Uhrzeit
- interne Uhr synchronisiert über coap und REST Resource
- Echtzeituhr (z.B.: DCF77 Funkuhr)
- NTP Synchronisation
Ventil
- 230V Magnetventil (Sicherheitsbox notwendig aber trotzdem nicht kindertauglich)
- 24V Wechselstrom Magnetventil (Hunter oder Gardena in der Box mit 24V AC Netzteil an 230V extern)
- solarbetriebene Versionen einer Balkon/Terassen-Tröpfchenbewässerung
- Das motorbetriebene Heizungsventil mit Merkurboard aus dem Projekt "HeizLux" von Marcus Priesch
- Das 9V Magnetventil von Gardena mit dem Merkurboard in der Box (Ansteuerung mittels PWM über den Chinch Stecker)
Steuerungsvarianten
- Manuell gesteuert
- Start (Ventil öffnen) und Stop (Ventil schliessen)
- ortsunabhängig: Rest Ressource für Start und Stop
- vor Ort: Einbindung Touch Pad als Wechselschalter für Start/Stop
- Zeitgesteuert
- automatischer Timeout nach manuellem Start
- Regelmäßig Z.B.: Zwei tägliche Intervalle mit Start und Stop Zeit
- Regengesteuert
- Bodenfeuchtegesteuert
- geigneten Kapazitiven Sensor finden
Projektvarianten
Gartenbewässerung:
Voraussetzungen: Alles muss frostsicher ausgelegt sein, 230V an der Pumpe vorhanden Als Pflanzenerde können alle Arten von Erden vorkommen (Lehm, Torf, Humus, Sand…)
Optionen: Brunnenbewässerung mit Tauchpumpe
Terassen(Balkon)bewässerung:
Voraussetzungen: Alles bis auf das Bewässerungsventil und das ansteuernde Relaisboard kann im Innenraum betrieben werden und muss daher nicht frosticher sein und kann ohne Aufwand mit Netzstrom versorgt werden.
Als Pflanzenerde kommen überwiegend Humusartige Topfpflanenzenerden zum Einsatz
Optional:
Auch das Bewässerungsventil und das ansteuernde Relaisboard können im Winter abgebaut werden und müssen nicht frostsicher sein.
Optionen: Regenfassbewässerung mit Tauchpumpe
Innenraum-taugliche Topfpflanzenbewässerung:
Mit einer kleinen Aquariumpumpe, Batterien/Solarpanel und mit einer Flasche/Schläuchen und einem Schlauchverteiler könnte man mehrere Zimmerpflanzen mit dem Merkurboard versorgen.
Tests
Heizungstest in der Tiefkühltruhe mit Schockgefrierprogramm
Vorführ-Anlage Community Projekt Workshop June 2016
Realisierungsziele
So wie das OSDomotics Haus blinken muss, muss die Pflanzenbewässerung sprudeln. Die einfachsten Anwendungsfälle sollen vollständig gezeigt werden.
Anwendungsfälle
Bestandteile Hardware
- Autonome Steuerung
- Abzweigdose IP54/65 für PowerBox8
- Schutzkontaktkupplung Gummi 230 V Schwarz IP20 für Anschluss Aquariumpumpe
- PowerBox8 bestehend aus
- Grove Shield 4 (Grove Relay Shield)
- Grove Touch Button (ähnlich wie dieser)
- Relay Board 8
Relay Board 8 Bezugsquelle 1 (last accessed 09.07.2016)
Relay Board 8 Bezugsquelle 2 (last accessed 09.07.2016)
- Minicomputer als Boarder Router und Datenlogger bestehend aus
- Olimex A20-OLinuXIno-LIME2 mit Sarahbox v2 Image
- Merkur-Connect USB-Stick (6loWPAN-USB-Stick)
- Netzwerkkomponenten für die Verbindung zur Aussenwelt
- WLAN Access Point
- Switch
- (optional) Android Device als WLAN Bediengerät
- Vorführinstallation Tröpfchenbewässerung (Herbert Bucheggers Spezialanfertigung)
- Aquariumpumpe 230V
- Tröpfchenbewässerung Schlauchsystem mit zwei manuellen Austrittsreglern
- Gastro Servierbehälter transparent
- Zwei Stück „unzerstörbare“ plastik Aquariumpflanzen für Dauertests der Bewässerung
Bestandteile Software
- REST Resourcen
- Event Resource Touch Button Sensor mit der Methode GET
- Event Resource Remote Button Sensor für Fernschaltung mit den Methoden GET und POST
- Firmware Information, bestehend aus Version und Name mit den Methoden GET
- Hardware Information, bestehend aus Model mit den Methoden GET
- Bewässerungsdauer (gleichzeitig Timeout) als rebootfeste EEPROM Variable mit den Methoden GET und POST
- Bewässerung tägliche Startzeit hh:mm als rebootfeste EEPROM Variable mit den Methoden GET und POST
- Aktor Relais 1-4 zum abfragen und schalten mit den Methoden GET, POST und PUT
- Aktor LED zur Anzeige, ob die automatische Bewässerung aktiv/inaktiv ist mit den Methoden POST und PUT
- Aktor LED Wechselschalter mit den Methoden GET, POST und PUT
- Sensor CPU Temperatur für eventuelle Frostwächterfunktion mit der Methode GET
- Sensor Batterie für eventuelle Batterie- oder 230V Netzüberwachung mit der Methode GET
- aktuelles Datum und Uhrzeit um die interne Zeit des Merkurboards zu setzen mit den Methoden POST und PUT
- Contiki Erbium CoAP server
- Contiki Main Loop mit Event Dispatcher
Alternativ (optional)
- Arduino Sketch mit Main Loop
- Arduino Resourcen
- Sensor Grove Touch Button
Fernsteuerung der Anlage
Hier ein Beispiel Script für mein Ubuntu Notebook um die Anlage zu erreichen
#!/bin/sh # ideen:pflanzenbewaesserung, Thomas Reininghaus # Vorbereitung für coap client Aufrufe zur Steuerung der Pflanzenbewässerung # IPv6 Netz für die beiden Merkur Boards (Boarder Router und Powerbox) # Ohne IPv4 Adresse klappt's auf meinem Ubuntu nicht daher ip addr add 192.168.0.100/24 dev eth0:0 # Dem Notebook eine passende IPv6 Adresse geben ip addr add abbb::ba27:ebff:fed5:4242/64 dev eth0 # Route zur Sarahbox legen ip route add default via abbb::ba27:ebff:fed5:438a
Hier ein Beispiel Script um die Anlage zu initialisieren. Ohne das Script ist die Bewässerungsdauer auf 0 Sekunden gestellt.
# Jetzt die Anlage auf aaaa::221:2eff:ff00:343c initialisieren # Datum und Uhrzeit setzen date +%s | coap-client -t text/plain -f- -m put 'coap://[aaaa::221:2eff:ff00:343c]:5683/clock/timestamp' # Bewässerungsdauer auf 10 Sekunden setzen coap-client -m POST -e time=10 coap://[aaaa::221:2eff:ff00:343c]:5683/a/wat_dur # Start Uhrzeit der automatischen Bewässerung setzen coap-client -m POST -e tods=11:55 coap://[aaaa::221:2eff:ff00:343c]:5683/a/wat_tods
Hier ein Beispiel für die Fernsteuerung: Den Touch Button remote auslösen
~$ coap-client -m POST coap://[aaaa::221:2eff:ff00:343c]:5683/a/remote_button
Well Known Resources
~$ coap-client -m get coap://[aaaa::221:2eff:ff00:343c]:5683/.well-known/core </.well-known/core>;ct=40 </a/wat_dur>;title="Watering durationsec., POST time=XXX";rt="Control" </a/wat_tods>;title="Watering start time of day, POST tods=hh:mm";rt="Control" </a/relay>;title="RELAY: ?type=1|2|3|4, POST/PUT, POST/PUT mode=on|off";rt="Control" </p/model>;title="model";rt="simple.dev.mdl" </p/sw>;title="Software Version";rt="simple.dev.sv" </p/name>;title="name";rt="simple.dev.n" </s/button>;title="Irigation Start/Stop Button";obs </a/remote_button>;title="Remote button";rt="simple.act.rbutton";obs </a/led>;title="LED: POST/PUT mode=on|off";rt="simple.act.led" </a/toggle>;title="Red LED";rt="Control" </s/battery>;title="Battery status";rt="Battery" </s/cputemp>;title="CPU Temperature";rt="simple.sen.tmp" </clock/timestamp>;title="Time";rt=UCUM:"s";ct="0 5" </clock/localtime>;title="Local time";rt=UCUM:"formatted time";ct="0 5" </clock/utc>;title="UTC";rt=UCUM:"formatted time";ct="0 5"