Gießautomatik mit einem Raspberry Pi

Ich habe mir überlegt, daß man ja den Garten automatisch gießen lassen könnte. Etwaige Automatiken, zeitgesteuert gibt es ja schon von der Stange. Das reicht mir aber nicht. Ich wollte das Gießen abhängig von der Feuchtigkeit des Bodens machen, etwa, daß die Automatik merkt, ob es geregnet hat, oder der Boden noch feucht genug ist. Zusätzlich wollte ich per Webinterface sehen, wie feucht es ist.

Als Hardware will ich mir ein Gardena-System verlegen. Dabei will ich (erstmal) die paar Beete, die ich habe, in 4 Segmenten unterteilen, die von entsprechend 4 Feuchtesensoren erfaßt und von 4 getrennt agierenden Schläuchen, die an 4 elektrischen Ventilen hängen, versorgt werden.

Daraus ergibt sich folgende Hardware:
– Raspberry Pi Modell B rev. 2 (lag noch rum) [32,50€ bei Reichelt]
– 32GB Micro-SD-Karte als „Festplatte“ [8,95€ bei Reichelt]
– Gehäuse [10,71€ bei Reichelt]
– 4x Relaiskarte (für die 4 Ventile) [4,90€ bei Reichelt]
– 2x Relaiskarte (um die 12V für die Ventile primär schalten zu können + 1x Reserve) [2,70€ bei Reichelt]
– Flachbandkabel + Wannenstecker [Ebay ca. 5€]
– Starkes 5V-Netzteil (hatte ich noch rumliegen) [ca. 12€]
– 12V-Netzteil [13,95€ bei Reichelt]
– 9x 10µF-Kondensatoren [Reichelt 2,25€]
– MCP3208 A/D-Wandler, 8 Kanal [Reichelt 1,99€]
– Sockel für MCP3208 [5¢t bei Reichelt]
– 2x 8pol. Federkraftklemme [2,90€ bei Reichelt]
– Lochrasterplatine [2,10€ bei Reichelt]
– 2 Feuchtraumsteckdosen für 1x 5V- und 1x extra geschaltetes 12V-Netzteil [25,40 bei Reichelt]
– „Wasseruhr“ für den Raspberry Pi [Ebay ca. 7€]
– 4x Feuchtesensor [Reichelt 21,40€]
– Gardena-Druckminderer [Ebay ca. 25€]
– 4er 12V-Ventilblock (1/2″) aus China [Ebay, ca. 13€]
– 4x Feuchtraumabzweigdose als Gehäuse für die Feuchtesensoren [2,76€ bei Reichelt]
– 1x weitere Feuchtraumabzweigdose für die Verdrahtung [0,60€ bei Reichelt]
– Sicherheitsventil direkt am Wasserhahn (Aquastop) [32€ bei Ebay]
– Ventilblock 4x12V [13€ bei Ebay aus China]


Feuchtesensor:

Ich suchte länger nach einem probaten Feuchtesensor. Schnell fand ich heraus, daß ich einen kapazitiven haben möchte, da der nicht direkt mit dem Boden verbunden sein muß. Die Alternative wäre ein resistiver, bei dem jedoch das Elektrodenmaterial in den Boden und somit auch ins Gemüse gelangt (Korrosion), was ich tunlichst nicht will. Ich fand zunächst einen bei Ramser als Bausatz, doch der funktionierte nicht so, wie ich mir das vorstellte. Schließlich fand ich den bei Reichelt, der mir eine Spannung zwischen 1,4V (nasse Erde bzw. Wasserglas) und 2,8V (trocken) liefert. Als Eingangsspannung genügen ihm die 5V, die auch den Raspberry Pi versorgen.

Platine Löten

Im Grunde müssen die Feuchtesensoren mit dem Raspberry Pi mit Daten versorgen, damit der wiederum die Ventile (Relais) schalten kann. Ich habe mir dazu eine „I/O-Platine“ auf einer Laborkarte zusammengelötet. In der Mitte befindet sich der Wannenstecker, mit dem die Karte per Flachbandkabel mit dem Raspberry Pi verbunden wird.
Da die Eingänge analog sind, müssen sie erst mit einem MCP3208 digitalisiert werden. Jeder Eingang sowie die Versorgungs- und Referenzspannung müssen mit je einem Kondensator versehen werden, da sonst die Spannungen zu sehr „wackeln“. Der MCP3208 „spricht“ per SPI-Bus (GPIO 7, [8], 9, 10, 11) mit dem Raspberry Pi.
Als Schalt-Ausgänge für die Relais benutze ich die 8 GPIOs (14, 15, 17, 18, 23, 24, 25 und 27). Ja, 2 davon benutze ich (noch?) garnicht. Als Eingang für die „Wasseruhr“ benutze ich den verbleibenden GPIO 22. Dazu muß man UART (an GPIO 14 und 15) und PWM (GPIO 18) abschalten.

