© fotolia.de
Bewässerungsanlage mit Perl-Steuerung im Eigenbau
Der Mörder ist nimmer der Gärtner
von Michael Schilli
Erschienen im Linux-Magazin
2007/03
Damit die Balkonpflanzen auch im Urlaub nicht vertrocknen, stellt dieser Snapshot ein Bewässerungssystem vor, bei dem Linux zweimal täglich die Schleusen öffnet.
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.
|
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");
|
| Whitepaper |
|
Daten Migration - Eine Publikation von Bloor Research
Datenmigrationsprojekte überschreiten häufig das Budget, neigen zu Verzögerung und werden unter Umständen komplett abgebrochen. Bloor Research ist eines der weltweit führenden IT-Forschungs-, Analyse- und Beratungsunternehmen und wird in dem vorliegenden White Paper die wichtigsten Aspekte dieser Problematik näher beleuchten. Ferner werden praktische Empfehlungen für erfolgreiche Migrationsprojekte gegeben, die Sie auf Ihr nächstes Projekt übertragen können.
Download PDF (Registrierung erforderlich)
|
|
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele
Über die letzten Jahre hinweg haben sich Open Source Lösungen als fester Bestandteil des gesamten Datenintegrationsmarktes etabliert. Viele Unternehmen haben bereits das Open Source Modell für Ihre Datenintegrationsprojekte aufgegriffen. Das vorliegende White Paper illustriert anhand ausgewählter Fallstudien und Anwendungsbeispiele die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.
Download PDF (Registrierung erforderlich)
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.
|