Intelligentes Hydroponik-System mit Arduino Mega 2560 und Sensoren
Komponenten und Zubehör
| Komponente | Menge |
|---|---|
| Arduino Mega 2560 | 1 |
| DHT22 Temperatursensor / DHT11 Feuchtigkeitssensor | 1 |
| Relais (generic) | 1 |
| RobotGeek Lichtsensor | 1 |
| Temperatursensor (LM35) | 1 |
Apps und Online-Dienste
- Arduino IDE
Projektbeschreibung
Hydroponik ist eine bodenlose Anbaumethode. Da Boden mit der Zeit Nährstoffe und Fruchtbarkeit verliert, ermöglicht Hydroponik eine kontrollierte Pflanzenzucht unabhängig von der Jahreszeit. Dieses Projekt modelliert ein solches System, wobei Erde durch Kakaopulver ersetzt wird. Gesteuert werden drei kritische Parameter für das Pflanzenwachstum (am Beispiel von Salat):
- Temperatur: 25–30 °C
- Luftfeuchtigkeit: 50–80 %
- Lichtintensität: 250 Photonen pro Sekunde
Lichtsteuerung
Verwendet wird ein Array aus 3-mm-LEDs (8 rote, 8 blaue) in Reihen- und Parallelschaltung. Vier LEDs in Reihe benötigen 12 V. Zur Ansteuerung dient ein Optokoppler IC 4N35. Ein LDR-basierter Lichtsensor misst die Intensität; die Werte werden im Arduino-Code in Photonen pro Sekunde umgerechnet.
Temperatursteuerung
Zwei Lüfter und eine Glühbirne regeln die Temperatur. Ein LM35-Sensor misst die Umgebungstemperatur. Bei Überschreitung des Sollwerts schaltet der Kühlventilator ein; bei Unterschreitung werden Heizlüfter und Glühbirne aktiviert (die Birne sitzt in einer separaten Box, um den Lichtsensor nicht zu beeinflussen). Beide Lüfter werden über einen Motortreiber, die Birne über ein Relais gesteuert.
Feuchtigkeitssteuerung
Ein DHT11-Sensor überwacht die Feuchtigkeit des Kakaopulvers. Zur Erhöhung der Feuchtigkeit dient eine Tauchpumpe mit Tropfbewässerungsschlauch.
Wichtige Hinweise
- DHT11 hat eine Antwortzeit von 1 Hz → Mindestabstand zwischen Messungen: 1 Sekunde.
- LED-Reihen (4 in Serie) benötigen 12 V Versorgung.
- Bei 230 V-Anschluss: Sicherheitsvorkehrungen treffen, blanken Drähte isolieren.
- Optokoppler nicht direkt ansteuern – Vorwiderstand verwenden.
- Bürstenlose DC-Lüfter sind unidirektional → korrekt montieren.
Code
Der Arduino-Sketch steuert Lüfter, Heizung, LEDs und Pumpe basierend auf Sensordaten. Er nutzt die SimpleDHT-Bibliothek für den DHT11.
#include <SimpleDHT.h>
int pinDHT11 = 41;
int coolingFan = 50;
int heatingFan = 48;
int heater = 3;
int LEDrow1 = 25;
int LEDrow2 = 27;
int LEDrow3 = 29;
int LEDrow4 = 31;
int pump = 31;
SimpleDHT11 dht11;
void setup() {
Serial.begin(115200);
pinMode(coolingFan, OUTPUT);
pinMode(heatingFan, OUTPUT);
pinMode(heater, OUTPUT);
pinMode(LEDrow1, OUTPUT);
pinMode(LEDrow2, OUTPUT);
pinMode(LEDrow3, OUTPUT);
pinMode(LEDrow4, OUTPUT);
pinMode(pump, OUTPUT);
}
void loop() {
temperature();
light();
humidity();
}
void temperature() {
int value = analogRead(A10);
float volts = (value / 1024.0) * 5.0;
float temp = volts * 100.0;
Serial.print("temp=");
Serial.println(temp);
delay(1000);
if (temp < 25) {
digitalWrite(heater, LOW);
digitalWrite(heatingFan, HIGH);
} else {
digitalWrite(heater, HIGH);
digitalWrite(heatingFan, LOW);
}
if (temp > 30) {
digitalWrite(coolingFan, HIGH);
} else {
digitalWrite(coolingFan, LOW);
}
}
void light() {
float ldrdata = analogRead(A8);
float resistorVolt = (1024 - ldrdata) / 1024.0 * 5.0;
float ldrVolt = 5.0 - resistorVolt;
float ldrResistance = ldrVolt / resistorVolt * 5000.0;
float lux = (12518931) * pow(ldrResistance, -1.405);
float photons = lux * 0.019;
delay(1000);
if (photons < 50) {
digitalWrite(LEDrow1, HIGH);
digitalWrite(LEDrow2, HIGH);
digitalWrite(LEDrow3, HIGH);
digitalWrite(LEDrow1, HIGH); // doppelt im Original
}
if (photons > 100) {
digitalWrite(LEDrow1, LOW);
digitalWrite(LEDrow2, LOW);
digitalWrite(LEDrow3, LOW);
digitalWrite(LEDrow4, LOW);
}
}
void humidity() {
byte temperature = 0;
byte humidity = 0;
int err = SimpleDHTErrSuccess;
if ((err = dht11.read(pinDHT11, &temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
Serial.println(err);
delay(1000);
return;
}
int humid = (int)humidity;
Serial.println(" H");
delay(2000);
if (humid < 85) {
digitalWrite(pump, HIGH);
digitalWrite(coolingFan, LOW);
}
if (humid > 94) {
digitalWrite(coolingFan, HIGH);
digitalWrite(pump, LOW);
}
}
Schaltplan
Ein Schaltplanbild ist im Projekt enthalten (siehe Originaldatei).
Herstellungsprozess
- Düngemittel: Wissenschaft, Produktion und nachhaltige Zukünfte
- Bodenfeuchtesensoren: Funktionsweise und praktische Anwendungen
- Lambda-Sonde (O2-Sensor) verstehen: Rolle, Position und Ausfallanzeichen
- LED mit PIR-Bewegungsmelder am Raspberry Pi steuern
- Günstiger Raspberry Pi Bodenfeuchtesensor für smarte Bewässerung
- DS18B20 Temperatursensor am Raspberry Pi testen
- Raspberry Pi Heimtemperaturmonitor mit MCP9808, InfluxDB & Grafana bauen
- Sensor Telemetrie 2.0.1 – Fortschrittliche Temperaturüberwachung mit Azure IoT Hub
- Emotionssensor & EEG: Günstige Hardware für Echtzeit-Emotionserkennung
- Hall-Effekt-Sensoren meistern: Prinzip, Anwendungen & Design