Der Bewässerungscomputer kann je nach Bedarf an einen Wasserhahn, Gartenschlauch oder Regentonne angeschlossen werden. Welche Art der Bewässerung verwendet wird, bleibt dem Nutzer selbst überlassen. Klassischer Rasensprenger, Perlschlauch, Versenkregner oder Tröpfchenbewässerung, sind denkbare Varianten.
Nach Anschluss des Bewässerungscomputers muss der Feuchtigkeitssensor platziert werden. Dieser sollte möglichst an einer Stelle des zu bewässernden Bereichs angebracht werden, die nicht zu schattig, aber auch nicht der prallen Sonne ausgesetzt ist. Wird der Bewässerungscomputer für das Freiland verwendet, ist natürlich darauf zu achten, den Sensor nicht unter Überdachungen zu platzieren, da sonst keine Regenfälle registriert werden können.
Im Falle der Tröpfchenbewässerung wird der Sensor etwa 20 cm vom Pflanzenstamm entfernt platziert, die Bewässerung hingegen direkt am Stamm. Wird die Pflanze bewässert, breitet sich die Feuchtigkeit langsam nach außen aus, bis sie den Sensor erreicht und die Bewässerung unterbrochen wird (siehe Abbildung 2).
Programmierung:
Um den Quellcode des Arduino zu ändern, muss er mit dem Computer verbunden werden. Dafür wird der Arduino mit den seitlichen Pins auf den FTDI FT232RL gesteckt (siehe Abbildung 3), welcher über USB mit dem Computer verbunden ist. Dabei ist zu beachten, dass die Stromversorgung über Batterie unbedingt unterbrochen ist.
Kalibrierung:
Bei der Kalibrierung ist es wichtig, dass der Arduino von den Batterien mit Strom versorgt wird und nicht über USB, da es sonst zu Abweichungen bei den Sensorwerten kommen kann. Dafür werden nur die folgenden Pins mit dem FTDI verbunden: DTR mit DTR, TXD mit RXD und RXD mit TXD (siehe Abbildung 4).
Zum Ausgeben der Sensordaten wird folgender Programmcode verwendet:
#define sensorWert A0
#define sensorPower 4
const int anzahlMessungen = 5;
void setup() {
pinMode (sensorWert, INPUT);
pinMode (sensorPower, OUTPUT);
Serial.begin(9600);
}
int feuchtigkeit() {
int mittelwert = 0;
int summeMesswerte = 0;
for (int i = 0; i<anzahlMessungen; i++) {
summeMesswerte += analogRead(sensorWert);
}
mittelwert = summeMesswerte / anzahlMessungen;
return mittelwert;
}
void loop() {
digitalWrite (sensorPower, HIGH);
Serial.println(feuchtigkeit());
}
Zur Kalibrierung wird der Sensor zunächst in vollkommen trockene Erde gesteckt. Wir erhalten den Sensorwert für komplett trockene Erde. Anschließend wird die Erde ausgiebig bewässert und der Sensorwert für komplett nasse Erde ausgelesen. Die zwei Werte markieren unser Maximum und Minimum. Um Fehler zu vermeiden, sollte eine gewisse Toleranz eingebaut werden. In diesem Fall erhalten wir für trockene Erde einen Wert von 850 und für nasse Erde einen Wert von 440.
Bewässert werden soll, wenn die Erde noch eine geringe Restfeucht vorweist. Aus diesem Grund wird für den Bewässerungsstart ein Wert von 800 festgelegt. Die Bewässerung soll gestoppt werden, wenn der Boden gut mit Feuchtigkeit gesättigt ist, aber nicht komplett nass ist. Aus diesem Grund wird für den Bewässerungsstopp ein Wert von 480 festgelegt.
Wann die Bewässerung startet, lässt sich in dem Quellcode über die Variablen „trocken“ und „nass“ regeln. Ein niedriger Wert bedeutet dabei eine hohe Feuchtigkeit. Soll die Bewässerung also erst bei einer geringeren Feuchtigkeit starten, muss der Wert der Variable „trocken“ erhöht werden. Soll sie früher wieder aufhören, muss der Wert der Variable „nass“ erhöht werden.
Batterielaufzeit:
Mit dem Deep-Sleep-Modus und dem modifizierten Arduino konnte der Stromverbrauch des Gerätes soweit gesenkt werden, dass die Batterien, bei einer täglichen Bewässerung von etwa einer Stunde, nur etwa einmal pro Jahr ausgetauscht werden müssen.