Inkubator koji koristi Arduino s automatskom kontrolom temperature i vlažnosti

Isprobajte Naš Instrument Za Uklanjanje Problema





U ovom ćemo postu izraditi inkubator pomoću Arduina koji može sam regulirati svoju temperaturu i vlažnost. Ovaj je projekt predložio gospodin Imran yousaf koji je strastveni čitatelj ove web stranice.



Uvod

Ovaj je projekt osmišljen prema prijedlozima g. Imrana, ali izvršene su neke dodatne izmjene kako bi ovaj projekt postao univerzalno pogodan za sve.

Možete iskoristiti svoju kreativnost i maštu kako biste postigli ovaj projekt.



Pa da shvatimo što je inkubator? (Za noobs)

Inkubator je zatvoreni aparat čija je unutarnja okolina izolirana od ambijentalne.

Time se stvara povoljno okruženje za primjerak pod njegom. Na primjer, inkubatori se koriste za uzgoj mikroorganizama u laboratorijima, inkubatori se koriste u bolnicama za zbrinjavanje prerano rođene novorođenčadi.

Inkubator koji ćemo izgraditi u ovom projektu je za valjenje pilećih jaja ili bilo kojih drugih ptičjih jaja.

Svim je inkubatorima zajedničko jedno: regulira temperaturu, vlažnost i osigurava odgovarajuću opskrbu kisikom.

Pritiskom na predviđene tipke možete podesiti temperaturu i vlažnost, a u stvarnom vremenu prikazuje i unutarnju temperaturu i vlažnost. Jednom kad se postave oba parametra, on automatski kontrolira grijaći element (žarulju) i isparivač (ovlaživač) kako bi zadovoljio zadanu vrijednost.

Ajmo sada razumjeti aparaturu i dizajn inkubatora.

Šasija inkubatora može biti od kutije od stiropora / termokola ili akrilnog stakla što može pružiti dobru toplinsku izolaciju. Preporučio bih kutiju od stiropora / termokola s kojom će biti lakše raditi.

Dizajn uređaja:

raspored materijala inkubatora

Žarulja od 25 vata djeluje kao izvor topline jer veća snaga može oštetiti jaja u malom spremniku. Vlažnost osigurava isparivač, možete upotrijebiti isparivač nešto slično kao što je prikazano dolje.

Stvara gustu struju pare koja će ulaziti u inkubator. Para se može prenositi putem bilo koje fleksibilne cijevi.

Fleksibilna cijev može biti nešto slično kao što je prikazano dolje:

Para može ulaziti s vrha kutije od stiropora / termokola, kako je prikazano u dizajnu uređaja, tako da će višak topline izlaziti kroz rupe za kontrolu vlažnosti i manje oštetiti jaja.

Postoji cilindar koji nosi jaja s nekoliko rupa oko sebe, povezan sa servo motorom. Servo motor okreće cilindar za 180 stupnjeva svakih 8 sati i tako okreće jaja.

Rotacija jajašaca sprječava lijepljenje embrija na membrani ljuske, a također osigurava kontakt s prehrambenim materijalom u jajetu, posebno u ranoj fazi inkubacije.

Rotirajući cilindar mora imati nekoliko rupa kako bi bila prisutna odgovarajuća cirkulacija zraka, a cilindar također mora biti šupalj s obje strane.

Rotirajući cilindar može biti PVC cijev ili kartonski cilindar.

Zalijepite štapić sladoleda na oba kraja šupljeg cilindra tako da štapić sladoleda napravi dva jednaka polukruga. Zalijepite ruku servo motora na sredinu štapića sladoleda. S druge strane probodite rupu i čvrsto zalijepite trzalicu za zube.

Umetnite držač za zube u kutiju i zalijepite servo na suprotni zid unutar kutije. Cilindar mora ostati vodoravan što je više moguće, sada se cilindar može okretati dok se servo motor okreće.

I da, iskoristite svoju kreativnost da stvari poboljšate.

Ako želite primiti više jaja, napravite više takvih cilindara i više servo motora može se povezati na isti pin upravljačke linije.

Rupe za kontrolu vlažnosti mogu se napraviti probijanjem olovke kroz kutiju od stiropora / termokola na vrhu. Ako ste napravili puno nepotrebnih rupa ili ako vlaga ili temperatura prebrzo izlaze, neke rupe možete prekriti električnom ili ljepljivom trakom.

DHT11 senzor je srž projekta koji se može postaviti na sredinu bilo koje četiri strane inkubatora (iznutra), ali dalje od ulazne cijevi sijalice ili vlage.

CPU ventilatori se mogu postaviti kako je prikazano u dizajnu uređaja za cirkulaciju zraka. Za pravilnu cirkulaciju zraka koristite najmanje dvije ventilatori koji guraju zrak u suprotnom smjeru , na primjer: jedan CPU ventilator gura prema dolje, a drugi CPU ventilator gura prema gore.

Većina CPU ventilatora radi na 12V, ali na 9V radi sasvim dobro.

To je sve o aparatima. Sada razgovarajmo o krugu.

Shematski dijagarm:

kontrola vlažnosti inkubatora digitalni LCD monitor

Gornji sklop je za Arduino-LCD vezu. Podesite 10K potenciometar za podešavanje kontrasta LCD-a.

Arduino inkubator automatska kontrola klime

Arduino je mozak projekta. Postoje 3 tipke za podešavanje temperature i vlage. Osovinica A5 kontrolira relej za isparivač i A4 za žarulju. DHT11 senzor spojen je na pin A0. Pribadače A1, A2 i A3 koje se koriste za tipke.

Pin # 7 (ne-PWM pin) povezan je s upravljačkom žicom servo motora višestruki servo motori mogu se spojiti na pin # 7. Postoji zabluda da servo motori rade samo s PWM pinovima Arduina, što nije istina. Sretno djeluje i na PWM pinovima.

Spojite diodu 1N4007 preko zavojnice releja u obrnutom položaju kako biste eliminirali visokonaponske skokove tijekom uključivanja i isključivanja.

Napajanje:

Krug napajanja Arduino inkubatora

Gore navedeno napajanje može osigurati napajanje od 9 V i 5 V za relej, Arduino, servo motor (SG90) i CPU ventilatore. DC priključak predviđen je za napajanje Arduina.

Koristite hladnjake za regulatore napona.

To zaključuje napajanje.

Preuzmite bibliotečki senzor DHT:

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

Kod programa:

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

Kako upravljati krugom:

· Nakon dovršenog postavljanja hardvera i uređaja, UKLJUČITE krug.

· Na zaslonu se prikazuje 'postavljena temperatura' pritisnite tipku gore ili dolje da biste dobili željenu temperaturu i pritisnite 'tipku za podešavanje'.

· Sada se na zaslonu prikazuje 'postaviti vlažnost' pritisnite tipke gore ili dolje da biste postigli željenu vlažnost i pritisnite 'tipku za postavljanje'.

· Počinje s radom inkubatora.

Molimo vas da se obratite internetu ili potražite savjet od stručnjaka za temperaturu i vlažnost jaja.

Ako imate bilo kakvih specifičnih pitanja u vezi s ovim Arduino automatskim krugom za kontrolu temperature i vlažnosti inkubatora, slobodno to izrazite u odjeljku za komentare. Možete dobiti brzi odgovor.




Prethodno: Regulator pumpe zasnovan na SMS-u s automatskim isključivanjem na suho Dalje: Sustav upozorenja za opskrbu vodom na temelju SMS-a