Projekt | Automatische Gewäschshausbewässerung

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:

Dieser Beitrag wurde unter Allgemein abgelegt und mit verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar