Inkubator med Arduino med automatisk temperatur- och luftfuktighetskontroll

Prova Vårt Instrument För Att Eliminera Problem





I det här inlägget ska vi bygga en inkubator med Arduino som självreglerar dess temperatur och fuktighet. Detta projekt föreslogs av Imran yousaf som är en ivrig läsare av denna webbplats.



Introduktion

Detta projekt utformades enligt förslagen från Mr. Imran, men ytterligare några ändringar görs för att göra detta projekt universellt lämpligt för alla.

Du kan använda din kreativitet och fantasi för att få det här projektet gjort.



Så låt oss förstå vad en inkubator är? (För noobs)

Inkubator är en sluten apparat vars interna miljö är isolerad från omgivande miljö.

Detta för att skapa en gynnsam miljö för det behandlade exemplaret. Till exempel används inkubatorer för att odla mikrobiell organism i laboratorier, inkubatorer används på sjukhus för att ta hand om för tidigt födda spädbarn.

Den typ av inkubator vi ska bygga i detta projekt är för kläckning av kycklingägg eller andra fågelägg.

Alla inkubatorer har en sak gemensamt, det reglerar temperaturen, luftfuktigheten och ger tillräcklig syretillförsel.

Du kan ställa in temperatur och luftfuktighet genom att trycka på de medföljande knapparna och den visar även den inre temperaturen och luftfuktigheten i realtid. När båda parametrarna har ställts in styr den automatiskt värmeelementet (lampan) och förångaren (luftfuktaren) för att möta börvärdet.

Låt oss nu förstå inkubatorns apparat och design.

Inkubatorns chassi kan vara av isopor / termokartonglåda eller akrylglas som kan ge god värmeisolering. Jag skulle rekommendera isopor / termokollåda som blir lättare att arbeta med.

Apparatdesign:

inkubator material layout

En 25 watt glödlampa fungerar som värmekälla högre watt kan skada äggen i en liten behållare. Luftfuktigheten tillhandahålls av förångaren, du kan använda förångaren något liknande som visas nedan.

Den producerar tjock ångström som kommer in i inkubatorn. Ångan kan transporteras via valfritt flexibelt rör.

Det flexibla röret kan vara något liknande som visas nedan:

Ångan kan komma in från toppen av isopor- / termokokalboxen, såsom visas i apparatens konstruktion, så att överskottsvärme kommer ut genom att fuktighetshålen minskar och mindre skadar äggen.

Det finns en cylinder som bär ägg med flera hål runt den, ansluten till en servomotor. Servomotorn roterar cylindern 180 grader var 8: e timme och roterar därmed äggen.

Äggens rotation förhindrar att embryot klibbar fast i skalmembranet och ger också kontakt med livsmedelsmaterialet i ägget, särskilt i ett tidigt stadium av inkubationen.

Den roterande cylindern måste ha flera antal hål så att korrekt luftcirkulation kommer att finnas och även cylindern måste vara ihålig på båda sidor.

Den roterande cylindern kan vara PVC-rör eller kartongcylinder.

Klistra in en glasspinne i båda ändarna av den ihåliga cylindern så att glasspinnen gör två lika halvcirklar. Klistra in armen på servomotorn mitt på glasspinnen. På andra sidan sticka ett hål och klistra in en tandplockare ordentligt.

Sätt in tandplockningens inre låda och klistra in servon på motsatt vägg inuti lådan. Cylindern måste vara horisontell som möjligt, nu kan cylindern rotera när servomotorn roterar.

Och ja, använd din kreativitet för att göra saker och ting bättre.

Om du vill ta emot fler ägg kan du göra fler sådana cylindrar och flera servomotorer kan anslutas på samma styrledning.

Hålen för fuktreglering kan göras genom att sticka en penna genom isopor / termokassaskåpet högst upp. Om du har gjort många onödiga hål eller om fukt eller temperatur släpper för snabbt kan du täcka över några av hålen med hjälp av tejp eller tejp.

DHT11-sensorn är hjärtat i projektet som kan placeras på mitten av inkubatorns fyra sidor (inuti) men bort från glödlampan eller fuktighetsinloppsröret.

CPU-fläktar kan placeras som visas i apparatens design för luftcirkulation. Använd minst två för korrekt luftcirkulation fläktar som skjuter luften i motsatt riktning , till exempel: en av CPU-fläkten trycker nedåt och en annan CPU-fläkt trycker uppåt.

De flesta CPU-fläktar fungerar på 12V men vid 9V fungerar bara bra.

Det handlar bara om apparaten. Låt oss nu diskutera på kretsen.

Schematisk diagarm:

inkubator fuktighet digital LCD-skärmkontroll

Ovanstående krets är för Arduino till LCD-anslutning. Justera 10K potentiometer för att justera LCD-kontrasten.

Arduino inkubator automatisk klimatkontroll

Arduino är hjärnan i projektet. Det finns 3 tryckknappar för att ställa in temperatur och luftfuktighet. Stiftet A5 styr reläet för förångaren och A4 för lampan. DHT11-sensorn är ansluten till stift A0. Stiften A1, A2 och A3 används för tryckknappar.

Stift nr 7 (icke-PWM-stift) är anslutet till servomotorns styrtråd flera servomotorer kan anslutas till stift nr 7. Det finns en missuppfattning att servomotorer endast fungerar med PWM-stift av Arduino, vilket inte är sant. Det fungerar också på icke-PWM-stift.

Anslut en diod 1N4007 över reläspolen i omvänd förspänning för att eliminera högspänningspinnar medan du slår på och av.

Strömförsörjning:

Arduino inkubator strömförsörjningskrets

Ovanstående strömförsörjning kan ge 9 V och 5 V matning för relä, Arduino, Servomotor (SG90) och CPU-fläktar. DC-uttaget är försett för att driva Arduino.

Använd kylflänsar för spänningsregulatorerna.

Det avslutar strömförsörjningen.

Ladda ner bibliotekets DHT-sensor:

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

Programkod:

//------------------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-------------------//

Hur man använder kretsen:

· Slå PÅ kretsen med slutförd hårdvaru- och apparater.

· Displayen visar 'inställt temperatur' tryck på upp eller ner-knappen för att få önskad temperatur och tryck på 'inställningsknapp'.

· Nu visar displayen “Ställ in luftfuktighet” genom att trycka på upp- eller nedknapparna för att få önskad luftfuktighet och tryck på “Ställ in knapp”.

· Det börjar arbeta med inkubatorn.

Se internet eller få råd från en professionell för äggens temperatur och luftfuktighet.

Om du har några specifika frågor angående denna Arduino automatiska inkubator temperatur- och fuktighetskontrollkrets, är du välkommen att uttrycka det i kommentarsektionen. Du kan få ett snabbt svar.




Tidigare: SMS-baserad pumpregulator med automatisk avstängning av torrkörning Nästa: SMS-baserat varningssystem för vattenförsörjning