Hydroponisches System selbstgemacht (DIY – Do it yourself)

Es wird ein Niederdruck Aeroponiksystem, weil es dafür sehr viele Anleitungen (alle auf englisch) gibt und weil es nicht so hochkomplex wie ein Hockdrucksystem ist, aber dennoch gute Ergebnisse liefert.

Einkaufen, bohren, sägen, kleben, …

Eurobehälter - sehr stabil und lichtdicht, Größe 60 (B) x 40 (L) x 42 (H) cm
Eurobehälter – sehr stabil und lichtdicht, Größe 60 (B) x 40 (L) x 42 (H) cm

Die Basis des Systems besteht aus einer Plastikkiste, welche die Nährlösung enthält und damit das Reservoir ist. Wir bauen ein einfaches System, d.h. dass das Reservoir auch gleichzeitig die Netztöpfchen beherbergt, welche mit Substrat und den Pflanzen gefüllt sind. Im Reservoir befinden sich auch die Wasserpumpe und die Sprühdüsen, welche die Wurzeln mit der Nährlösung versorgen. Eurobehälter eignen sich für diese Zwecke phantastisch. Sie sind sehr stabil und verformen sich nicht. Sie sind auch lichtdicht. Fällt Licht in die Nährlösung, bietet das die Möglichkeit für unerwünschtes Algenwachstum im Wasser und entnimmt damit der Nährlösung wertvollen Sauerstoff. Das ist nicht ganz so schlimm, da es sich ja um ein aeroponisches System handelt und die Wurzeln damit vollständig in der Luft hängen und mit einem Luftstein mit Sauerstoff versorgt werden. Zudem könnten Algen aber auch die feinen Sprühdüsen verstopfen und Lichtundurchlässigkeit ist ja nicht schwer zu erreichen.

Aquarienpumpe Eden 57179 128
Aquarienpumpe Eden 57179 128

Da wir ja der Einfachheit halber ein Niederdrucksystem bauen, reicht eine einfache Aquarienpumpe aus. Die Dimensionierung der Wasserpumpe ist leider keine Wissenschaft und so müssen Erfahrungswerte gesammelt werden. Die Förderleistung der Aquarienpumpe Eden 57179 128 etwa liegt bei max. 1150 l/h, die max. Förderhöhe bei rund 2 m. Damit kann die Pumpe einen Druck von 0,2 bar aufbauen (1 m Förderhöhe entspricht 0,1 bar). Für unser Szenario – wir werden 6 Pflanzen in unserem Kasten  mit 6 Sprühdüsen im Wurzelbereich bewässern – genau richtig. Hier gilt, lieber ein bisschen Druck mehr, als zu wenig. Die Leistung der Pumpe ist verstellbar und wir kommen mit der niedrigsten Leistung schon zurecht.

Luftpumpe - Die AP-10 ist nicht wohnzimmertauglich aber für outdoor oder wenn Geräusch keine Roll spielt, gut zu gebrauchen
Luftpumpe – Die AP-10 ist nicht wohnzimmertauglich aber für outdoor oder wenn Geräusch keine Roll spielt, gut zu gebrauchen

Da die Luftpumpe nicht das Wasser mit gelöstem Sauerstoff anreichern muss, sondern die Luft um die Wurzeln herum, reicht z.B. das Set AP-10, bestehend aus Pumpe, Schlauch und Luftstein völlig aus. Die Pumpe fördert 1,3 l Luft pro Minute. Natürlich handelt es sich nicht um reinen Sauerstoff, sondern nur um frische Luft, die von der Pumpe angesaugt wird. Allerdings ist die Pumpe nicht ganz leise. Wer eine wirklich leise Luftpumpe will, greift vielleicht zur Chialstar, einer Aquarienpumpe für Aquarien bis 80 Liter. Laut den Bewertungen ist sie wirklich, wirklich leise und verbraucht wie die AP-10 sehr wenig Leistung.

Lochbohrer - man sollte nicht an der Qualität sparen; hartes und dickes Plastik lässt sich nicht so leicht durchbohren
Lochbohrer – man sollte nicht an der Qualität sparen; hartes und dickes Plastik lässt sich nicht so leicht durchbohren

Wie kommen die Löcher für die Netztöpfe in die Eurobox? Mit einem Lochbohrer. Auch hier sollte man nicht am Geld sparen. Die Eurobox ist aus recht dickem Plastik, welches sich nicht so leicht durchbohren lässt. Auch eine Herausforderung: Das Loch soll genau so groß sein, dass das Netztöpfchen hinein passt, aber nicht hindurch rutscht. Wenn das Loch zu klein geraten ist, kann man den Rest des Deckels abfeilen – anstrengend. Wenn es zu groß geworden ist, kann man einen Plastikrand aus Plastikmüll der Wahl – Cuttermesser ist Dein Freund – zurecht schneiden, welcher dann mit kleinerem Durchmesser als das zu groß gebohrte Loch das Netztöpfchen halten kann. Man messe also den Außendurchmesser des oberen Netztopfrands und kaufe den dazu passenden Lochbohrer. In den meisten Fällen bekommt man ein ganzes Set.

Blähton - DAS Substrat der Hydrokultur
Blähton – DAS Substrat der Hydrokultur
Der Netztopf
Der Netztopf

Der Netztopf und das Substrat ersetzen in der Hydroponik die Erde. Oder sagen wir Netztöpfchen, denn der abgebildete Container hat nur einen Durchmesser von 5 cm. Warum groß, wenn es auch klein geht? Es dient lediglich dazu, dass die Pflanze Halt findet und im Medium – wir nehmen Blähton – stehen kann. Wie der Name schon sagt, bildet der Netztopf ein Netz mit reichlich offenen Stellen, durch die die Wurzeln heraus wachsen können und das Substrat und die Wurzeln befeuchtet werden können.

PVC-Rohre - Was Trinkwasser unter großem Druck transportieren kann, ist auch für unsere Zwecke gut
PVC-Rohre – Was Trinkwasser unter großem Druck transportieren kann, ist auch für unsere Zwecke gut

Für die Verrohrung sind der Phantasie keine Grenzen gesetzt. Alleine um PVC-Rohre miteinander zu verbinden, gibt es unzählige Möglichkeiten. Für unsere Zwecke interessant sind Endkappen zum Abschluss von Rohren, natürlich Rohre, T-Stücke, Bögen und auch Schläuche. Die Art der Verrohrung ist davon abhängig, welche Abdeckung man beim Sprühen erreichen möchte. Doch man kann es auch übertreiben und so eignet sich eine durch die Mitte verlaufende Verrohrung wunderbar zur völlig zufriedenstellenden Bewässerung und Ernährung unserer Pflanzen. Der Rohrdurchmesser an der Pumpe muss sich an dem Pumpenausgang orientieren. Die Überleitung zu kleineren Rohren erfolgt mittels eines Reduzierstücks.

Sprühdüse in PVC-Rohr geklebt - so umgeht man die Geheimwissenschaft des Gewindeschneidens
Sprühdüse in PVC-Rohr geklebt – so umgeht man die Geheimwissenschaft des Gewindeschneidens

Die professionelle Variante wäre eigentlich, mit einem Gewindeschneider ein passendes Gewinde in das PVC-Rohr zu schneiden und die Sprühdüse dann in das Rohr zu schrauben. Doch dazu muss man erst die Geheimwissenschaft des Gewindeschneidens erlernen. Zunächst einmal gibt es nicht viele geeignete Sprühdüsen, die sehr feine Strahlen erzeugen, um unsere Wurzeln zu ernähren. Eigentlich sollten sie ja Nebel erzeugen. Doch Sprühdüsen oder so genannte Nebeldüsen, die dies für den Niederdruckbereich versprechen, halten ihr Versprechen nicht. Bevor man jetzt alle Sprühdüsen der Welt ausprobiert, kann hier verraten werden, dass die Düsen aus dem Gardena Micro-Drip-System ganz gut geeignet sind. Sie erzeugen sehr feine Strahlen. Da gibt es einmal die Packung mit 5 x 360° Sprühdüsen und es gibt die Packung mit 5 x 180°. Da das Gardena Micro-Drip-System die Baumärkte erobert hat, sind sie auch lokal nicht schwer zu finden. Nur, woher soll man wissen, welchen Gewindetyp diese Düsen haben, damit man den passenden Gewindeschneider verwenden kann? Bleibt nur zu hoffen, dass die Düsenhersteller da offener werden und mehr Informationen heraus rücken. Klar ist ein geschlossenes System vielleicht erst einmal profitabler. Andererseits, wer macht sich gerne von einem Hersteller abhängig? Aber auch die Produktbeschreibungen von anderen Düsen sind in dieser Hinsicht nicht ergiebiger.

Sprühdüsen geklebt

Bequemer als mit der Bohrmaschine Löcher in die PVC-Rohre zu bohren und dann die Sprühdüsen dort hinein zu kleben ist es vielleicht, wie im Bild oben die Sprühdüsen in einen PVC-Schlauch zu bohren, dann allerdings auch zu kleben. Abhängig von der Dicke des Schlauchs muss man einiges an Kraft aufbringen, die Düsen hinein zu schrauben, nachdem man mit etwa einem Vorbohrer Löcher an die entsprechenden Stellen gebohrt hat. In dem Bild oben kann man keine Pumpe erkennen. Das liegt daran, dass die Wasserpumpe von einem sehr feinmaschigen Neylonnetz – eigentlich wäscht man darin Wäsche – umgeben ist. Dieses Netz filtert gröbere Stoffe, falls doch einmal etwas wie Wurzel- oder Erdereste, Schmutz- oder Bauteilchen ins Wasser fallen sollten, heraus, so dass die Sprühdüsen nicht verstopfen können.

Poly MAX glasklar (oder weiss) express - ein sehr flexibler und guter Kleber
Poly MAX glasklar (oder weiss) express – ein sehr flexibler und guter Kleber

