Incubateur utilisant Arduino avec contrôle automatique de la température et de l'humidité

Essayez Notre Instrument Pour Éliminer Les Problèmes





Dans cet article, nous allons construire un incubateur utilisant Arduino qui peut autoréguler sa température et son humidité. Ce projet a été suggéré par M. Imran yousaf qui est un lecteur assidu de ce site.



introduction

Ce projet a été conçu selon les suggestions de M. Imran, mais quelques modifications supplémentaires sont apportées pour rendre ce projet universellement adapté à tous.

Vous pouvez utiliser votre créativité et votre imagination pour mener à bien ce projet.



Alors, comprenons ce qu'est un incubateur? (Pour noobs)

L'incubateur est un appareil fermé dont l'environnement interne est isolé de l'environnement ambiant.

Ceci afin de créer un environnement favorable pour l'échantillon à soigner. Par exemple, les incubateurs sont utilisés pour faire pousser des organismes microbiens dans les laboratoires, les incubateurs sont utilisés dans les hôpitaux pour prendre soin des nourrissons prématurés.

Le type d'incubateur que nous allons construire dans ce projet est destiné à faire éclore des œufs de poule ou tout autre œuf d'oiseau.

Tous les incubateurs ont un point commun: régulariser la température, l'humidité et fournir un apport suffisant en oxygène.

Vous pouvez régler la température et l'humidité en appuyant sur les boutons fournis et il montre également la température et l'humidité internes en temps réel. Une fois les deux paramètres définis, il contrôle automatiquement l'élément chauffant (ampoule) et le vaporisateur (humidificateur) pour atteindre le point de consigne.

Voyons maintenant l’appareil et la conception de l’incubateur.

Le châssis de l'incubateur peut être en polystyrène / boîte thermocol ou en verre acrylique qui peut fournir une bonne isolation thermique. Je recommanderais une boîte en polystyrène / thermocol qui sera plus facile à travailler.

Conception d'appareil:

disposition des matériaux de l

Une ampoule de 25 watts agit comme source de chaleur.Une puissance plus élevée peut blesser les œufs dans un petit récipient. L'humidité est fournie par le vaporisateur, vous pouvez utiliser le vaporisateur quelque chose de similaire comme indiqué ci-dessous.

Il produit un épais jet de vapeur qui sera introduit dans l'incubateur. La vapeur peut être transportée via n'importe quel tube flexible.

Le tube flexible peut être quelque chose de similaire comme indiqué ci-dessous:

La vapeur peut être entrée par le haut de la boîte en polystyrène / thermocol comme indiqué dans la conception de l'appareil, de sorte que la chaleur en excès s'échappe par les trous de contrôle de l'humidité et moins blesser les œufs.

Il y a un cylindre portant des œufs avec plusieurs trous autour de lui, connecté à un servomoteur. Le servomoteur fait tourner le cylindre de 180 degrés toutes les 8 heures et fait ainsi tourner les œufs.

La rotation des œufs empêche l'embryon de coller à la membrane de la coquille et fournit également un contact avec la matière alimentaire de l'œuf, en particulier au stade précoce de l'incubation.

Le cylindre rotatif doit avoir plusieurs nombres de trous pour que l'air circule correctement et le cylindre doit également être creux des deux côtés.

Le cylindre rotatif peut être un tube en PVC ou un cylindre en carton.

Collez un bâtonnet de crème glacée aux deux extrémités du cylindre creux de sorte que le bâtonnet de crème glacée forme deux demi-cercles égaux. Collez le bras du servomoteur au milieu du bâtonnet de glace. De l'autre côté, percez un trou et collez fermement un cure-dent.

Insérez le cure-dent à l'intérieur de la boîte et collez le servo sur le mur opposé à l'intérieur de la boîte. Le cylindre doit rester aussi horizontal que possible, maintenant le cylindre peut tourner pendant que le servomoteur tourne.

Et oui, utilisez votre créativité pour améliorer les choses.

Si vous souhaitez accueillir plus d'œufs, créez plus de cylindres et plusieurs servomoteurs peuvent être connectés sur la même broche de ligne de commande.

Les trous de contrôle de l'humidité peuvent être réalisés en poussant un crayon à travers la boîte en polystyrène / thermocol en haut. Si vous avez fait beaucoup de trous inutiles ou si l'humidité ou la température s'échappe trop rapidement, vous pouvez couvrir certains des trous avec du ruban électrique ou du ruban adhésif.

Le capteur DHT11 est au cœur du projet qui peut être placé au milieu de quatre côtés de l'incubateur (à l'intérieur) mais loin de l'ampoule ou du tube d'entrée d'humidité.

Les ventilateurs du processeur peuvent être placés comme indiqué dans la conception de l'appareil pour la circulation de l'air. Pour une bonne circulation de l'air, utilisez au moins deux ventilateurs poussant l'air dans la direction opposée , par exemple: l'un des ventilateurs du processeur poussant vers le bas et un autre ventilateur du processeur poussant vers le haut.

La plupart des ventilateurs de processeur fonctionnent sur 12 V mais à 9 V fonctionnent très bien.

Tout dépend de l’appareil. Parlons maintenant du circuit.

Diagarm schématique:

Contrôle du moniteur LCD numérique de l

Le circuit ci-dessus est pour la connexion Arduino à LCD. Ajustez le potentiomètre 10K pour régler le contraste de l'écran LCD.

Contrôle automatique de la température de l

L'Arduino est le cerveau du projet. Il y a 3 boutons poussoirs pour régler la température et l'humidité. La broche A5 contrôle le relais pour le vaporisateur et A4 pour l'ampoule. Le capteur DHT11 est connecté à la broche A0. Les broches A1, A2 et A3 utilisées pour les boutons poussoirs.

La broche n ° 7 (broche non PWM) est connectée au fil de commande du servomoteur. Plusieurs servomoteurs peuvent être connectés à la broche n ° 7. Il y a une idée fausse que les servomoteurs ne fonctionnent qu'avec les broches PWM d'Arduino, ce qui n'est pas vrai. Cela fonctionne également avec les broches non PWM.

Connectez une diode 1N4007 à travers la bobine de relais en polarisation inverse pour éliminer les pointes de haute tension lors de la mise en marche et de l'arrêt.

Source de courant:

Circuit d

L'alimentation ci-dessus peut fournir une alimentation 9 V et 5 V pour les ventilateurs de relais, Arduino, servomoteur (SG90) et CPU. La prise DC est fournie pour alimenter l'Arduino.

Utilisez des dissipateurs de chaleur pour les régulateurs de tension.

Cela conclut l'alimentation électrique.

Téléchargez la bibliothèque DHT sensor:

https://arduino-info.wikispaces.com/file/detail/DHT-lib.zip

Code de programme:

//------------------Program Developed by R.GIRISH-------------------//
#include
#include
#include
#define DHT11 A0
const int ok = A1
const int UP = A2
const int DOWN = A3
const int bulb = A4
const int vap = A5
const int rs = 12
const int en = 11
const int d4 = 5
const int d5 = 4
const int d6 = 3
const int d7 = 2
int ack = 0
int pos = 0
int sec = 0
int Min = 0
int hrs = 0
int T_threshold = 25
int H_threshold = 35
int SET = 0
int Direction = 0
boolean T_condition = true
boolean H_condition = true
LiquidCrystal lcd(rs, en, d4, d5, d6, d7)
Servo motor
dht DHT
void setup()
{
pinMode(ok, INPUT)
pinMode(UP, INPUT)
pinMode(DOWN, INPUT)
pinMode(bulb, OUTPUT)
pinMode(vap, OUTPUT)
digitalWrite(bulb, LOW)
digitalWrite(vap, LOW)
digitalWrite(ok, HIGH)
digitalWrite(UP, HIGH)
digitalWrite(DOWN, HIGH)
motor.attach(7)
motor.write(pos)
lcd.begin(16, 2)
Serial.begin(9600)
lcd.setCursor(5, 0)
lcd.print('Digital')
lcd.setCursor(4, 1)
lcd.print('Incubator')
delay(1500)
}
void loop()
{
if (SET == 0)
{
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Set Temperature:')
lcd.setCursor(0, 1)
lcd.print(T_threshold)
lcd.print(' *C')
while (T_condition)
{
if (digitalRead(UP) == LOW)
{
T_threshold = T_threshold + 1
lcd.setCursor(0, 1)
lcd.print(T_threshold)
lcd.print(' *C')
delay(200)
}
if (digitalRead(DOWN) == LOW)
{
T_threshold = T_threshold - 1
lcd.setCursor(0, 1)
lcd.print(T_threshold)
lcd.print(' *C')
delay(200)
}
if (digitalRead(ok) == LOW)
{
delay(200)
T_condition = false
}
}
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Set Humidity:')
lcd.setCursor(0, 1)
lcd.print(H_threshold)
lcd.print('%')
delay(100)
while (H_condition)
{
if (digitalRead(UP) == LOW)
{
H_threshold = H_threshold + 1
lcd.setCursor(0, 1)
lcd.print(H_threshold)
lcd.print('%')
delay(100)
}
if (digitalRead(DOWN) == LOW)
{
H_threshold = H_threshold - 1
lcd.setCursor(0, 1)
lcd.print(H_threshold)
lcd.print('%')
delay(200)
}
if (digitalRead(ok) == LOW)
{
delay(100)
H_condition = false
}
}
SET = 1
}
ack = 0
int chk = DHT.read11(DHT11)
switch (chk)
{
case DHTLIB_ERROR_CONNECT:
ack = 1
break
}
if (ack == 0)
{
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Temp:')
lcd.print(DHT.temperature)
lcd.setCursor(0, 1)
lcd.print('Humidity:')
lcd.print(DHT.humidity)
if (DHT.temperature >= T_threshold)
{
delay(3000)
if (DHT.temperature >= T_threshold)
{
digitalWrite(bulb, LOW)
}
}
if (DHT.humidity >= H_threshold)
{
delay(3000)
if (DHT.humidity >= H_threshold)
{
digitalWrite(vap, LOW)
}
}
if (DHT.temperature {
delay(3000)
if (DHT.temperature {
digitalWrite(bulb, HIGH)
}
}
if (DHT.humidity {
delay(3000)
if (DHT.humidity {
digitalWrite(vap, HIGH)
}
}
sec = sec + 1
if (sec == 60)
{
sec = 0
Min = Min + 1
}
if (Min == 60)
{
Min = 0
hrs = hrs + 1
}
if (hrs == 8 && Min == 0 && sec == 0)
{
for (pos = 0 pos <= 180 pos += 1)
{
motor.write(pos)
delay(25)
}
}
if (hrs == 16 && Min == 0 && sec == 0)
{
hrs = 0
for (pos = 180 pos >= 0 pos -= 1)
{
motor.write(pos)
delay(25)
}
}
}
if (ack == 1)
{
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('No Sensor data.')
lcd.setCursor(0, 1)
lcd.print('System Halted.')
digitalWrite(bulb, LOW)
digitalWrite(vap, LOW)
}
delay(1000)
}
//------------------Program Developed by R.GIRISH-------------------//

Comment faire fonctionner le circuit:

· Une fois la configuration du matériel et de l'appareil terminée, mettez le circuit sous tension.

· L'écran affiche «température de consigne», appuyez sur le bouton haut ou bas pour obtenir la température désirée et appuyez sur «bouton de réglage».

· Maintenant, l'écran affiche «régler l'humidité», appuyez sur les boutons haut ou bas pour obtenir l'humidité désirée et appuyez sur «bouton de réglage».

· Il commence le fonctionnement de l'incubateur.

Veuillez consulter Internet ou demander conseil à un professionnel pour connaître la température et le niveau d'humidité des œufs.

Si vous avez des questions spécifiques concernant ce circuit de contrôle de température et d'humidité de l'incubateur automatique Arduino, n'hésitez pas à l'exprimer dans la section commentaires. Vous pouvez recevoir une réponse rapide.




Une paire de: Contrôleur de pompe basé sur SMS avec arrêt automatique de la marche à sec Un article: Système d'alerte d'approvisionnement en eau basé sur SMS