Inkubaator Arduino abil, millel on automaatne temperatuuri ja niiskuse reguleerimine

Proovige Meie Instrumenti Probleemide Kõrvaldamiseks





Selles postituses ehitame Arduino abil inkubaatori, mis saab temperatuuri ja niiskust isereguleerida. Selle projekti soovitas hr Imran yousaf, kes on selle veebisaidi innukas lugeja.



Sissejuhatus

See projekt oli välja töötatud hr Imrani ettepanekute järgi, kuid selle projekti kõigile sobivaks muutmiseks tehakse veel mõningaid muudatusi.

Selle projekti elluviimiseks võite kasutada oma loovust ja kujutlusvõimet.



Nii et mõistame, mis on inkubaator? (Noobide jaoks)

Inkubaator on kinnine seade, mille sisekeskkond on ümbritsevast keskkonnast eraldatud.

Selle eesmärk on luua hooldatavale isendile soodne keskkond. Näiteks inkubaatoreid kasutatakse mikroorganismide kasvatamiseks laborites, inkubaatoreid kasutatakse haiglates enneaegselt sündinud väikelaste hooldamiseks.

Selline inkubaator, mille me selles projektis ehitame, on kana- või muude linnumunade koorumine.

Kõigil inkubaatoritel on üks ühine omadus: see reguleerib temperatuuri, niiskust ja tagab piisava hapnikuvaru.

Temperatuuri ja niiskust saate seadistada kaasasolevate nuppude abil ning see näitab sisetemperatuuri ja õhuniiskust reaalajas. Kui mõlemad parameetrid on seatud, juhib see automaatselt kütteelementi (pirn) ja aurustit (õhuniisutajat), et see vastaks seatud punktile.

Mõelgem nüüd inkubaatori seadmeid ja ülesehitust.

Inkubaatori korpus võib olla vahtpolüstüroolist / termokokist või akrüülklaasist, mis tagab hea soojusisolatsiooni. Ma soovitaksin vahtpolüstüroolist / termokokist karpi, millega on lihtsam töötada.

Aparaadi disain:

inkubaatori materjali paigutus

25-vatine pirn toimib soojusallikana. Suurem võimsus võib väikeses mahutis olevaid mune kahjustada. Niiskuse tagab aurusti, võite kasutada aurusti midagi sarnast, nagu allpool näidatud.

See tekitab paksu auruvoolu, mis siseneb inkubaatorisse. Auru saab vedada mis tahes painduva toru kaudu.

Painduv toru võib olla midagi sarnast, nagu allpool näidatud:

Aur võib olla vahtpolüstüroolist / termokollast karbi ülaosast sisselaskeava, nagu on näidatud seadme konstruktsioonis, nii et liigne kuumus väljub niiskuse reguleerimisaukude kaudu ja kahjustab mune vähem.

Servomootoriga ühendatud silinder, mille ümber on mitu auku, kannab silindrit. Servomootor pöörleb silindrit iga 8 tunni järel 180 kraadi, pöörates seega mune.

Munade pöörlemine takistab embrüo kleepumist koore membraanile ja tagab kontakti ka munas sisalduva toidumaterjaliga, eriti inkubeerimise varases staadiumis.

Pöörleval silindril peab olema mitu auku, et õhuvahetus oleks korralik ja ka silinder peab olema mõlemalt poolt õõnes.

Pöörlev silinder võib olla PVC-toru või papist silinder.

Kleepige jäätisepulk õõnes silindri mõlemasse otsa nii, et jäätisepulk teeks kaks võrdset poolringi. Kleepige servomootori käsi jäätisepulga keskele. Torgake teisele küljele auk ja kleepige tugevalt hambaork.

Sisestage hambaork kasti sisemusse ja kleepige servo kasti vastasseinale. Silinder peab jääma võimalikult horisontaalsesse asendisse, nüüd saab silinder pöörata servomootori pöörlemisel.

Ja jah, kasutage oma loovust, et asju paremaks muuta.

