April 5, 2026
Description
Halte deine Pflanzen glücklich und gesund – ganz automatisch! Dieses Arduino-basierte System überwacht die Bodenfeuchtigkeit in Echtzeit und bewässert deine Pflanze genau dann, wenn sie es braucht. Kein Übergießen, kein Austrocknen mehr.
Funktionen:
Bewesserungsringe sind in verschiedenen Durchmesser vorhanden.
Hinweis (bitte lesen 😊)
Das hier ist keine Schritt-für-Schritt-Anleitung, sondern einfach eine Doku, wie ich mein System gebaut habe. Vielleicht hilft’s dir als Inspiration – aber es gibt viele Wege, sowas umzusetzen.
Wenn du das nachbauen willst, mach das bitte auf eigene Verantwortung. Gerade bei Elektronik, Wasser & Co. kann auch mal was schiefgehen (Kurzschluss, Schäden, etc.). Also lieber zweimal prüfen und nur basteln, wenn du weißt, was du tust.
Ich übernehme keine Haftung für irgendwas, das beim Nachbauen oder Verwenden passiert.
Fühl dich frei, das Ganze zu verändern, zu verbessern oder komplett anders zu machen – genau dafür ist es ja da. 🙂
| Komponente | Empfehlung |
|---|---|
| Mikrocontroller | Arduino Nano oder kleiner |
| Sensor | Capacitive Soil Moisture Sensor v2.0 (Korrosionsbeständig!) |
| Relais | 5V Relay Module (Low-Level Trigger) |
| Pumpe | 5V DC Tauchpumpe |
| Power | USB-C Connector (2-Pin für Strom oder 4-Pin für Daten/Programming) |
| Schlauch | Standard 8mm Silikonschlauch |
Code für Arduino.
// -------- Pins --------
const int soilPin = A0;
const int relayPin = 7;
// -------- Sensor Kalibrierung --------
int airValue = 580; // Wert in Luft (trocken)
int waterValue = 256; // Wert im Wasser (nass)
// -------- Einstellungen --------
int moistureThreshold = 70; // Prozentwert ab dem bewässert wird
unsigned long wateringTime = 5000; // Pumpzeit (ms)
unsigned long waitAfterWatering = 10000; // Wartezeit nach Bewässerung
unsigned long measurementInterval = 100000; // Messintervall
// -------- Variablen --------
unsigned long lastMeasurement = 0;
void setup() {
Serial.begin(9600);
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, HIGH); // Relais aus
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - lastMeasurement >= measurementInterval) {
lastMeasurement = currentMillis;
int sensorValue = analogRead(soilPin);
// Umrechnung in Prozent
int moisturePercent = map(sensorValue, airValue, waterValue, 0, 100);
moisturePercent = constrain(moisturePercent, 0, 100);
Serial.print("Sensorwert: ");
Serial.print(sensorValue);
Serial.print(" Feuchtigkeit: ");
Serial.print(moisturePercent);
Serial.println("%");
// Prüfen ob Bewässerung nötig
if (moisturePercent < moistureThreshold) {
Serial.println("Zu trocken -> Bewässerung startet");
waterPlant();
}
else {
Serial.println("Feuchtigkeit OK");
}
}
}
// -------- Bewässerungsfunktion --------
void waterPlant() {
digitalWrite(relayPin, LOW); // Relais AN
Serial.println("Pumpe läuft");
delay(wateringTime);
digitalWrite(relayPin, HIGH); // Relais AUS
Serial.println("Pumpe aus");
Serial.println("Wartezeit...");
delay(waitAfterWatering);
}
Sollte weitere Anleitung oder Beschreibung gewünscht sein Schreiben sie einfach ein Kommentar ich werde mein bestes geben es so gut wie möglich zu beschreiben.
License:
MakerWorld Exclusive License