I/O-Platine: Links die GPIO-Ausgänge, rechts die Analog-Eingänge
Platine von unten

Der MCP3208 sieht vor, getrennte Grounds („Erden“) für den Analog- und Digital-Bereich zu haben, was ich jedoch zusammengeschaltet habe. Als Referenz- und Versorgungsspannung (ebenfalls zusammengelegt) bekommt er die 3,3V vom Raspberry Pi.
Ich habe den MCP3208 nicht an CE0, sondern CE1 (GPIO7/ Pin26) angeschlossen. Normalerweise müßte man das Analogsignal noch mit Potentiometer herunterteilen, da die Eingangsspannung maximal so hoch sein darf wie die Referenzspannung (3,3V). Da der Sensor jedoch maximal 2,8V liefert, verzichte ich darauf.

Skizze zur Beschaltung

Ich habe eine Abfall-Plastik-Platte weggefunden und dort die Relaiskarten, die „I/O-Karte“ und den Raspberry Pi darauf veschraubt und alles in ein Gehäuse gepackt.

Auf den Relais habe ich gleich die entsprechende GPIO-Nummer drauf geschrieben. Das USB-Kabel dient als Verlängerung zum WLAN-Stick (mit einem ZD1211-Chip drauf, der out of the Box von Raspbian unterstützt wird).

Als nächstes habe ich mal einen Feuchtesensor in eine Aufputz-Abzweigdose geklebt und getestet, wie gut das funktioniert. Der Feuchtesensor funktioniert kapazitiv, das heißt, daß auch andere Materialien außer Wasser den Wert beeinflussen, bzw. eine gewisse Feuchte „simulieren“. So sank die Maxialspannung bei trockenem Sensor wegen des Klebers von 2,8V auf etwa 2,5V.


Ich nehme dafür ein mehradriges Kabel, sodaß ich die Sensoren quasi „in Reihe“ anklemmen kann.

Eingebaut schaut der Steuerkasten dann so aus:

Steuerung eingebaut und angeschlossen

Rechts kommen (von oben) folgende Kabel in die Box:
– Feuchtesensorkabel: +5V (rot), GND (Schirmung) und die Signale der Sensoren (1=gelb, 2=weiss, 3=grün, 4=braun)
– Kabel der Wasseruhr: +5V (braun), GND (Schirmung), Signal kommt von der weißen Ader
– Buchse 5V
– Buchse 12V
– Schaltkabel 220V (Schaltet den Aqastop und das 12V-Netzteil ein)
– Kabel zum 4er-Ventilblock

Elektrik:

Die 240V gehen erstmal in die rechte Steckdose, die das 5V-Netzteil speist. Von dort aus geht es in die Verteilerdose, wo sicherheitshalber eine 400mA-Feinsicherung (träge) zwischengeschaltet ist, weil das nachgeschaltete Schaltrelais keine 16A verträgt. Das Relais schaltet zum einen die linke Steckdose (12V-Netzteil) und den Aquastop.
An einer USB-Verlängerung hängt der WLAN-Stick, womit sich der Raspberry Pi mit dem Netzwerk verbindet.

Überblick der Elektrik

Wasseruhr:

Die Wasseruhr ist im Grunde ein kleines „Mühlrädchen“ in einem Plastikmantel, das je nach Durchfluß einen Ipuls an den Raspberry Pi gibt, der das entsprechend interpretieren muß. Ich habe also mit einer 10-Gießkanne kalibriert und kam auf etwa 4200 Impulse pro 10l , also 420 Impulse pro Liter.
Ich konnte das kleine Bauteil gut im Kabelkanal unterbringen:

Wasseruhr im Kabelkanal

Das Wasser fließt vom Aquastop erstmal in den Gardena-Druckminderer (1,5Bar) und von dort aus zur Wasseruhr bis hin zum Ventilblock, der draußen angebracht ist. Als Gehäuse habe ich einen uralten KFZ-Verbandskasten improvisieren. Von der Ventilbox aus wird es dann auf die einzelnen Beete verteilt.

Ventilbox zum Verteilen des Wassers auf die Beete

Software:

Die Software habe ich bei Github mit einer kleinen Erklärung der Komponenten veröffentlicht. Wirklich schön oder elegant ist es nicht, aber zum Gießen reichts ;-).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert