Inkubator ved hjælp af Arduino med automatisk temperatur- og fugtighedskontrol

Prøv Vores Instrument Til At Fjerne Problemer





I dette indlæg skal vi konstruere en inkubator ved hjælp af Arduino, som selv kan regulere dens temperatur og fugtighed. Dette projekt blev foreslået af Mr. Imran yousaf, som er en ivrig læser af dette websted.



Introduktion

Dette projekt blev designet i henhold til forslagene fra Mr. Imran, men der foretages yderligere ændringer for at gøre dette projekt universelt egnet for alle.

Du kan bruge din kreativitet og fantasi til at få dette projekt udført.



Så lad os forstå, hvad en inkubator er? (For noobs)

Inkubator er et lukket apparat, hvis indre miljø er isoleret fra det omgivende miljø.

Dette er for at skabe gunstige omgivelser for den behandlede prøve. For eksempel bruges inkubatorer til at dyrke mikrobiel organisme i laboratorier, inkubatorer bruges på hospitaler til at tage sig af for tidligt fødte spædbørn.

Den slags inkubator, vi skal bygge i dette projekt, er til udklækning af kyllingæg eller andre fugleæg.

Alle inkubatorer har en ting til fælles, det regulerer temperatur, fugtighed og giver tilstrækkelig iltforsyning.

Du kan indstille temperatur og fugtighed ved at trykke på de medfølgende knapper, og det viser også den interne temperatur og fugtighed i realtid. Når begge parametre er indstillet, styrer den automatisk varmeelementet (pæren) og fordamperen (luftfugteren) for at opfylde sætpunktet.

Lad os nu forstå inkubatorens apparat og design.

Inkubatorens chassis kan være af isopor / termokolæske eller akrylglas, som kan give god varmeisolering. Jeg vil anbefale isopor / termokolæske, som bliver lettere at arbejde med.

Apparatdesign:

inkubator materiale layout

En 25 watt pære fungerer som højere varmekilde, hvilket kan skade æggene i en lille beholder. Fugtigheden tilvejebringes af fordamper, du kan bruge fordamperen noget lignende som vist nedenfor.

Det producerer tyk dampstrøm, som vil blive tilført til inkubatoren. Dampen kan transporteres via ethvert fleksibelt rør.

Det fleksible rør kan være noget lignende som vist nedenfor:

Dampen kan trænge ind fra toppen af ​​isopor / termokolæsken som vist i apparatets design, så overskydende varme slipper ud gennem fugtighedsreguleringshullerne og mindre skade på æggene.

Der er en cylinder, der bærer æg med flere huller rundt, forbundet med en servomotor. Servomotoren roterer cylinderen 180 grader hver 8. time og roterer således æggene.

Rotationen af ​​æggene forhindrer embryoet i at klæbe til skalmembranen og giver også kontakt med madmaterialet i ægget, især i det tidlige stadium af inkubationen.

Den roterende cylinder skal have flere antal huller, så der er korrekt luftcirkulation, og cylinderen skal også være hul på begge sider.

Den roterende cylinder kan være PVC-rør eller papcylinder.

Indsæt en ispind i begge ender af den hule cylinder, så ispinden udgør to lige store halvcirkler. Indsæt armen på servomotoren midt på ispinden. På den anden side stikker du et hul og indsætter en tandplukker godt.

Indsæt tandstikket inde i kassen, og indsæt servoen på den modsatte væg inde i kassen. Cylinderen skal forblive vandret som muligt, nu kan cylinderen rotere, når servomotoren roterer.

Og ja, brug din kreativitet til at gøre tingene bedre.

Hvis du ønsker at rumme flere æg, skal du lave flere sådanne cylindre og flere servomotorer kan tilsluttes på samme kontrolledningsstift.

Fugtighedsreguleringshullerne kan laves ved at stikke en blyant gennem isopor / termokolæsken øverst. Hvis du lavede mange unødvendige huller, eller hvis fugtigheden eller temperaturen undslipper for hurtigt, kan du dække nogle af hullerne ved hjælp af elektrisk tape eller tape.

DHT11-sensoren er hjertet i projektet, som kan placeres midt på en hvilken som helst fire sider af inkubatoren (indeni), men væk fra pæren eller fugtighedsindløbsrøret.

CPU-blæsere kan placeres som vist i apparatets design til luftcirkulation. Brug mindst to til korrekt luftcirkulation fans skubber luften i modsat retning , for eksempel: en af ​​CPU-blæseren skubber nedad og en anden CPU-blæser skubber opad.

De fleste CPU-blæsere fungerer på 12V, men ved 9V fungerer det fint.

Det handler kun om apparatet. Lad os nu diskutere på kredsløbet.

Skematisk diagarm:

inkubator luftfugtighed digital LCD monitor kontrol

Ovenstående kredsløb er til Arduino til LCD-forbindelse. Juster 10K potentiometer til justering af LCD kontrast.

Arduino inkubator automatisk klimakontrol

Arduino er hjernen i projektet. Der er 3 trykknapper til indstilling af temperatur og fugtighed. Stiften A5 styrer relæet til fordamper og A4 til pæren. DHT11-sensoren er tilsluttet pin A0. Stifterne A1, A2 og A3 bruges til trykknapper.

Stift nr. 7 (ikke-PWM-stift) er tilsluttet servomotorens styretråd flere servomotorer kan tilsluttes stift nr. 7. Der er misforståelse om, at servomotorer kun fungerer med PWM-ben fra Arduino, hvilket ikke er sandt. Det fungerer også lykkeligt på ikke-PWM-ben.

Tilslut en diode 1N4007 over relæspolen i omvendt forspænding for at eliminere højspændingsspidser, mens du tænder og slukker.

Strømforsyning:

Arduino inkubator strømforsyningskredsløb

Ovenstående strømforsyning kan levere 9 V og 5 V forsyning til relæ, Arduino, Servomotor (SG90) og CPU-blæsere. DC-stikket er beregnet til at drive Arduino.

Brug kølelegemer til spændingsregulatorerne.

Det afslutter strømforsyningen.

Download bibliotekets DHT-sensor:

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

Programkode:

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

Sådan betjenes kredsløbet:

· Med afsluttet hardware- og apparatopsætning skal du tænde kredsløbet.

· Displayet viser 'indstillet temperatur', tryk på op eller ned-knappen for at få ønsket temperatur, og tryk på 'indstil-knap'.

· Nu viser displayet 'indstillet fugtighed' tryk på op eller ned-knapperne for at få ønsket fugtighed og tryk på 'indstil-knap'.

· Det begynder inkubatorens funktion.

Se internet eller få råd fra en professionel om temperatur og fugtighed for æggene.

Hvis du har specifikke spørgsmål angående dette Arduino automatiske inkubator temperatur- og fugtighedskontrolkredsløb, er du velkommen til at udtrykke det i kommentarsektionen. Du modtager muligvis et hurtigt svar.




Tidligere: SMS-baseret pumpestyring med automatisk tørkørslukning Næste: SMS-baseret vandforsyningsalarmsystem