Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Slim Hydroponisch Systeem met Arduino Mega 2560 & Sensoren

Onderdelen en benodigdheden

OnderdeelAantal
Arduino Mega 25601
DHT22 Temperatuursensor / DHT11 Vochtigheidssensor1
Relais (generiek)1
RobotGeek Lichtsensor1
Temperatuursensor1

Apps en online diensten

  • Arduino IDE

Over dit project

Hydroponica is een vorm van landbouw zonder grond. Aangezien grond na verloop van tijd voedingsstoffen verliest, biedt hydroponica een oplossing. Plantengroei en voeding kunnen beter worden gecontroleerd, en planten die normaal alleen in een bepaald seizoen groeien, kunnen het hele jaar door geteeld worden. Dit project meet en regelt vochtigheid, licht en temperatuur voor een sla-plant.

Specificaties voor sla

  • Temperatuur: 25 tot 30 °C
  • Vochtigheid: 50% tot 80%
  • Lichtintensiteit: 250 fotonen per seconde

Lichtregeling

Er wordt een array van 3mm LED's gebruikt (8 rode, 8 blauwe) aangesloten in series van 4, wat een 12V voeding vereist. De LED's worden bestuurd via een optokoppler IC 4N35. Een LDR-lichtsensor meet de intensiteit, omgerekend naar fotonen per seconde in de code.

Temperatuurregeling

Twee ventilatoren en een gloeilamp regelen de temperatuur. Een LM35-sensor meet de omgevingstemperatuur. Bij te hoge temperatuur gaat de koelventilator aan; bij te lage temperatuur worden de verwarmingsventilator en gloeilamp ingeschakeld. De lamp zit in een afdoende doos zodat het licht de lichtsensor niet beïnvloedt. Beide ventilatoren worden aangedreven via een motordriver, de gloeilamp via een relais.

Vochtigheidsregeling

Een DHT11-sensor meet de vochtigheid van het kakaopoeder (als grondvervanger). Een waterpomp met drupbevoorrading (gaten in een buis) voegt vocht toe wanneer nodig.

Belangrijke aandachtspunten

  • DHT11 heeft een responstijd van 1 Hz; wacht minstens 1 seconde tussen metingen.
  • LED-reeksen van 4 in serie vereisen 12V.
  • Wees voorzichtig met 230V op printplaat/breadboard; isoleer blote draden.
  • Plaats een weerstand tussen de optokoppler en de besturing.
  • De brushless DC-ventilator is unidirectioneel; montereer correct.

Code

#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(LEDrow4, HIGH);
  }
  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);
  }
}

Schema's

Zie de bijgevoegde afbeelding voor het schakelschema.

Productieproces

  1. Meststof: Wetenschap, Productie en Duurzame Toekomsten
  2. Een LED Besturen met een PIR-bewegingssensor op Raspberry Pi
  3. Een Goedkope Raspberry Pi Grondvochtigheidssensor Bouwen voor Slimme Irrigatie
  4. De DS18B20 Temperatuursensor Testen op Raspberry Pi
  5. Een Raspberry Pi thuistemperatuurmonitor bouwen met MCP9808, InfluxDB & Grafana
  6. Sensor Telemetrie 2.0.1 – Geavanceerde Temperatuurbewaking met Azure IoT Hub
  7. Emotiesensor & EEG: Goedkope Hardware voor Real-time Emotiedetectie
  8. UnifiedWater v1 – Complete Arduino Waterkwaliteit Sensor Kit
  9. Hall Effect Sensoren: Principes, Toepassingen en Ontwerp
  10. De zuurstofsensor (O2) begrijpen: functie, plaatsing en defectherkenning
  11. Hoe Grondvochtigheidssensoren Werken en Hun Praktische Toepassingen