Als Kleber dient sehr gut der UHU Poly MAX glasklar (oder weiß) express. Er absolut wasserfest und permanent elastisch und witterungsbeständig. Obiges Bild entstand nach etwa 4 Wochen Dauergebrauch der fertig fabrizierten aeroponischen Box und obgleich der Kleber etwas gelblich geworden ist, ist er immer noch absolut wasserdicht und alles Wasser wird nur durch die Düsen gesprüht. Der Kleber ist permanent elastisch, d.h er ist fest genug, um seine Funktion zu erfüllen, kann aber auch leicht wieder entfernt werden. Sehr geeignet also, um Prototypen zu bauen, die man aber auch dauerhaft benutzen kann. Auch die Halterung, die die Endkappe des Schlauchs (Bild oben) trägt und an jede Seite des Eurobehälters geklebt wird, hält bei aller Flexibilität bombenfest, und das nach 4 Wochen Dauerbesprühung.

Ernährung

Pflanzen in Erdekultur leben nicht von der Erde, sondern von darin enthaltenen chemischen Elementen und Verbindungen. Seitdem die Wissenschaft Pflanzen aus der Erde isoliert und genau untersucht hat, welche Nährstoffe das sind, kann man das natürlich auch zu anderen Zwecken wie Hobby oder Kommerz tun.

Nährstoffe in der Hydroponik - genau das, was die Pflanzen brauchen: Chemische Elemente und Verbindungen
Nährstoffe in der Hydroponik – genau das, was die Pflanzen brauchen: Chemische Elemente und Verbindungen

Für unsere hydroponische Kiste nehmen wir die Nährstoffe Aqua Vega von Canna für Pflanzen in Hydrokultur in der Wachstumsphase. Es gibt auch die Aqua Flores für Pflanzen in Hydrokultur in der Blütephase. Für den Anfang reichen erst einmal Grünpflanzen, es sei denn, du willst dich direkt auf Erdbeeren stürzen. Bevor wir weiter in den Vergleich von Nährstoffen verschiedener Hersteller eintauchen: Die Benutzung des Canna Düngers ist sehr einfach, da der PH-Wert, einmal und anfänglich justiert, nach Angaben des Herstellers und wie von Benutzern bestätigt wurde, nicht mehr angepasst werden muss. Zur Kontrolle und für Zweifler kann zwar der PH-Wert regelmäßig gemessen werden, aber nötig ist das laut Hersteller nicht mehr.

Uuuund Action …

Sprühdüsen in Action
Sprühdüsen in Action

Oben sieht man die aeroponische Besprühungsmaschine in Action. Man sieht auch eine Styroporverkleidung um das Reservoir herum. Ein Thema ist bei hydroponischen Verfahren immer die Kühlung der Nährlösung im Sommer und die Erwärmung der Nährlösung im Winter. Eine nicht zu warme Temperatur hält den Gehalt an gelöstem Sauerstoff in der Nährlösung aufrecht. Styropor als Temperaturisolierung kann keine Temperaturschwankungen verhindern, aber bildet eine Temperaturbarriere. Wird im Sommer die Nährlösung etwa durch eine Flasche Eiswasser (die kostengünstigste Variante der Kühlung) gekühlt, entweicht diese Kühlung schwerer nach außen und gleichzeitig dringt die warme Temperatur schwerer nach innen. Eine Isolierung ist die kostengünstigste Variante, um für die optimale Temperatur zu sorgen und sollte zuerst realisiert werden.

So sehen die Wurzeln nach einer Woche Aeroponik nach dem Verpflanzen aus Erdekultur aus
So sehen die Wurzeln nach einer Woche Aeroponik nach dem Verpflanzen aus Erdekultur aus
Nach 3 Wochen bereits kann man den Netztopf ob des Wurzelwachstum nicht mehr herausziehen
Nach 3 Wochen bereits kann man den Netztopf ob des Wurzelwachstums nicht mehr herausziehen

Das Wurzelwachstum bescheinigt dem System gutes Funktionieren. Die Wurzeln wachsen stark und gut. Man sieht keine verfaulten, sondern weiße Wurzeln, d.h. dass sie Sauerstoff, Wasser und Nährstoffe haben. Wir haben also einiges richtig gemacht. Bereits eine Woche nach dem Verpflanzen von Perilla, umgangssprachlich Sesamblatt, von Erde- in Hydrokultur bilden sich neue weiße Wurzeln. Zwei Wochen später sind die Wurzeln wesentlich vermehrt und bis zum Boden des Reservoirs 35 cm in die Tiefe gewachsen.

Beobachten

