Inkubator ved bruk av Arduino med automatisk temperatur- og fuktighetskontroll

Prøv Instrumentet Vårt For Å Eliminere Problemer





I dette innlegget skal vi konstruere en inkubator ved hjelp av Arduino som selv kan regulere temperaturen og fuktigheten. Dette prosjektet ble foreslått av Mr. Imran yousaf, som er en ivrig leser av dette nettstedet.



Introduksjon

Dette prosjektet ble designet i henhold til forslagene fra Mr. Imran, men noen ekstra modifikasjoner er gjort for å gjøre dette prosjektet universelt egnet for alle.

Du kan bruke kreativiteten og fantasien din til å få dette prosjektet gjort.



Så la oss forstå hva en inkubator er? (For noobs)

Inkubator er et lukket apparat hvis indre miljø er isolert fra omgivelsene.

Dette er for å skape gunstige omgivelser for prøven under pleie. For eksempel brukes inkubatorer for å dyrke mikrobiell organisme i laboratorier, inkubatorer brukes på sykehus for å ta vare på for tidlig fødte spedbarn.

Den slags inkubatoren vi skal bygge i dette prosjektet er for klekking av kyllingegg eller andre fugleegg.

Alle inkubatorer har en ting til felles at den regulerer temperatur, fuktighet og gir tilstrekkelig oksygenforsyning.

Du kan stille inn temperatur og fuktighet ved å trykke på de medfølgende knappene, og den viser også den indre temperaturen og fuktigheten i sanntid. Når begge parametrene er satt, styrer den automatisk varmeelementet (pæren) og fordamperen (luftfukteren) for å oppfylle settpunktet.

La oss nå forstå apparatet og utformingen av inkubatoren.

Rammen på inkubatoren kan være av isopor / termokolade eller akrylglass som kan gi god varmeisolasjon. Jeg vil anbefale isopor / termokolade-eske som blir lettere å jobbe med.

Apparatdesign:

inkubator materialoppsett

En 25 watt pære fungerer som høyere wattkilde, kan skade eggene i en liten beholder. Fuktigheten tilveiebringes av fordamperen, du kan bruke fordamperen noe lignende som vist nedenfor.

Den produserer tykk dampstrøm som vil være innløp til inkubatoren. Dampen kan transporteres via et hvilket som helst fleksibelt rør.

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

Dampen kan komme inn fra toppen av isopor / termokassaboks som vist i apparatutformingen, slik at overflødig varme vil unnslippe gjennom fuktighetskontrollhullene og mindre skade på eggene.

Det er en sylinder som bærer egg med flere hull rundt seg, koblet til en servomotor. Servomotoren roterer sylinderen 180 grader hver 8. time og roterer dermed eggene.

Rotasjonen av eggene forhindrer at fosteret fester seg til skallmembranen og gir også kontakt med matmaterialet i egget, spesielt på et tidlig stadium av inkubasjonen.

Den roterende sylinderen må ha flere hull, slik at riktig luftsirkulasjon vil være tilstede, og sylinderen må også være hul på begge sider.

Den roterende sylinderen kan være PVC-rør eller pappsylinder.

Lim en ispinne i begge endene av den hule sylinderen slik at ispinnen lager to like halvsirkler. Lim armen på servomotoren midt på ispinnen. Stikk et hull på den andre siden og lim en tannplukk godt fast.

Sett inn tannplukkboksen og lim servoen på motsatt vegg inne i boksen. Sylinderen må holde seg vannrett som mulig, nå kan sylinderen rotere når servomotoren roterer.

Og ja, bruk kreativiteten din til å gjøre tingene bedre.

Hvis du ønsker å få plass til flere egg, kan du lage flere slike sylindere og flere servomotorer kan kobles til på samme kontrollpinne.

Fuktighetsreguleringshullene kan lages ved å stikke en blyant gjennom isopor / termokolade-boksen øverst. Hvis du har laget mange unødvendige hull, eller hvis fuktighet eller temperatur slipper ut for fort, kan du dekke til noen av hullene ved hjelp av elektrisk teip eller tape.

DHT11-sensoren er hjertet i prosjektet, som kan plasseres midt på en hvilken som helst fire sider av inkubatoren (inne), men vekk fra pæren eller fuktighetsinnløpsrøret.

CPU-vifter kan plasseres som vist i apparatutformingen for luftsirkulasjon. For minst luftsirkulasjon, bruk minst to vifter skyver luften i motsatt retning , for eksempel: en av CPU-viften skyver nedover og en annen CPU-vifte som skyver oppover.

De fleste CPU-vifter fungerer på 12V, men på 9V fungerer det helt fint.

Alt handler om apparatet. La oss nå diskutere på kretsen.

Skjematisk diagarm:

inkubatorfuktighet digital LCD-skjermkontroll

Ovennevnte krets er for Arduino til LCD-tilkobling. Juster 10K potensiometer for justering av LCD kontrast.

Arduino inkubator automatisk klimakontroll

Arduino er hjernen til prosjektet. Det er 3 trykknapper for innstilling av temperatur og fuktighet. Pinnen A5 styrer reléet for fordamper og A4 for pæren. DHT11-sensoren er koblet til pin A0. Pinnene A1, A2 og A3 brukes til trykknapper.

Pinnen nr. 7 (ikke-PWM-pinnen) er koblet til servomotorens styretråd. Flere servomotorer kan kobles til pinne nr. 7. Det er misforståelse at servomotorer bare fungerer med PWM-pinner fra Arduino, noe som ikke er sant. Det fungerer lykkelig også på ikke-PWM-pinner.

Koble en diode 1N4007 over reléspolen i omvendt forspenning for å eliminere høyspenningsspisser mens du slår på og av.

Strømforsyning:

Arduino inkubator strømforsyningskrets

Ovennevnte strømforsyning kan gi 9 V og 5 V forsyning for relé, Arduino, Servomotor (SG90) og CPU-vifter. DC-kontakten er gitt for å drive Arduino.

Bruk varmeavleder til spenningsregulatorene.

Det avslutter strømforsyningen.

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

Slik betjener du kretsen:

· Slå PÅ kretsen med fullført maskinvare- og apparatoppsett.

· Displayet viser “innstilt temperatur” trykk opp eller ned for å få ønsket temperatur og trykk “innstilt knapp”.

· Nå viser displayet “set Humidity” trykk opp eller ned knappene for å få ønsket fuktighet og trykk “set button”.

· Det begynner å fungere i inkubatoren.

Se internett eller få råd fra en profesjonell for temperatur og fuktighetsnivå for eggene.

Hvis du har noen spesifikke spørsmål angående denne Arduino automatiske inkubatorens temperatur- og fuktighetskontrollkrets, kan du gjerne uttrykke det i kommentarseksjonen. Du kan få et raskt svar.




Forrige: SMS-basert pumpekontroll med automatisk tørrkjøring Neste: SMS-basert varselforsyningssystem for vannforsyning