Einige wissen es vielleicht schon; ich habe auf meinem Balkon ein Gewächshaus, dass automatisch bewässert werden soll.
Das Wasser zum gießen wird in einem Fass gesammelt und bei bedarf über 3 Pumpen zu den jeweiligen Stellen befördert. 3 Bodenfeuchtesensoren messen die Feuchtigkeit und bei Bedarf schaltet eines der 3 Relais die dazugehörige Pumpe und versorgt die Stelle wieder mit Wasser.
Hier mal das Arduino Sketch dazu:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F,20,4);int triggerPin = 2;
int echoPin = 3;
long messung = 0;
int ergebnis = 0;void setup()
{
pinMode(triggerPin, OUTPUT);
pinMode(echoPin, INPUT);
lcd.init(); //initialize the lcd
lcd.backlight(); //open the backlight
lcd.setCursor(0, 0);
lcd.print(„Willkommen!“);
delay(„5000“);Serial.begin(9600);
pinMode(A0, INPUT);
pinMode(A1, INPUT);
pinMode(A2, INPUT);pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
}void loop()
{ // Sensor 1
int SensorValue1 = analogRead(A0);
if(SensorValue1 >= 1000) {
lcd.setCursor ( 0, 0 );
lcd.print(„Sensor I fehlt! „);
digitalWrite(12, HIGH);
}
if(SensorValue1 < 1000 && SensorValue1 >= 600) {
lcd.setCursor ( 0, 0 );
lcd.print(„Sensor I ist trocken“);
digitalWrite(12, LOW);
}
if(SensorValue1 < 600 && SensorValue1 >= 370) {
lcd.setCursor ( 0, 0 );
lcd.print(„Sensor I ist feucht „);
digitalWrite(12, HIGH);
}
if(SensorValue1 < 370) {
lcd.setCursor ( 0, 0 );
lcd.print(„Sensor I ist nass „);
digitalWrite(12, HIGH);
} // Sensor 2
int SensorValue2 = analogRead(A1);
Serial.print(SensorValue2);
Serial.print(“ – „);
if(SensorValue2 >= 1000) {
lcd.setCursor ( 0, 1 );
lcd.print(„Sensor 2 fehlt! „);
digitalWrite(11, HIGH);
}
if(SensorValue2 < 1000 && SensorValue2 >= 600) {
lcd.setCursor ( 0, 0 );
lcd.print(„Sensor 2 ist trocken“);
digitalWrite(11, LOW);
}
if(SensorValue2 < 600 && SensorValue2 >= 370) {
lcd.setCursor ( 0, 1 );
lcd.print(„Sensor 2 ist feucht „);
digitalWrite(11, HIGH);
}
if(SensorValue2 < 370) {
lcd.setCursor ( 0, 1 );
lcd.print(„Sensor 2 ist nass „);
digitalWrite(11, HIGH);
} // Sesor 3
int SensorValue3 = analogRead(A2);
Serial.print(SensorValue3);
Serial.print(“ – „);
if(SensorValue3 >= 1000) {
lcd.setCursor ( 0, 2 );
lcd.print(„Sensor 3 fehlt! „);
digitalWrite(10, HIGH);
}
if(SensorValue3 < 1000 && SensorValue3 >= 600) {
lcd.setCursor ( 0, 2 );
lcd.print(„Sensor 3 ist trocken“);
digitalWrite(10, LOW);
}
if(SensorValue3 < 600 && SensorValue3 >= 370) {
lcd.setCursor ( 0, 2 );
lcd.print(„Sensor 3 ist feucht „);
digitalWrite(10, HIGH);
}
if(SensorValue3 < 370) {
lcd.setCursor ( 0, 2 );
lcd.print(„Sensor 3 ist nass „);
digitalWrite(10, HIGH);
}
delay(500);
// ultraschall
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);messung = pulseIn(echoPin, HIGH);
ergebnis = (messung/2)/29;lcd.setCursor ( 0, 3 );
lcd.print(„Wasserstand: „);
lcd.setCursor ( 13, 3 );
lcd.print(ergebnis); & (“ cm“);delay(6);
}
Folgende Bauteile kommen zum Einsatz:
1 Arduino Uno
1 Relaisleiste (4-fach)
1 Ultraschallsensor (zum Messen des Füllstands des Wasserfasses)
1 Display (blau, 4-Zeilig)
3 Pumpen (12V)
1 Netzteil (12V)
1 Spannungswandler (eingestellt: 12V auf 9V)
3 Bodenfeuchtesensoren
1 Gardena 4-Fach Verteiler
diverse Schläuche und Kabel
1 Projektbox
1 Wasserdichtes Gehäuse mit klarer Front
Hier mal ein paar Bilder: