Inkubator z uporabo Arduina s samodejnim nadzorom temperature in vlažnosti

Preizkusite Naš Instrument Za Odpravo Težav





V tem prispevku bomo izdelali inkubator z uporabo Arduina, ki lahko sam regulira svojo temperaturo in vlažnost. Ta projekt je predlagal g. Imran yousaf, ki je navdušen bralec te spletne strani.



Uvod

Ta projekt je bil zasnovan v skladu s predlogi g. Imrana, vendar so narejene nekatere dodatne prilagoditve, da bo ta projekt splošno primeren za vse.

Za izvedbo tega projekta lahko uporabite svojo ustvarjalnost in domišljijo.



Torej, dajmo razumeti, kaj je inkubator? (Za noobs)

Inkubator je zaprta naprava, katere notranje okolje je izolirano od okolja.

S tem se ustvari ugodno okolje za oskrbovani primerek. Inkubatorji se na primer uporabljajo za gojenje mikroorganizmov v laboratorijih, inkubatorji pa v bolnišnicah za oskrbo prezgodaj rojenih dojenčkov.

Inkubator, ki ga bomo zgradili v tem projektu, je namenjen valjenju piščančjih jajc ali drugih ptičjih jajc.

Vsem inkubatorjem je skupno nekaj, kar uravnava temperaturo, vlago in zagotavlja zadostno oskrbo s kisikom.

S pritiskom na priložene gumbe lahko nastavite temperaturo in vlago, v realnem času pa prikazuje tudi notranjo temperaturo in vlago. Ko se nastavita oba parametra, samodejno krmili grelni element (žarnico) in uparjalnik (vlažilec), da dosežeta nastavljeno vrednost.

Zdaj pa razumimo opremo in zasnovo inkubatorja.

Šasija inkubatorja je lahko iz škatle iz stiropora / termokola ali akrilnega stekla, ki lahko zagotavlja dobro toplotno izolacijo. Priporočam škatlo iz stiropora / termokola, s katero bo lažje delati.

Zasnova naprave:

postavitev materiala inkubatorja

25-vatna žarnica deluje kot vir toplote, večja moč pa lahko poškoduje jajca v majhni posodi. Vlažnost zagotavlja uparjalnik, uparjalnik lahko uporabite podobno, kot je prikazano spodaj.

Proizvaja debel tok pare, ki bo dovod v inkubator. Paro lahko prenašate preko katere koli gibke cevi.

Prilagodljiva cev je lahko nekaj podobnega, kot je prikazano spodaj:

Para se lahko dovaja z vrha škatle s stiroporjem / termokolom, kot je prikazano v zasnovi aparata, tako da odvečna toplota uhaja skozi luknje za nadzor vlažnosti in manj škoduje jajčecem.

Obstaja valj, na katerem so jajca z več luknjami, povezanimi s servo motorjem. Servo motor vrti valj za 180 stopinj vsakih 8 ur in tako zavrti jajčeca.

Vrtenje jajčec preprečuje, da bi se zarodek prilepil na membrano lupine in zagotavlja stik z živilskim materialom v jajcu, zlasti v zgodnji fazi inkubacije.

Vrteči se valj mora imeti več odprtin, da bo zagotovljeno pravilno kroženje zraka in tudi valj mora biti votel na obeh straneh.

Vrtljivi valj je lahko PVC cev ali kartonski valj.

Na oba konca votlega cilindra prilepite palico za sladoled, tako da palica za sladoled naredi dva enaka polkroga. Na sredino palice za sladoled prilepite roko servo motorja. Na drugi strani potisnite luknjo in trdno prilepite zobnik.

Vstavite zobnik v škatlo in prilepite servo na nasprotni steni znotraj škatle. Cilinder mora ostati vodoravno, kolikor je le mogoče, zdaj se lahko valj vrti, ko se servo motor vrti.

In ja, uporabite svojo ustvarjalnost, da stvari izboljšate.

Če želite namestiti več jajc, naredite več takšnih jeklenk in več servo motorjev je mogoče priključiti na isti zatič krmilnega voda.

Luknje za nadzor vlažnosti lahko naredite tako, da svinčnik potisnete skozi škatlo iz stiropora / termokola na vrhu. Če ste naredili veliko nepotrebnih lukenj ali če vlaga ali temperatura prehitro upadata, lahko nekatere luknje pokrijete z električnim ali lepilnim trakom.

Senzor DHT11 je osrednji del projekta, ki ga lahko namestimo na katero koli od štirih strani inkubatorja (znotraj), vendar stran od dovodne cevi žarnice ali vlage.

CPU ventilatorji se lahko namestijo, kot je prikazano v zasnovi naprave za kroženje zraka. Za pravilno kroženje zraka uporabite vsaj dva ventilatorji, ki potiskajo zrak v nasprotni smeri , na primer: en ventilator CPU potiska navzdol in drugi ventilator CPU potiska navzgor.

Večina CPU ventilatorjev deluje na 12V, pri 9V pa deluje povsem v redu.

To je vse o aparatu. Zdaj pa razpravljajmo o vezju.

Shematski diagarm:

kontrola vlažnosti inkubatorja digitalni LCD monitor

Zgornje vezje je za povezavo Arduino z LCD. Prilagodite 10K potenciometer za prilagajanje kontrasta LCD.

Avtomatska klimatska naprava Arduino inkubator

Arduino so možgani projekta. Obstajajo 3 tipke za nastavitev temperature in vlažnosti. Zatič A5 krmili rele za uparjalnik in A4 za žarnico. Senzor DHT11 je priključen na zatič A0. Zatiči A1, A2 in A3 se uporabljajo za tipke.

Zatič št. 7 (zatič brez PWM) je povezan s krmilno žico servo motorja. Na pin št. 7 je mogoče priključiti več servo motorjev. Obstaja napačno prepričanje, da servo motorji delujejo samo s PWM zatiči Arduino, kar ni res. Srečno deluje tudi na zatičih brez PWM.

Priključite diodo 1N4007 preko relejske tuljave z vzvratno prednapetostjo, da med vklopom in izklopom odstranite visokonapetostne konice.

Napajanje:

Napajalno vezje inkubatorja Arduino

Zgornje napajanje lahko zagotavlja napajanje 9 V in 5 V za releje, Arduino, servo motor (SG90) in ventilatorje CPU. Priključek DC je na voljo za napajanje Arduina.

Za napetostne regulatorje uporabite hladilnike.

To zaključuje napajanje.

Prenesite knjižnični senzor DHT:

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

Koda 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 vezje:

· Po končani nastavitvi strojne opreme in naprav vklopite vezje.

· Na zaslonu se prikaže “nastavljena temperatura”, pritisnite tipko gor ali dol, da dosežete želeno temperaturo, in pritisnite “tipko za nastavitev”.

· Zdaj se na zaslonu prikaže 'nastavite vlažnost'. Pritisnite gumbe gor ali dol, da dosežete želeno vlago, in pritisnite 'gumb za nastavitev'.

· Začne delovanje inkubatorja.

Poiščite internet ali se posvetujte s strokovnjakom glede temperature in vlažnosti jajc.

Če imate kakršno koli posebno vprašanje v zvezi s tem avtomatskim vezjem za nadzor temperature in vlažnosti Arduino, vas prosimo, da to izrazite v oddelku za komentarje. Lahko prejmete hiter odgovor.




Prejšnji: Krmilnik črpalke na osnovi SMS s samodejnim izklopom na suho Naprej: Sistem za opozarjanje na oskrbo z vodo prek SMS-a