Sprache auswählen

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

Viel Erfolg wünschen wir Ihnen!

Überwachung und Steuerung der Umgebung:
    Temperatur, Luftfeuchte und CO2

Neben Wasser und Licht beeinflussen auch die Umgebungsparameter wie Temperatur, Luftfeuchtigkeit und CO2-Konzentration maßgeblich das Pflanzenwachstum und die Gesundheit der Aquaponik-Fische. Eine präzise Überwachung und intelligente Steuerung dieser Faktoren optimiert die Bedingungen im smarten Gewächshaus und steigert die Produktivität. Dieser Artikel beleuchtet die Integration relevanter Sensoren und Aktoren zur Schaffung eines idealen Mikroklimas.

4.1 Bedeutung der Umgebungsparameter

Jeder Umgebungsparameter spielt eine spezifische Rolle im Ökosystem des smarten Gartens:

  • Lufttemperatur: Beeinflusst die Rate der Photosynthese, Atmung und Transpiration der Pflanzen. Auch für das Wohlbefinden und den Stoffwechsel der Fische in Aquaponik-Systemen ist eine stabile Wassertemperatur entscheidend (oft eng mit Lufttemperatur verbunden).
  • Luftfeuchtigkeit: Beeinflusst die Transpirationsrate der Pflanzen. Eine zu hohe Luftfeuchtigkeit kann Pilzbefall fördern, eine zu niedrige zu Stress und Welke führen. Das Vapor Pressure Deficit (VPD) ist ein fortschrittlicherer Parameter, der Temperatur und Luftfeuchtigkeit kombiniert.
  • CO2-Konzentration: Kohlendioxid ist ein essenzieller Rohstoff für die Photosynthese. In geschlossenen Systemen kann es schnell limitiert sein, was das Wachstum bremst. Eine Anreicherung kann den Ertrag steigern.

4.2 Sensoren zur Umgebungsüberwachung

Für die Erfassung dieser Parameter stehen verschiedene Sensortypen zur Verfügung:

4.2.1 Temperatur- und Luftfeuchtigkeitssensoren

Kombinierte Sensoren sind kostengünstig und platzsparend.

Sensor-Typen:
  • DHT11/DHT22 (ca. 5–15 €): Weit verbreitet für Hobbyprojekte. DHT11 ist günstiger, aber weniger präzise (±2°C, ±5% RH) und langsamer. DHT22 (oder AM2302) ist genauer (±0.5°C, ±2% RH) und für die meisten Anwendungen ausreichend. Beide nutzen ein proprietäres digitales Protokoll und benötigen eine spezielle Bibliothek.
  • BME280/BMP280 (ca. 10–25 €): Digitale Sensoren von Bosch, die über I²C oder SPI kommunizieren. Der BME280 misst Temperatur, Luftfeuchtigkeit und Luftdruck. Der BMP280 nur Temperatur und Druck. Sie sind präziser (±0.5°C, ±3% RH für Feuchtigkeit) und schneller als DHT-Sensoren. Ideal für professionellere Anwendungen.

4.2.2 CO2-Sensoren

Die Messung von CO2 erfolgt typischerweise mit NDIR-Sensoren (Non-Dispersive Infrared).

Sensor-Typen:
  • MH-Z19B / MH-Z19C (ca. 30–60 €): Kostengünstige NDIR-CO2-Sensoren, die über UART oder PWM kommunizieren. Sie bieten eine Genauigkeit von ±50 ppm + 5% des Messwerts und sind für geschlossene Gewächshäuser gut geeignet. Verfügen oft über eine Auto-Kalibrierungsfunktion (ABC-Logik), die regelmäßige Frischluftzyklen voraussetzt.
  • SCD30 (ca. 60–90 €): Ein präziserer und oft kompakterer CO2-, Temperatur- und Feuchtigkeitssensor von Sensirion, der über I²C kommuniziert. Bietet eine höhere Genauigkeit (±30 ppm + 3% des Messwerts) und ist ebenfalls für den Einsatz in Innenräumen optimiert.