Kui soovite mahutada rohkem mune, tehke rohkem selliseid silindreid ja mitu juhtmootorit saab ühendada samasse juhtliini tihvti.

Niiskuskontrolli auke saab teha, pistes pliiatsiga läbi ülaosas asuva vahtpolüstürool / termokokk. Kui olete teinud palju mittevajalikke auke või kui niiskus või temperatuur väljuvad liiga kiiresti, võite mõned augud katta elektri- või kleeplindi abil.

DHT11 andur on projekti keskpunkt, mis võib asetada inkubaatori mis tahes nelja külje keskele (sees), kuid eemale pirnist või niiskuse sisselasketorust.

Protsessori ventilaatoreid saab paigutada nii, nagu on näidatud õhuringluse aparatuuri kujunduses. Õige õhuringluse jaoks kasutage vähemalt kahte fännid suruvad õhku vastupidises suunas , näiteks: üks protsessori ventilaator surub alla ja teine ​​protsessori ventilaator ülespoole.

Enamik protsessori ventilaator töötab 12V, kuid 9V pingel töötab suurepäraselt.

See on kõik aparaadi kohta. Nüüd arutame ringkonnakohtu üle.

Skemaatiline diagarm:

inkubaatori niiskuse digitaalse LCD-monitori juhtimine

Ülaltoodud vooluahel on mõeldud Arduino ja LCD-ühenduse jaoks. LCD kontrastsuse reguleerimiseks reguleerige 10K potentsiomeetrit.

Arduino inkubaatori automaatne kliimaseade

Arduino on projekti aju. Temperatuuri ja niiskuse seadistamiseks on 3 nuppu. Tihvt A5 juhib aurusti releed ja A4 pirni jaoks. DHT11 andur on ühendatud tihvtiga A0. Vajutusnuppude jaoks kasutatavad tihvtid A1, A2 ja A3.

Tihvt nr 7 (mitte PWM-nööpnõel) on ühendatud servomootori juhtmetega, tihvtiga nr 7 saab ühendada mitu servomootorit. On eksiarvamus, et servomootorid töötavad ainult Arduino PWM-tihvtidega, mis pole tõsi. See töötab õnnelikult ka muude kui PWM-tihvtide puhul.

Ühendage diood 1N4007 üle relee mähise vastupidises asendis, et välistada sisse- ja väljalülitamisel kõrgepinge naelu.

Toiteallikas:

Arduino inkubaatori toiteallikas

Ülaltoodud toiteallikas võib pakkuda 9 V ja 5 V toiteallikat relee, Arduino, Servo mootori (SG90) ja protsessori ventilaatoritele. Alalisvoolupesa on ette nähtud Arduino toitmiseks.

Pinge regulaatorite jaoks kasutage jahutusradiaatoreid.

See lõpetab toiteallika.

Laadige alla raamatukogu DHT-andur:

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

Programmi kood:

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

Kuidas vooluringi juhtida:

· Pärast riistvara ja aparaatide seadistamist lülitage vooluring sisse.

· Ekraanil kuvatakse „seatud temperatuur”. Soovitud temperatuuri saamiseks vajutage üles- või allanuppu ja vajutage „nuppu”.

· Nüüd kuvatakse ekraanil „niiskuse seadistamine“. Soovitud õhuniiskuse saamiseks vajutage üles või alla nuppe ja vajutage „nuppu“.

· See alustab inkubaatori tööd.

Munade temperatuuri ja niiskuse taseme kohta saate teavet Internetist või küsige professionaalilt nõu.

Kui teil on selle Arduino automaatse inkubaatori temperatuuri ja niiskuse reguleerimise ahela kohta konkreetseid küsimusi, võite seda kommentaaride jaotises väljendada. Võite saada kiire vastuse.




Eelmine: SMS-põhine pumba kontroller automaatse kuivkäivituse väljalülitamisega Järgmine: SMS-põhine veevarustuse häiresüsteem