Open Source im professionellen Einsatz
Linux-Magazin 03/2007
© fotolia.de

© fotolia.de

Bewässerungsanlage mit Perl-Steuerung im Eigenbau

Der Mörder ist nimmer der Gärtner

Damit die Balkonpflanzen auch im Urlaub nicht vertrocknen, stellt dieser Snapshot ein Bewässerungssystem vor, bei dem Linux zweimal täglich die Schleusen öffnet.

638

Im Sommer genügen schon wenige Tage abwesenheitsbedingter Gießpause, damit die geliebten Balkon- und Zimmerpflanzen ernsthaft Schaden nehmen. Statt nach jeder Kurzreise zum Supermarkt zu fahren, um totes Grünzeug zu ersetzen, überlässt es der Hobbygärtner nach Lektüre dieses Artikels einfach einer Pumpe samt Linux, für den nötigen Wassernachschub zu sorgen.

Schadensbegrenzung

Wer jedoch wie hier Software-gesteuert mit Wasser hantiert, läuft immer Gefahr, die Wohnung infolge eines unvorhergesehenen Fehlers unter Wasser zu setzen. Einen Ausweg aus diesem Dilemma zeigte unlängst eine Bewässerungslösung, die das amerikanische Hightech-Bastelmagazin "Make" [2] vorstellte: Dort beschränkte einfach eine Flasche als Tank den Wasservorrat auf eine unschädliche Menge.

Weil die Frau des Perlmeisters aber keine mit Heißleim zusammengeflickten Wasserflaschen in der Wohnung duldet, ist das heute vorgestellte Pumpsystem optisch etwas ansprechender: Der Vorratsbehälter besteht aus einem im Haushaltswarenladen gekauften Hundekeksbehälter mit aufklappbarer Öffnung (4,75 Dollar, Abbildung 1) und einer bei Ebay ersteigerten Aquariumpumpe (6,75 Dollar plus Porto). Mit einer Bohrmaschine und einem Schleifkopf fräste der Meister in die Rückseite des Behälters oben einen Spalt, durch den der im Heimwerkermarkt gekaufte Wasserschlauch und das Netzkabel der Pumpe auch bei geschlossenem Deckel nach außen gelangen. Der Schlauch führt durchs Fenster auf den Balkon und endet über den Blumentöpfen.

Abbildung 1: Der seinem Zweck etwas entfremdete Hundekeks-Spender mit eingebauter Wasserpumpe. Der Schlauch führt durchs Fenster auf den Balkon zu den Pflanzen hinaus.

Über jeder zu bewässernden Pflanze findet sich ein kleines Loch im Schlauch, durch das Wasser an die Pflanze gelangt. Es ist sorgfältig darauf zu achten, dass die Löcher nicht zu groß werden, falls doch, sind sie leicht mit Kleber wieder zu verkleinern oder ganz zuzustopfen. Die Aquariumpumpe erhält mit Heißkleber Haftung am Behälterboden. Zum Wassernachfüllen klappt man einfach den roten Deckel des Behälters auf.

Gießbefehl durchs Stromnetz

Ein X10-Modul [3] schaltet die Pumpe ein- und aus. Wie schon einmal in [4] vorgestellt, lassen sich mit dem X10-Protokoll Signale über das Stromnetz schicken. Der Sender hängt in diesem Fall am seriellen (oder USB-)Port des Linux-Rechners und speist mit Hilfe einer X10-PC-Schnittstelle (in Deutschland unter anderem auf [5] erhältlich) Signale ins Stromnetz ein. Der Empfänger (siehe Abbildung 3) ist mit einer anderen Steckdose im selben Netz verbunden, empfängt das Signal und schaltet daraufhin die angeschlossene Aquariumpumpe ein und aus.

Die Ansteuerung der seriellen Schnittstelle ist ausgesprochen simpel. Das Skript »water« in Listing 1 muss der User »root« starten, damit es Schreibzugriff auf die erste serielle Schnittstelle des Rechners unter »/dev/ttyS0« erhält, die mit dem X10-Sender verbunden ist. Auch die Steuerung eines Controllers über die USB-Schnittstelle ist möglich, das Wish-Projekt [6] stellt die nötige freie Software dafür bereit.

Abbildung 2: Nicht vergessen: Der Wasservorratsbehälter muss von Zeit zu Zeit nachgefüllt werden.

Abbildung 3: Die Aquariumpumpe wird an diesem X10-Empfänger eingesteckt.

Listing 1:
»water«

01 #!/usr/bin/perl
02 use warnings;
03 use strict;
04
05 use Device::SerialPort;
06 use ControlX10::CM11;
07 use Log::Log4perl qw(:easy);
08 use Waterscore qw(waterscore);
09
10 my $HOUSE_CODE = "K";
11 my $UNIT_CODE  = "11";
12 my $SERIAL     = "/dev/ttyS0";
13 my $BAUDRATE   = 4800;
14 my $LOCATION   = "USCA0987";
15
16 die "You must be root" if $> != 0;
17
18 Log::Log4perl->easy_init({
19   level => $DEBUG,
20   file  => ">>/var/log/water.log"});
21
22 my $score = waterscore($LOCATION);
23
24 if($score < 20) {
25     INFO "No water.";
26     exit 0;
27 }
28
29 my $serial = Device::SerialPort->new(
30     $SERIAL, undef);
31 $serial->baudrate($BAUDRATE);
32
33   # Address unit
34 ControlX10::CM11::send($serial,
35     $HOUSE_CODE . $UNIT_CODE);
36
37   # Turn water pump on
38 INFO "Water on";
39 ControlX10::CM11::send($serial,
40     $HOUSE_CODE . "J");
41
42 sleep($score/10);
43
44   # Turn water pump off
45 INFO "Water off";
46 ControlX10::CM11::send($serial,
47     $HOUSE_CODE . "K");

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Leserbriefe

    Haben Sie Anregungen, Statements oder Kommentare? Dann schreiben Sie an [redaktion@linux-magazin.de]. Die Redaktion behält es sich vor, die Zuschriften und Leserbriefe zu kürzen. Sie veröffentlicht alle Beiträge mit Namen, sofern der Autor nicht ausdrücklich Anonymität wünscht.

  • Kontaktmann

    Wer von außen durch die eigene Firewall ins LAN gelangen will, braucht entweder ein geheimes Loch oder einen kooperativen Agenten auf der Innenseite. Ein Jabber-Client nimmt von innen aktiv Kontakt zum öffentlichen Jabber-Server auf und wartet auf Instruktionen seiner Internet-Buddies in Form von Instant Messages. Michael Schilli

  • Selektive Wärme

    Linux-Magazin-Leser Alexander-Philipp Lintenhofer heizt sein Haus mit einer Wärmepumpenanlage. Weil sich deren Steuerung als grottig erwies, startete er ein Selbstbauprojekt. Heute sitzt er stets im Warmen und weiß viel über stimmiges Management von Projekten.

  • Heimschaltwarte

    Der Billig-Router hat sich aufgehängt, damit ist aus der Ferne auch kein Reset via Netzwerk mehr möglich. Einen Weg aus dem Dilemma gibt es dennoch: Ein X10-Modul, gesteuert von einem Web-GUI mit Ajax-Interface, betätigt den Hauptschalter.

  • Perl-Snapshot

    Damit Hobby-Youtuber Michael Schilli erfährt, wenn seine Guckerzahlen durch die Decke gehen, analysiert ein Perl-Skript täglich Trends und schlägt Alarm, falls ein Video plötzlich zum Hit wird.

comments powered by Disqus

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.