Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Intelligentes Hydroponik-System mit Arduino Mega 2560 und Sensoren

Komponenten und Zubehör

KomponenteMenge
Arduino Mega 25601
DHT22 Temperatursensor / DHT11 Feuchtigkeitssensor1
Relais (generic)1
RobotGeek Lichtsensor1
Temperatursensor (LM35)1

Apps und Online-Dienste

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):

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

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

  1. Düngemittel: Wissenschaft, Produktion und nachhaltige Zukünfte
  2. Bodenfeuchtesensoren: Funktionsweise und praktische Anwendungen
  3. Lambda-Sonde (O2-Sensor) verstehen: Rolle, Position und Ausfallanzeichen
  4. LED mit PIR-Bewegungsmelder am Raspberry Pi steuern
  5. Günstiger Raspberry Pi Bodenfeuchtesensor für smarte Bewässerung
  6. DS18B20 Temperatursensor am Raspberry Pi testen
  7. Raspberry Pi Heimtemperaturmonitor mit MCP9808, InfluxDB & Grafana bauen
  8. Sensor Telemetrie 2.0.1 – Fortschrittliche Temperaturüberwachung mit Azure IoT Hub
  9. Emotionssensor & EEG: Günstige Hardware für Echtzeit-Emotionserkennung
  10. Hall-Effekt-Sensoren meistern: Prinzip, Anwendungen & Design