Die Kiste läuft, die Pflanzen wachsen, die Blätter schmecken. Doch es gibt auch während des Betriebs einige Parameter im Auge zu behalten.

  • EC (Electrical Conductivity – Elektrische Leitfähigkeit) – Je höher der Nährstoffgehalt ist, desto höher ist die Leitfähigkeit der Nährlösung. Dieses Prinzips bedient man sich, um die Nährstoffkonzentration zu messen. Canna empfiehlt eine Leitfähigkeit von 1,1 bis 1,9 mS (Millisiemens). Wer diesen Wert per Hand auslesen will, kauft sich ein entsprechendes Messgerät. Manchmal möchte man vielleicht auch mehrmals am Tag den Wert lesen. Nach einem heißen Tag etwa verdunstet viel Wasser und dadurch erhöht sich die Konzentration. Pflanzen mögen es aber nicht zu salzig und wenn der Höchstwert überschritten wird, nehmen sie zu wenig Wasser zu sich. Andererseits sinkt der Wert auch, wenn Pflanzen Essen fassen und so muss ab einem bestimmten Wert Futter hinzugefügt werden. Wie dieser Wert automatisiert ausgelesen und bequem im Wohnzimmer mit einem Blick erfasst werden kann, ist weiter hinten im informationstechnischen Teil zu lesen.
  • PH-Wert – Spielt zwar dank unseres Canna Düngers keine große Rolle mehr, aber professionellerweise gehört die Messung dazu. Allerdings reicht für unserem Fall eine einfache Messung, da wir grundlegend auf den Hersteller Canna vertrauen.
  • Temperatur der Nährlösung – Je kühler desto mehr Sauerstoff ist im Wasser gelöst. Besonders in Systemen, in denen die Wurzeln vollständig im Wasser schwimmen, ist die Menge des gelösten Sauerstoffs extrem wichtig. Nur ein bisschen höhere Temperatur lässt diese Menge erheblich sinken. Bei unserem aeroponischen System ist das zwar nicht so wichtig, da die Wurzeln sich in der Luft befinden. Eine Temperaturmessung ist aber einfach und es kann schnell mit einer Flasche Eis entgegen gesteuert werden
  • Genügend Licht – wäre natürlich wünschenswert
  • Kontrolle, ob die Pumpe läuft – das lässt sich durch Überwachung der Feuchtigkeit des Substrats kontrollieren

Diese Werte öfter zu kontrollieren kann in Arbeit ausarten und der Job schreit nach Automatisierung. Technik muss man mit Technik begegnen. Dazu weiter im informationstechnischen Teil des Artikels. Wer die Arbeit nicht scheut, kann dies aber auch manuell überwachen.

Weiter einkaufen, basteln, programmieren

Jetzt kommt der informationstechnische Teil. Wer an dieser Stelle per Hand weiter machen will, dessen System ist jetzt fertig, jedenfalls die erste Version. Es gibt natürlich endlose Verbesserungen bzw. Erweiterungen. Alle anderen erfahren, wie die wichtigen Parameter automatisiert erfasst werden, so dass man diese Größen einfach im Auge behalten kann. Der Vorteil von erdelosen Kulturverfahren ist das große Maß an Kontrolle, welche man über den Wachstumsprozess erhält. Bewässerung, Wärme-, Nährstoff-, und Sauerstoffzufuhr, Beleuchtung und Freiheit von schädlichen Organismen bleiben nicht mehr dem Zufall überlassen, sondern können gezielt hergestellt und beeinflusst werden. Hydrokultur schreit nach Automatisierung. Doch bevor alles automatisiert wird, von der Messung bis hin zur Steuerung der Nährstoffzufuhr, dem Auswechseln des Wassers und dem Essen der Pflanzen, muss zuerst gemessen und müssen Erfahrungswerte gebildet werden.

Arduino Mega

Arduino Mega 2560 kompatibler SainSmart Mega2560
Arduino Mega 2560 kompatibler SainSmart Mega2560

Der Arduino ist ein sehr beliebter Microcontroller unter den Makern. Dank seiner Popularität gibt es sehr viele Schaltungen und Programme (Sketches) und man findet sehr viele Informationen zu Projekten. Es gibt ebenso viele Sensoren und Bauteile. Bei aller Bequemlichkeit darf man nicht vergessen, dass man die Prinzipien natürlich mit etwas Aufwand auch auf jeden beliebigenen anderen Microcontroller übertragen kann. Sensoren können auch an andere Microcontroller angeschlossen werden und Programme laufen mit etwas Änderungsarbeit auch dort. Allerdings ist die Programmierung des Arduino oder des Arduino kompatiblen Mikrocomputers (oder auch Ein-Chip-Computersystem) sehr einfach. Die Angebotene C++ Programmierschnittstelle lässt schnell Sensoren auslesen und Informationen verschicken und Dinge wie Motoren steuern. Zudem ist auch der Speicher zu begrenzt, als dass komplexe Software programmiert werden könnte. Für unsere Zwecke nehmen wir den Arduino Mega 2560 kompatiblen SainSmart Mega 2560. Der Mega verfügt über eine große Anzahl von frei konfigurierbaren Pins, an denen Sensoren ausgelesen, mit Spannung versorgt oder andere Bauteile gesteuert werden können. Für einen sagenhaften Preis von schlappen 15 Euro ist er deiner. In der Praxis erweist sich der SainSmart als völlig Arduino kompatibel und man kann im Vergleich zum originalen Arduino Mega doch eine Menge Geld sparen.

EC- und Temperatursensoren selbst gebaut

