Système hydroponique intelligent avec Arduino Mega 2560 et capteurs
Composants et fournitures
| Arduino Mega 2560 | × | 1 |
| Capteur de température DHT22 / Capteur d'humidité DHT11 | × | 1 |
| Relais (générique) | × | 1 |
| Capteur de lumière RobotGeek | × | 1 |
| Capteur de température | × | 1 |
Applications et services en ligne
- Arduino IDE
À propos du projet
L'hydroponie est un type d'agriculture sans sol. Le sol perd ses nutriments et sa fertilité avec le temps ; l'hydroponie permet d'éviter ce problème. La croissance et la nutrition des plantes peuvent être améliorées et contrôlées. Des plantes qui ne poussent qu'à une période spécifique de l'année peuvent être cultivées toute l'année. On peut également surveiller la croissance de la plante, le niveau de nutriments, l'humidité du substrat et la quantité de lumière reçue.
Introduction
Ce projet est un modèle du système réel. Ici, le sol est remplacé par de la poudre de cacao. On peut contrôler facilement l'humidité et les nutriments de la poudre de cacao, contrairement au sol normal. Dans ce projet, nous contrôlons trois critères pour la croissance des plantes : humidité, lumière et température. Pour notre modèle, nous utilisons les spécifications d'une plante de laitue :
- Température : 25 à 30 °C
- Humidité : 50 % à 80 %
- Intensité lumineuse : 250 photons par seconde
Contrôle de la lumière
Pour notre modèle, nous utilisons un réseau de LED de 3 mm connectées en série et en parallèle : 16 LED (8 rouges et 8 bleues). Un réseau de 4 LED en série nécessite une alimentation de 12 V. Pour contrôler les LED avec l'Arduino, nous utilisons un optocoupleur IC 4N35. Pour mesurer l'intensité lumineuse, nous utilisons un capteur de lumière avec LDR. Les lectures du capteur sont converties en photons par seconde via le code Arduino.
Contrôle de la température
Les plantes nécessitent une température adaptée à leur croissance. Nous contrôlons la température du modèle à l'aide de deux ventilateurs et d'une ampoule à incandescence. Pour détecter la température ambiante, nous utilisons le CI LM35. Lorsque la température dépasse la valeur requise, un ventilateur de refroidissement s'allume. Lorsqu'elle est en dessous, un ventilateur de chauffage et une ampoule à incandescence s'allument. L'ampoule est placée à l'extérieur dans une boîte séparée pour que son intensité lumineuse n'affecte pas le capteur de lumière. L'ampoule chauffe la boîte et le ventilateur de chauffage propulse l'air chaud à l'intérieur. Les deux ventilateurs sont contrôlés via un driver de moteur et l'ampoule via un relais.
Contrôle de l'humidité
La poudre de cacao doit contenir une quantité adéquate de particules d'eau pour la photosynthèse. Pour détecter l'humidité du substrat, nous utilisons le capteur DHT11 (utilisé ici uniquement pour l'humidité). Pour augmenter la teneur en eau, une pompe à eau est connectée à un tuyau percé (irrigation goutte-à-goutte).
Points à noter
- Le capteur DHT11 a un temps de réponse de 1 Hz ; le délai entre chaque lecture doit être d'au moins 1 seconde.
- La rangée de LED connectées en série de 4 nécessite une alimentation de 12 V.
- Respecter la sécurité lors du raccordement du 230 V sur PCB ou breadboard ; isoler les fils nus avec du ruban adhésif électrique.
- Ne pas envoyer un signal direct à l'optocoupleur ; connecter une résistance entre eux.
- Le ventilateur DC sans balais utilisé est unidirectionnel ; le monter en conséquence.
Code
Hydroponics (Arduino)
#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);
}
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);
}
}
Schémas
Schéma de câblage disponible dans le projet original.
Processus de fabrication
- Engrais : Science, Production et Avenirs Durables
- Capteurs d'humidité du sol : Fonctionnement et applications pratiques
- Contrôler une LED avec un capteur de mouvement PIR sur Raspberry Pi
- Construire un capteur d'humidité du sol Raspberry Pi low-cost pour irrigation intelligente
- Test du capteur de température DS18B20 sur Raspberry Pi
- Construire un moniteur de température domestique avec Raspberry Pi, MCP9808, InfluxDB et Grafana
- Télémétrie de capteur 2.0.1 – Surveillance avancée de température avec Azure IoT Hub
- Capteur d'émotion & EEG : Matériel low-cost pour détection d'émotion en temps réel
- Maîtriser les capteurs à effet Hall : Principes, applications, conception