Hochbeetbewässerung
Hier ist eine detaillierte Bauanleitung für ein automatisches Bewässerungssystem für zwei Hochbeete, basierend auf einem Arduino. Das System verwendet Feuchtigkeitssensoren zur Regelung der Bewässerung. Ich werde die Schritte zur Erstellung des Systems, die benötigten Materialien und den erforderlichen Code erläutern.
1. Materialien und Komponenten
- Arduino: Arduino Uno
- Feuchtigkeitssensoren: Zwei Feuchtigkeitssensoren für die Hochbeete
- Relaismodul: Ein Relaismodul (z.B. 5V 1-Kanal oder 2-Kanal Relaismodul) zur Steuerung der Wasserpumpe oder Ventile
- Wasserpumpe oder Magnetventile: Eine Wasserpumpe für das Bewässerungssystem oder Magnetventile für die Steuerung des Wasserdurchflusses
- Schläuche: Für die Wasserverteilung zu den Hochbeeten
- Netzteil: Für die Wasserpumpe (oder Batterie)
- Widerstände: Je nach Feuchtigkeitssensor (typischerweise 10k Ohm)
- Kabel und Steckverbinder
- Montagematerial: Halterungen, Schrauben, usw.
2. Aufbau des Systems
2.1. Sensorinstallation
- Feuchtigkeitssensoren:
- Installiere die Feuchtigkeitssensoren in beiden Hochbeeten. Die Sensoren sollten so positioniert werden, dass sie die Feuchtigkeit in den wichtigsten Bereichen der Erde messen.
- Die Sensoren können in der Erde vergraben oder in der Nähe der Wurzeln platziert werden, um genaue Messwerte zu erhalten.
- Verkabelung der Sensoren:
- Verbinde die Ausgangspins der Feuchtigkeitssensoren mit den analogen Eingängen des Arduino (A0 und A1).
- Verbinde die VCC- und GND-Pins der Sensoren mit den entsprechenden Pins des Arduino.
2.2. Relaismodul und Wasserpumpe/ Magnetventile
- Relaismodul:
- Schließe die Steuerleitungen des Relaismoduls an zwei digitale Ausgänge des Arduino (z.B. D2 und D3) an.
- Verbinde die Relaiskontakte mit der Wasserpumpe oder den Magnetventilen. Die Relais werden verwendet, um die Pumpe oder Ventile ein- und auszuschalten.
- Wasserpumpe/ Magnetventile:
- Wenn du eine Wasserpumpe verwendest, stelle sicher, dass sie für den Betrieb mit dem Relaismodul geeignet ist. Schließe die Pumpe an die Relaiskontakte an, sodass das Relais den Stromkreis schließen und die Pumpe aktivieren kann.
- Wenn du Magnetventile verwendest, schließe sie entsprechend den Anweisungen des Herstellers an das Relaismodul an.
3. Software und Programmierung
3.1. Arduino Code
- Initialisiere die Pins und Sensoren:
- Definiere die Pins für die Sensoren, Relais und lege die Schwellenwerte für die Feuchtigkeit fest.
- Lesen der Sensorwerte:
- Lese die Feuchtigkeitswerte der Sensoren und vergleiche sie mit den festgelegten Schwellenwerten, um zu entscheiden, ob die Bewässerung aktiviert werden soll.
- Steuere die Relais:
- Basierend auf den Sensormesswerten steuere die Relais, um die Wasserpumpe oder die Magnetventile ein- oder auszuschalten.
Hier ist ein Beispielcode für das Arduino-Programm:
// Pin-Definitionen
const int moistureSensor1Pin = A0; // Feuchtigkeitssensor Hochbeet 1
const int moistureSensor2Pin = A1; // Feuchtigkeitssensor Hochbeet 2
const int relay1Pin = 2; // Relais für Hochbeet 1
const int relay2Pin = 3; // Relais für Hochbeet 2
// Schwellenwerte für die Feuchtigkeit (angepasst je nach Sensor und Boden)
const int dryThreshold = 300; // Feuchtigkeitswert unterhalb dessen bewässert wird
void setup() {
// Initialisiere die Pins
pinMode(relay1Pin, OUTPUT);
pinMode(relay2Pin, OUTPUT);
digitalWrite(relay1Pin, LOW); // Relais aus
digitalWrite(relay2Pin, LOW); // Relais aus
Serial.begin(9600); // Serielle Kommunikation starten
}
void loop() {
// Lese die Feuchtigkeitswerte
int moistureLevel1 = analogRead(moistureSensor1Pin);
int moistureLevel2 = analogRead(moistureSensor2Pin);
// Ausgabe der Feuchtigkeitswerte auf dem Serial Monitor
Serial.print("Feuchtigkeit Hochbeet 1: ");
Serial.println(moistureLevel1);
Serial.print("Feuchtigkeit Hochbeet 2: ");
Serial.println(moistureLevel2);
// Bewässerung für Hochbeet 1
if (moistureLevel1 < dryThreshold) {
digitalWrite(relay1Pin, HIGH); // Relais an (Pumpe an)
} else {
digitalWrite(relay1Pin, LOW); // Relais aus (Pumpe aus)
}
// Bewässerung für Hochbeet 2
if (moistureLevel2 < dryThreshold) {
digitalWrite(relay2Pin, HIGH); // Relais an (Pumpe an)
} else {
digitalWrite(relay2Pin, LOW); // Relais aus (Pumpe aus)
}
// Warte 10 Minuten (600000 Millisekunden) vor dem nächsten Messvorgang
delay(600000);
}
3.2. Software-Anpassungen
- Schwellenwerte: Möglicherweise musst du die
dryThreshold
-Werte anpassen, je nach den spezifischen Feuchtigkeitswerten deiner Sensoren und den Bodenbedingungen. - Intervall: Der
delay()
-Befehl im Code setzt die Häufigkeit der Messungen auf alle 10 Minuten. Du kannst diesen Wert ändern, um die Bewässerung nach Bedarf anzupassen.
4. Test und Kalibrierung
- Test der Sensoren und Relais:
- Überprüfe die Funktionalität der Feuchtigkeitssensoren und Relais, indem du die Sensoren in trockenen und feuchten Boden versenkst und beobachte, ob die Relais entsprechend schalten.
- Kalibrierung der Schwellenwerte:
- Justiere die Schwellenwerte für die Feuchtigkeit basierend auf den Testdaten, um sicherzustellen, dass die Bewässerung bei den gewünschten Feuchtigkeitsbedingungen aktiviert wird.
- Überprüfung des gesamten Systems:
- Teste das gesamte System, indem du sicherstellst, dass die Wasserpumpe oder die Magnetventile ordnungsgemäß arbeiten und die Hochbeete bei Bedarf bewässert werden.
Diese Anleitung bietet dir eine umfassende Basis für die Erstellung eines automatischen Bewässerungssystems. Du kannst das System weiter verbessern und anpassen, um zusätzliche Funktionen oder eine genauere Steuerung zu integrieren. Viel Erfolg bei deinem Projekt!