Aus dem Artikel zu: Intelligente Bewässerung & Nährstoffdosierung: Automatisierung leicht gemacht
// Vereinfachtes Arduino/ESP32 Code-Beispiel für Ebb-and-Flow Pumpe
const int pumpRelayPin = 4;
const long floodDuration = 10 * 60 * 1000; // 10 Minuten Fluten (ms)
const long ebbDuration = 50 * 60 * 1000; // 50 Minuten Ebbe (ms)
long lastPumpToggleTime = 0;
bool isFlooding = false;
void setup() {
pinMode(pumpRelayPin, OUTPUT);
digitalWrite(pumpRelayPin, HIGH); // Pumpe AUS starten
Serial.begin(115200);
Serial.println("Starte Ebb-and-Flow Zyklus.");
}
void loop() {
if (!isFlooding && (millis() - lastPumpToggleTime >= ebbDuration)) {
// Ebbe-Phase beendet, starte Fluten
Serial.println("Starte Flut-Phase.");
digitalWrite(pumpRelayPin, LOW); // Pumpe AN
lastPumpToggleTime = millis();
isFlooding = true;
} else if (isFlooding && (millis() - lastPumpToggleTime >= floodDuration)) {
// Flut-Phase beendet, starte Ebbe
Serial.println("Starte Ebbe-Phase.");
digitalWrite(pumpRelayPin, HIGH); // Pumpe AUS
lastPumpToggleTime = millis();
isFlooding = false;
}
}