Sprache auswählen

© Borgmann Aquaponik & Hydroponik
Alle Rechte Vorbehalten
https://borgmann-aquaponik-hydroponik.ch

Viel Erfolg wünschen wir Ihnen!

Aus dem Artikel zu: Intelligente Bewässerung & Nährstoffdosierung: Automatisierung leicht gemacht


// Vereinfachtes Arduino/ESP32 Code-Beispiel für Wasserstandsregler
const int waterLevelPin = 2; // Digitaler Eingang für Schwimmerschalter
const int pumpRelayPin = 4;  // Digitaler Ausgang für Relais
unsigned long pumpStartTime = 0;
const long maxPumpRunTime = 60000; // 60 Sekunden max. Laufzeit (ms)

void setup() {
  pinMode(waterLevelPin, INPUT_PULLUP); // Schwimmerschalter mit Pullup
  pinMode(pumpRelayPin, OUTPUT);
  digitalWrite(pumpRelayPin, HIGH); // Pumpe AUS (Relais oft inverted)
  Serial.begin(115200);
}

void loop() {
  if (digitalRead(waterLevelPin) == LOW) { // Wasserstand zu niedrig (Schalter geschlossen)
    if (digitalRead(pumpRelayPin) == HIGH) { // Pumpe ist noch AUS
      Serial.println("Wasserstand niedrig, Pumpe AN.");
      digitalWrite(pumpRelayPin, LOW); // Pumpe AN
      pumpStartTime = millis();
    }
  } else { // Wasserstand ausreichend
    if (digitalRead(pumpRelayPin) == LOW) { // Pumpe ist noch AN
      Serial.println("Wasserstand OK, Pumpe AUS.");
      digitalWrite(pumpRelayPin, HIGH); // Pumpe AUS
    }
  }

  // Max. Laufzeit Überwachung für Sicherheit
  if (digitalRead(pumpRelayPin) == LOW && (millis() - pumpStartTime > maxPumpRunTime)) {
    Serial.println("WARNUNG: Pumpe läuft zu lange! Automatisch ausgeschaltet.");
    digitalWrite(pumpRelayPin, HIGH); // Pumpe AUS
  }
}