4.3 Steuerung der Umgebungsparameter

Basierend auf den Sensordaten können Aktoren zur Aufrechterhaltung optimaler Bedingungen eingesetzt werden.

4.3.1 Automatische Belüftung und Heizung/Kühlung

Eine stabile Lufttemperatur und Luftfeuchtigkeit sind entscheidend, um Pflanzenstress zu minimieren und Krankheiten vorzubeugen.

Technische Umsetzung:
  1. Sensoren: BME280 oder DHT22 liefern Temperatur- und Feuchtigkeitsdaten.
  2. Mikrocontroller: Verarbeitet die Sensordaten und implementiert Regelalgorithmen (z.B. Hysterese-Regelung).
  3. Aktoren:
    • Abluftventilator: Gesteuert über ein Relaismodul, um überschüssige Wärme abzuführen oder feuchte Luft auszutauschen.
    • Zuluftklappe/Lüfter: Kann ebenfalls über ein Relais gesteuert werden, um Frischluft zuzuführen.
    • Heizmatte/Heizlüfter: Ebenfalls über Relais geschaltet, um die Temperatur bei Bedarf zu erhöhen.
    • Aktivkohlefilter: Optional in der Abluft, um Gerüche zu neutralisieren.
Praktische Idee: Temperatur- und Feuchtigkeitsregler

Der ESP32 liest kontinuierlich die Daten des BME280. Wenn die Temperatur über einen Schwellenwert (z.B. 28°C) steigt, wird der Abluftventilator aktiviert. Fällt sie unter einen unteren Schwellenwert (z.B. 20°C), kann eine Heizmatte zugeschaltet werden. Ähnlich kann die Luftfeuchtigkeit reguliert werden: Bei zu hoher Feuchtigkeit (z.B. >70% RH) wird der Ventilator aktiviert, um feuchte Luft abzuführen. Eine Hysterese (z.B. Einschalten bei 28°C, Ausschalten bei 26°C) ist wichtig, um ständiges Ein- und Ausschalten zu vermeiden.


// Vereinfachtes Arduino/ESP32 Code-Beispiel für Temperatur/Feuchtigkeitsregler mit BME280 #include <wire.h> #include <adafruit_sensor.h> #include <adafruit_bme280.h> // Bibliothek für BME280 Sensor #define SEALEVELPRESSURE_HPA (1013.25) // Standard Atmosphärendruck Adafruit_BME280 bme; // I2C const int exhaustFanRelayPin = 18; // Abluftventilator const int heaterRelayPin = 19; // Heizmatte const float tempHighThreshold = 28.0; // °C, Ventilator AN const float tempLowThreshold = 26.0; // °C, Ventilator AUS const float tempMinThreshold = 20.0; // °C, Heizmatte AN const float tempMaxThreshold = 22.0; // °C, Heizmatte AUS const float humidityHighThreshold = 75.0; // %RH, Ventilator AN const float humidityLowThreshold = 70.0; // %RH, Ventilator AUS void setup() { Serial.begin(115200); Serial.println("Starte Umgebungskontrolle."); if (!bme.begin(0x76)) { // I2C-Adresse des BME280 Serial.println("Konnte BME280 nicht finden, überprüfe Verkabelung oder Adresse!"); while (1); } pinMode(exhaustFanRelayPin, OUTPUT); pinMode(heaterRelayPin, OUTPUT); digitalWrite(exhaustFanRelayPin, HIGH); // Ventilator AUS (Relais oft inverted) digitalWrite(heaterRelayPin, HIGH); // Heizung AUS delay(100); } void loop() { float temperature = bme.readTemperature(); float humidity = bme.readHumidity(); Serial.printf("Temp: %.2f °C, Hum: %.2f %%\n", temperature, humidity); // Temperaturregelung if (temperature > tempHighThreshold) { if (digitalRead(exhaustFanRelayPin) == HIGH) { Serial.println("Temp zu hoch, Ventilator AN."); digitalWrite(exhaustFanRelayPin, LOW); // Ventilator AN } if (digitalRead(heaterRelayPin) == LOW) { // Heizung AUS, wenn Ventilator an ist Serial.println("Temp zu hoch, Heizung AUS."); digitalWrite(heaterRelayPin, HIGH); // Heizung AUS } } else if (temperature < tempLowThreshold && temperature > tempMinThreshold) { if (digitalRead(exhaustFanRelayPin) == LOW) { Serial.println("Temp OK, Ventilator AUS."); digitalWrite(exhaustFanRelayPin, HIGH); // Ventilator AUS } } if (temperature < tempMinThreshold) { if (digitalRead(heaterRelayPin) == HIGH) { Serial.println("Temp zu niedrig, Heizung AN."); digitalWrite(heaterRelayPin, LOW); // Heizung AN } if (digitalRead(exhaustFanRelayPin) == LOW) { // Ventilator AUS, wenn Heizung an ist Serial.println("Temp zu niedrig, Ventilator AUS."); digitalWrite(exhaustFanRelayPin, HIGH); // Ventilator AUS } } else if (temperature > tempMaxThreshold && temperature < tempHighThreshold) { if (digitalRead(heaterRelayPin) == LOW) { Serial.println("Temp OK, Heizung AUS."); digitalWrite(heaterRelayPin, HIGH); // Heizung AUS } } // Luftfeuchtigkeitsregelung (kann mit Temperaturregelung interagieren, hier vereinfacht) if (humidity > humidityHighThreshold) { if (digitalRead(exhaustFanRelayPin) == HIGH) { Serial.println("Feuchte zu hoch, Ventilator AN."); digitalWrite(exhaustFanRelayPin, LOW); // Ventilator AN } } else if (humidity < humidityLowThreshold) { // Hier könnte ein Luftbefeuchter gesteuert werden, wenn nötig. // Oder sicherstellen, dass der Ventilator AUS ist, wenn Feuchte OK. if (digitalRead(exhaustFanRelayPin) == LOW && temperature < tempHighThreshold) { // Nur ausschalten, wenn Temp es erlaubt Serial.println("Feuchte OK, Ventilator AUS (falls nicht wegen Temp an)."); digitalWrite(exhaustFanRelayPin, HIGH); } } delay(5000); // Alle 5 Sekunden messen }

4.3.2 CO2-Anreicherung

In geschlossenen Anbausystemen kann die CO2-Konzentration schnell unter das atmosphärische Niveau sinken (ca. 400 ppm), was die Photosyntheseleistung begrenzt. Eine kontrollierte CO2-Anreicherung auf 800-1500 ppm kann den Ertrag deutlich steigern.

Wir empfehlen ! dringend ! nicht CO2 der Gewächshaus-Umluft zu zu fügen sondern das Fenster, wenn möglich, einfach zu öffnen. Da es aber auch im Hobby-Bereich echte Profis gibt, haben wir diesen Artikel auf mehrfaches Nachfragen trotzdem auch für Hobby-isten hier eingestellt. Bedenken Sie aber: das ist noch gefährlicher als eine Gas-Installation. CO2 explodoiert natürlich nicht (Schutzgas-Eigenschaften) aber es ist heimtückisch da Sie es im Gegensatz zu Gas nicht riechen können und einfach ersticken - nicht am CO2 sondern mangels Sauerstoff !

CO₂ Konzentration und ihre gesundheitlichen Auswirkungen