Unser EC-Sensor: ein Rasierer Netzkabel, oder Amerika-Stecker, passt an Kleingeräte-Buchse C7
Unser EC-Sensor: ein Rasierer Netzkabel, oder Amerika-Stecker, passt an Kleingeräte-Buchse C7
Der Temperaturfühler DS18B20 in der wasserdichten Version zur Kontrolle der Nährlösungstemperatur
Der Temperaturfühler DS18B20 in der wasserdichten Version zur Kontrolle der Nährlösungstemperatur

Erste Herausforderung: Wie realisieren wir unseren EC Sensor, um die elektrische Leitfähigkeit der Nährlösung zu überwachen? Geniale Lösung: Das 3 Dollar EC Messgerät. Eine einfachere und günstigere Lösung, diese Werte nicht manuell, sondern automatisiert zu erfassen, muss erst gefunden werden. Benötigt wird unser Arduino, ein Rasierer Netzkabel oder Amerika-Stecker, eine dazu passende C7 Buchse, ein Widerstand, ein paar Steckverbindungen und ein wasserdichter Temperaturfühler DS18B20. Einfach zusammenstecken, den Code auf den Arduino laden und fertig. Der Autor Michael Ratcliffe hat sogar eine Lösung gefunden, den Temperaturfühler ohne Pullup Widerstand verwenden zu können. Dazu müssen die von ihm zum Download angebotenen modifizierten Libraries OneWire und Dallas Temperature in die Arduino IDE eingebunden werden. Oder man realisiert es eben mit Pullup Widerstand und nimmt die offiziellen Libraries.

Arduino Versuchsaufbau mit EC und Temperatursensor
Arduino Versuchsaufbau mit EC und Temperatursensor

Damit hätten wir auf einen Streich nicht nur den EC Wert überwacht, sondern auch die Temperatur der Nährlösung. Letzterer Wert fließt in die Berechnung des EC in der Temperaturkompensation ein, denn die Temperatur beeinflusst den EC und muss heraus gerechnet werden, um einen temperaturneutralen Wert zu haben. Keine Sorge, das tut alles der Code und dieser muss nur auf den Arduino hochgeladen werden. Die Kostenersparnis mit der Methode von Ratcliffe ist sensationell. Kauft man sich ein manuelles EC Messgerät, bezahlt man alleine 40 bis 50 Euro. Ein entsprechender Sensor von AtlasScientific kostet da 60 Euro. Das ist auch nicht die Welt aber was möchte man nach einem Defekt lieber austauschen, einen defekten Temperaturfühler oder  ein Rasierer Netzkabel oder einen Chip für 60 Euro? Und das ist ja auch nur ein kleiner Bestandteil unseres Systems. Wir werden später noch auf die Kosten eines hydroponischen Systems zu sprechen kommen.

Feuchtigkeitssensor

Billig Feuchtigkeitssensor aus China, mehr Funktionen als der Seeed Studio Grove - Feuchtigkeitssensor und hält genauso lang
Billig Feuchtigkeitssensor aus China, mehr Funktionen als der Seeed Studio Grove – Feuchtigkeitssensor und hält genauso lang
Korrodierter Seeed Studio Grove - Feuchtigkeitssensor nach 4 Wochen Dauerbetrieb
Korrodierter Seeed Studio Grove – Feuchtigkeitssensor nach 4 Wochen Dauerbetrieb

Wir müssen unbedingt auch kontrollieren, ob unsere Pumpe noch funktioniert. Dazu überwachen wir die Feuchtigkeit in einem Netztöpfchen mit einem Feuchtigkeitssensor. Das tun wir am besten mit einem Billig Feuchtigkeitssensor aus China. Wirklich korrosionsfreie Bodenfeuchtesensoren sind uns zu teuer und nehmen wir die billigsten, um die Sensoren nach erfolgter Korrosion wegwerfen zu können. Wofür einen 10 Euro teuren (mit teurem Verbindungskabel) Seeed Studio Grove Feuchtigkeitssensor kaufen, wenn er genauso schnell und gründlich korrodiert wie ein Billigsensor? Zudem haben die Sensoren nach der Bauart des abgebildeten China Teils Zusatzfunktionen, nämlich das digitale Auslesen (feucht oder nicht feucht) und die Regelung der Empfindlichkeit des Sensors. Die Lebensdauer lässt sich allerdings erhöhen, indem man nur Strom beim Messvorgang wirken lässt und indem man möglichst selten misst. Warum sollte man alle paar Sekunden messen? Alle 5 Minuten geht voll in Ordnung. Um die Lebensdauer zusätzlich zu erhöhen, wickeln wir den Feuchtigkeitssensor in nicht faulbares Material ein, damit das Substrat nicht die Oberfläche zerkratzt, denn hier handelt es sich ja nicht um sanfte Erde, sondern raue Steinchen.

Zusätzliche Sensoren im Arduino Sketch einbinden

Zum Einbinden des Feuchtigkeitssensors und zusätzlicher Sensoren, die das Herz begehrt, kann der Sketch von Ratcliffe als Basis genommen und erweitert werden. Nachfolgend wird das Muster zum Einbinden von Sensoren im Arduino Sketch anhand des Feuchtigkeitssensors erklärt. Zunächst werden freie Pins mit sprechenden Namen deklariert:

int MoistureReading = 0;
int MoisturePin = A8;
int MoistureGround = A9;
int MoisturePower = A10;

In der setup() Methode wird der Modus für die Pins festgelegt und der Erde Pin zur Senke gemacht:

pinMode(MoisturePin,INPUT);
pinMode(MoistureGround, OUTPUT );
pinMode(MoisturePower, OUTPUT );
digitalWrite(MoistureGround, LOW );

Wenn der Wert nun in loop() gemessen werden soll, legt man Spannung am Spannungspin an, wartet 100 ms (der Chinasensor ist etwas träge) und liest den Wert aus und setzt die Spannung anschließend wieder auf 0, um den Sensor wieder in Ruhe zu lassen

digitalWrite(MoisturePower,HIGH);
delay(100);
MoistureReading = analogRead(MoisturePin);
digitalWrite(MoisturePower,LOW);

Raspberry Pi als Ansprechpartner

Raspberry Pi 3 Model B - der aktuelle Rechenwinzling-Liebling der Maker-Community
Raspberry Pi 3 Model B – der aktuelle Rechenwinzling-Liebling der Maker-Community

Jetzt wollen wir aber auch langsam etwas sehen, und zwar im Browser. Zunächst einmal im eigenen Heim. Dafür brauchen wir wenigstens einen minimalen Webserver und dafür brauchen wir wenigstens einen minimalen Computer, den man auch richtig programmieren kann. Einer, der ordentlich Speicher und Rechenleistung hat, wenigstens genug für unsere Absichten. Der geeignete Rechner hierfür ist der Raspberry Pi, mittlerweile in der Version 3. Natürlich tut es auch ein älteres Modell, etwa nur mit einem Prozessor und 512 MB Arbeitsspeicher. Mittlerweile gibt es zwar auch andere Minirechner, die in Konkurrenz zum Raspi treten, aber ebenso wie beim Arduino ist die Informationsfülle an Software- und Bastelprojekten für den Raspi beachtlich. Wobei der Raspi natürlich auch nur ein Computer mit ganz normaler standardisierter Hardware und einem Betriebssystem wie Linux oder mittlerweile sogar auch Windows 10 ist. Andere Minirechner gehen also auch. Die billigste Verbindung des Arduinos mit dem Raspi – vor allem hinsichtlich des Aufwands – ist die serielle Schnittstelle über USB. Einfach das zum SainSmart mitgelieferte USB Kabel anstecken und fertig. Um den Raspberry mit dem WLAN zu verbinden, kaufen wir uns einen EDIMAX EW-7811UN WLAN USB Adapter und installieren ihn auf dem Pi. Wer einen alten Pi benutzt, hat nun keinen freien USB Port mehr, denn zwei Ports sind nun durch den WLAN Adapter und die serielle Verbindung zum Arduino besetzt. Für unsere Zwecke OK, denn wir brauchen nicht mehr USB Ports.

Sensordaten auslesen und in eine SQLite Datenbank schreiben

Wir installieren zuerst pyserial auf dem Pi, eine Python Schnittstelle zur seriellen Schnittstelle. Im Progrämmchen prüfen wir, welches die richtige Device Adresse für unseren verbundenen Arduino ist und bauen mit dieser Adresse eine Verbindung mit der Geschwindigkeit 9600 Baud auf (der Sketch arbeitet mit derselben Geschwindigkeit).

Falls die Datenbank noch nicht existiert, wird sie mit einem Index auf die Datumsspalte erzeugt. Wir schreiben 5 Parameter: Datum, Temperatur, EC, Helligkeit und Feuchtigkeit.

Als Kommunikationsmuster geben wir dem Arduino ein Signal, dass wir etwas haben wollen und der Arduino überträgt uns daraufhin aufgefordert seine Werte. Aus irgendwelchen Gründen kommt unser System durcheinander, wenn etwa der Arduino unaufgefordert pausenlos sendet. Wenn der Arduino aber reagiert und nur gefragt antwortet, läuft die Übertragung ewig. Hier ist der Leidensweg zur aufgeforderten Kommunikation beschrieben, der dir jetzt erspart bleibt.

import serial
import time
import re
import sqlite3

for com in range(0,4):
  try:
    PORT = '/dev/ttyACM'+str(com)
    BAUD = 9600
    board = serial.Serial(PORT,BAUD)
    board.close()
    break
  except:
    pass

DEVICE = '/dev/ttyACM'+str(com)
BAUD = 9600

s = serial.Serial(DEVICE, BAUD, timeout=3)
time.sleep(5) # der Arduino resettet nach einer Seriellen Verbindung, daher muss kurz gewartet werden
conn=sqlite3.connect('mydatabase.db')
cursor=conn.cursor()

sql = 'create table if not exists sensordata (time timestamp default current_timestamp, temp real not null, ec real not null, light int not null, moisture int not null)'
result = cursor.execute(sql)
sql = 'CREATE INDEX IF NOT EXISTS idx_sensordata_time ON sensordata (time ASC)'
cursor.execute(sql)

def send_and_receive( theinput ):
    s.write( theinput )
    while True:
        try:
            time.sleep(0.01)
            line = s.readline()
            return line
        except:
            pass
    time.sleep(0.1)

while True:
    response = send_and_receive('1')
    numbers = re.findall(r"[-+]?\d*\.\d+|\d+", response)
    if len(numbers) == 6:
            temp = numbers[3]
            ec = numbers[1]
            light = float(numbers[4])
            moisture = numbers[5]
            result = cursor.execute("INSERT INTO sensordata (time, temp, ec, light, moisture) VALUES (datetime('now','localtime'), {temp}, {ec}, {light}, {moisture})".format(temp = temp, ec = ec, light = light, moistur$
            conn.commit()
    time.sleep(300)

Sensordaten in den Browser bringen mit Flask

Um die Sensordaten aus der SQLite Datenbank auszulesen und im Browser darzustellen, nehmen wir Flask, ein Mikro Web Anwendungsframework. Das Mikro steht nur für die minimale Kernfunktionalität, die man aber erweitern kann. Ohne viel Aufwand können wir mit Flask mit ein paar Zeilen arbeiten, nachfolgend dargestellt am Beispiel der Feuchtigkeitsdaten

from flask import Flask, Response, g, render_template
import sqlite3
import json
import time

conn=sqlite3.connect('../mydatabase.db')
cur=conn.cursor()
app = Flask(__name__)

@app.route("/")
def get_index():
        global rows
        time_range = int(time.mktime(time.localtime())) - (60*60*72)
        time_range_str = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time_range))
        query = "SELECT strftime('%s', time) as timestamp, temp, ec, light, moisture from sensordata  WHERE time > DATETIME('{time_range}')".format(time_range = time_range_str)
        cur.execute(query)
        rows = cur.fetchall()
        return render_template('index.html')



@app.route('/get_moistures', methods=['GET'])
def get_moistures_json():
        return_array = []
        m_rows = rows[len(rows)/2:]
        for row in m_rows:
                timestamp = int(row[0])
                moisture = row[4]
                return_array.append({'x': timestamp, 'y': moisture})

        response = Response(json.dumps(return_array))
        return response

if __name__ == "__main__":
        app.run(host='0.0.0.0', port=80)

Das ist der komplette Python Code, um den Flask Server zu starten, sehr angenehm minimal. Man braucht nur die IP Adresse des Pi im Browser einzutippen und Enter zu drücken und es wird die get_index() aufgerufen. In dieser Methode werden die Datenbankwerte der letzten 72 h in eine globale Variable gelesen und das Template index.html aufgerufen (das Standard Template Verzeichnis ist templates). Die Methode get_moistures_json() wird von einem JavaScript per Ajax vom index.html Template aus aufgerufen

Hier die View. Du musst dir die D3 und die darauf aufbauende Rickshaw JavaScript Library zum Zeichnen unserer Graphen herunter laden

<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="{{url_for('static', filename='css/rickshaw.min.css')}}">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script type="text/javascript" src="{{url_for('static', filename='js/d3.v2.js')}}"></script>
<script type="text/javascript" src="{{url_for('static', filename='js/d3.layout.min.js')}}"></script>
<script type="text/javascript" src="{{url_for('static', filename='js/rickshaw.min.js')}}"></script>
<style>
    .hor_box{
        float:left;
    }
    .chart_container {
        position: relative;
        font-family: Arial, Helvetica, sans-serif;
        margin: 30px 0;
        padding-right: 100px;
    }
    .chart {
        position: relative;
        left: 40px;
    }
    .y_axis {
        position: absolute;
        top: 0;
        bottom: 0;
        width: 40px;
    }
</style>
</head>
<body>
    <div class="container">
        <div class="hor_box"><h2>Temperatur (*C)</h2>
            <div class="chart_container">
                <div class="y_axis" id="temp_y_axis"></div>
                <div class="chart" id="temp_chart"></div>
            </div>
        </div>
        <div class="hor_box"><h2>EC (mS)</h2>
            <div class="chart_container">
                <div class="y_axis" id="ec_y_axis"></div>
                <div class="chart" id="ec_chart"></div>
            </div>
        </div>
        <div class="hor_box"><h2>Helligkeit</h2>
            <div class="chart_container">
                <div class="y_axis" id="light_y_axis"></div>
                <div class="chart" id="light_chart"></div>
            </div>
        </div>
        <div class="hor_box"><h2>Feuchtigkeit</h2>
            <div class="chart_container">
                <div class="y_axis" id="moisture_y_axis"></div>
                <div class="chart" id="moisture_chart"></div>
            </div>
    </div> <!-- /container -->
<script>
    var graph = new Rickshaw.Graph.Ajax( {
        element: document.querySelector("#moisture_chart"),
        width: 540,
        height: 240,
        min: 200,
        max: 600,
        dataURL: '/get_moistures',
        onData: function(data) {
            return [{
                name : "Moisture",
                color: "steelblue",
                data: data
            }];
            // or simply return [data[0].strokeVolume_count]; since it looks like a series object already
        },
        onComplete: function() {
            var x_axis = new Rickshaw.Graph.Axis.Time({
              graph: this.graph
            });
            x_axis.graph.update();
            var hoverDetail = new Rickshaw.Graph.HoverDetail( {
                graph: this.graph
            } );
            var y_ticks = new Rickshaw.Graph.Axis.Y( {
                graph: this.graph,
                orientation: 'left',
                tickFormat: Rickshaw.Fixtures.Number.formatKMBT,
                element: document.getElementById('moisture_y_axis')
            } );
            this.graph.render();
        }
    } );
</script>
</body>
</html>

Warnprogramm

Das dritte Progrämmchen muss der eifrige Hydroponik Meister schreiben, damit man die Werte nicht nur ansehen, sondern auch rechtzeitig darauf reagieren kann. Man könnte etwa Emails bekommen, wenn ein Wert eine Schwelle über- oder unterschreitet. Oder man lässt sich alarmierendere Signale einfallen.

Das Ergebnis auf einen Blick

Sensor Daten auf einem Blick im Browser
Sensor Daten auf einem Blick im Browser

Temperatur

Und so sehen die Sensordaten auf einen Blick im Browser aus. Bei den Temperaturdaten sieht man, wenn es zu heiß wird und man sieht auch, ob mit einer Flasche Eis effektiv gegen gesteuert werden konnte. Im Mittel bewegt sich die Temperatur bei sehr heißen Tagen an der Schmerzgrenze.

Leitfähigkeit (EC)

Man sieht, wie die Leitfähigkeit (EC) bei der Hitze stetig zunimmt, da die Pflanzen viel Wasser trinken und die Konzentration steigt. Man sieht auch, wie die EC fällt, wenn zur Eiswasserflasche gegriffen wurde. Im Mittel bewegt sich die Leitfähigkeit um 1.5 mS.

Helligkeit

Die Helligkeitskurven zeigen blendendes Wetter. Am Anfang des Tages steigt die Kurve steil an und in den Morgenstunden erreichen die Werte ihr Maximum, da die Sonne direkt auf den Sensor fällt. Schon bald fällt die Helligkeit dann wieder stark ab und die Pflanzen stehen im Schatten, bis die Kurve dann gegen Abend wieder stark abfällt

Feuchtigkeit

Die Kurve zeugt vom Ausfall des Seeed Grove Feuchtigkeitssensors und der Einbau des Billigheimers aus China. Man sieht klar den Wechsel von feucht zu etwas weniger feucht. Feucht bleibt es eigentlich immer. Die großen Unterschiede bei der gemessenen Feuchtigkeit zeigen das Ausprobieren der Empfindlichkeit des Sensors.

Arbeitsersparnis mit Ino

Wir leben in goldenen Zeiten! Ein Bösewicht ist, wer sie nicht nutzt. Es gibt eine phantastische Methode, die Arduino Entwicklungsumgebung auf den Raspberry Pi zu holen, nämlich mit Ino. Mit diesem Werkzeug lässt sich plattformunabhängig für Arduino entwickeln. Die IDE hat man dann auf dem Pi nicht, aber die wird ja sowieso kritisiert, hat man nicht die Bequemlichkeit, die eigentlich jede normale Entwicklungsumgebung zur Entwicklungsumgebung macht. Ino ist mit sensationell wenig Aufwand auf dem Pi installiert und man kann damit Sketche auf dem Pi kompilieren und über unsere serielle Schnittstelle auf den Arduino hochladen. Diese Möglichkeit gibt dem Entwickler sehr viel Flexibilität, da man sozusagen remote programmieren kann und den Arduino und den gesamten Aufbau nicht bei jeder kleinen Änderung an den Schreibtisch holen muss. Es wäre sogar möglich, den Arduino und das System übers Internet zu programmieren.

Geschützte Elektronik

Arduino mit Anschluss aller Sensoren und serieller USB-Verbindung zum Raspberry Pi
Arduino mit Anschluss aller Sensoren und serieller USB-Verbindung zum Raspberry Pi
Die Technikkiste - Schutz vor Regen, Staub, versehentlicher Gewalt ...
Die Technikkiste – Schutz vor Regen, Staub, versehentlicher Gewalt …

Wenn die ganze Elektronik draußen betrieben wird, sollte man sie schützen. Dazu bohrt man mit unserem Lochbohrer ein Loch für eingehende und ausgehende Kabel.

Wer das Sicherheitsrisiko gewissenhaft trägt, könnte zusätzlich den Zugriff übers Internet freigeben und auch im Büro die Werte live mitverfolgen.

Ergebnisse und Früchte der Arbeit

Perilla, oder wilder Sesam, hat ein paar Löcher in den Blättern, sieht aber sonst ganz gesund aus
Perilla, oder wilder Sesam, hat ein paar Löcher in den Blättern, sieht aber sonst ganz gesund aus
Petersilie hydroponisch: glänzend grün
Petersilie hydroponisch: glänzend grün
Basilikum hydroponisch: ebenfalls glänzend grün
Basilikum hydroponisch: ebenfalls glänzend grün