CO₂ Konzentration Wirkung
400 – 1.000 ppm Normale Hintergrundkonzentration in frischer Luft oder gut belüfteten Räumen.
1.000 – 2.000 ppm Leichte Müdigkeit, Konzentrationsstörungen, möglicherweise Kopfschmerzen.
2.000 – 5.000 ppm Deutliche Beeinträchtigungen: Kopfschmerzen, Schwindel, Benommenheit, erhöhter Puls.
> 5.000 ppm Toxischer Bereich: Übelkeit, Bewusstlosigkeit bei längerer Exposition.
> 40.000 ppm (4%) Lebensgefährlich: Starke Atemnot, Bewusstlosigkeit, akute Gesundheitsgefahr.
> 100.000 ppm (10%) Gefährlich: Schneller Tod durch Atemstillstand und Azidose.
Wichtig: CO₂ ist nicht giftig im klassischen Sinn, aber es verdrängt Sauerstoff und führt zu Erstickungssymptomen.
Achtung: In Arbeitsumgebungen gelten Grenzwerte: 5.000 ppm (0,5 Vol.-%) als maximal zulässige Arbeitsplatzkonzentration (MAK-Wert).

 

Technische Umsetzung:
  1. CO2-Sensor: Ein MH-Z19B oder SCD30 liefert die aktuellen CO2-Werte.
  2. Mikrocontroller: Vergleicht den gemessenen CO2-Wert mit dem Zielwert.
  3. Aktor – Magnetventil für CO2-Flasche: Ein spezielles Magnetventil für CO2-Druckflaschen (oft 12V oder 24V) wird über ein Relaismodul gesteuert. Alternativ kann ein CO2-Generator (z.B. mit Trockeneis oder enzymatischen Prozessen) verwendet werden.
Praktische Idee: Einfache CO2-Regelung

Der ESP32 liest den CO2-Wert vom Sensor. Wenn der Wert unter einen definierten Schwellenwert (z.B. 800 ppm) fällt, öffnet der Mikrocontroller das Magnetventil der CO2-Flasche für eine kurze, definierte Zeit (z.B. 10-30 Sekunden). Danach wird eine Wartezeit (z.B. 5-10 Minuten) eingelegt, damit sich das CO2 verteilen kann und der Sensor den neuen Wert erfasst, bevor erneut dosiert wird. Wichtig: Eine CO2-Anreicherung sollte nur während der Beleuchtungsphase erfolgen, da Pflanzen im Dunkeln kein CO2 verbrauchen.

Sicherheitshinweis: CO2 in hohen Konzentrationen ist für den Menschen gefährlich. Eine ausreichende Belüftung des Raumes bei Anwesenheit von Personen ist unerlässlich. Das System sollte niemals CO2 freisetzen, wenn sich Personen im Raum aufhalten.


// Vereinfachtes Arduino/ESP32 Code-Beispiel für CO2-Regelung mit MH-Z19B (UART) // Benötigt SoftwareSerial für Arduino oder die Hardware-UART des ESP32 // Beispiel für ESP32 HardwareSerial: #define MHZ19B_RX_PIN 16 // GPIO, der an TX des MH-Z19B geht #define MHZ19B_TX_PIN 17 // GPIO, der an RX des MH-Z19B geht HardwareSerial SerialMHZ(1); // Verwende Serial1 auf ESP32 const int co2ValveRelayPin = 21; // Relais für CO2-Magnetventil const int targetCO2 = 1000; // Ziel-CO2 in ppm const int co2DoseThreshold = 100; // ppm unter Ziel, bevor dosiert wird const int doseDuration = 10000; // 10 Sekunden CO2 dosieren (ms) const long dosePause = 5 * 60 * 1000; // 5 Minuten Pause nach Dosierung (ms) unsigned long lastDoseTime = 0; bool isDaytime = true; // Annahme: Hier RTC oder Lichtsensor einbinden! void setup() { Serial.begin(115200); SerialMHZ.begin(9600, SERIAL_8N1, MHZ19B_RX_PIN, MHZ19B_TX_PIN); // MH-Z19B Baudrate 9600 pinMode(co2ValveRelayPin, OUTPUT); digitalWrite(co2ValveRelayPin, HIGH); // CO2-Ventil AUS starten Serial.println("Starte CO2-Kontrolle."); delay(100); } void loop() { // Lese CO2-Wert (MH-Z19B benötigt spezielle Anfrage) int co2ppm = readMHZ19B(); // Funktion zum Lesen des CO2-Werts implementieren Serial.printf("CO2: %d ppm\n", co2ppm); // CO2-Regelung nur bei Tag und wenn ausreichend Zeit seit letzter Dosierung if (isDaytime && (millis() - lastDoseTime > dosePause)) { if (co2ppm < (targetCO2 - co2DoseThreshold)) { Serial.println("CO2 zu niedrig, Ventil AN."); digitalWrite(co2ValveRelayPin, LOW); // Ventil AN lastDoseTime = millis(); delay(doseDuration); // Dosierdauer digitalWrite(co2ValveRelayPin, HIGH); // Ventil AUS Serial.println("CO2 Dosierung beendet."); delay(2000); // Kurze Pause für Sensor } } else if (!isDaytime) { // Sicherstellen, dass Ventil bei Nacht AUS ist if (digitalRead(co2ValveRelayPin) == LOW) { digitalWrite(co2ValveRelayPin, HIGH); Serial.println("Nacht, CO2-Ventil AUS."); } } delay(5000); // Wartezeit zwischen Messungen // --- MH-Z19B Lese-Funktion (vereinfacht, benötigt Fehlerbehandlung) --- // https://github.com/WifWaf/MH-Z19/blob/master/MHZ19.h // Dies ist ein Platzhalter, eine vollständige Implementierung ist komplexer. int readMHZ19B() { byte cmd[9] = {0xFF, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79}; // Request CO2 SerialMHZ.write(cmd, 9); delay(100); // Warte auf Antwort if (SerialMHZ.available() >= 9) { byte response[9]; SerialMHZ.readBytes(response, 9); if (response[0] == 0xFF && response[1] == 0x86) { return (response[2] << 8) | response[3]; } } return -1; // Fehler } }

4.4 Integration in ein ganzheitliches System

Die Steuerung von Temperatur, Luftfeuchtigkeit und CO2 sollte nicht isoliert betrachtet werden, da diese Parameter sich gegenseitig beeinflussen:

  • Ventilation und CO2: Eine hohe Belüftung zur Temperatur- oder Feuchtigkeitsreduktion kann die CO2-Konzentration senken. Die Regelungslogik muss dies berücksichtigen, z.B. CO2-Anreicherung nur bei geschlossenen Lüftungsklappen.
  • Licht und Wärme: Beleuchtung erzeugt Wärme. Eine erhöhte Lichtintensität kann höhere Belüftungsanforderungen nach sich ziehen.
  • Transpiration und Feuchtigkeit: Pflanzen transpirieren Wasser, was die Luftfeuchtigkeit erhöht. Die Bewässerungsstrategie und die Umgebungsfeuchtigkeit sind eng gekoppelt.

Ein fortschrittliches System würde diese Abhängigkeiten in einem zentralen Regelalgorithmus berücksichtigen, um optimale und energieeffiziente Zustände zu erreichen.

4.5 Fazit

Die Überwachung und intelligente Steuerung von Temperatur, Luftfeuchtigkeit und CO2 sind essenziell für die Maximierung des Ertrags und die Schaffung einer gesunden Wachstumsumgebung. Durch den Einsatz geeigneter Sensoren und Aktoren, gekoppelt mit durchdachter Regelungslogik, können Betreiber von Aquaponik- und Hydroponik-Systemen das Mikroklima präzise an die Bedürfnisse ihrer Pflanzen anpassen. Die nächste und abschließende Episode dieser Serie wird sich mit der Alarmierung, Fernüberwachung und Datenanalyse befassen, um das System zu perfektionieren und stets im Blick zu behalten.

Kontext: