Inkubátor Arduino használatával automatikus hőmérséklet- és páratartalom-szabályozással

Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére





Ebben a bejegyzésben egy inkubátort fogunk építeni az Arduino segítségével, amely önszabályozhatja hőmérsékletét és páratartalmát. A projektet Imran yousaf úr javasolta, aki lelkesen olvassa ezt a weboldalt.



Bevezetés

A projektet Imran úr javaslatainak megfelelően tervezték, de további módosításokat hajtanak végre annak érdekében, hogy a projekt mindenki számára mindenki számára alkalmassá váljon.

Használhatja kreativitását és fantáziáját a projekt megvalósításához.



Tehát értsük meg, mi az inkubátor? (Nooboknak)

Az inkubátor egy zárt készülék, amelynek belső környezete el van szigetelve a környező környezettől.

Ennek célja, hogy kedvező környezetet teremtsen a gondozott példány számára. Például az inkubátorokat mikrobiális szervezetek laboratóriumokban történő termesztésére használják, az inkubátorokat kórházakban használják az idő előtt született csecsemők gondozására.

Az a fajta inkubátor, amelyet ebben a projektben fel fogunk építeni, a tyúktojások vagy bármely más madártojás kikelésére szolgál.

Valamennyi inkubátorban egy közös vonás szabályozza a hőmérsékletet, a páratartalmat és megfelelő oxigénellátást biztosít.

A mellékelt gombok megnyomásával beállíthatja a hőmérsékletet és a páratartalmat, és valós időben megmutatja a belső hőmérsékletet és páratartalmat. Miután mindkét paraméter beállt, automatikusan vezérli a fűtőelemet (izzó) és a párologtatót (párásító), hogy megfeleljen a beállított pontnak.

Most értsük meg az inkubátor berendezését és kialakítását.

Az inkubátor háza lehet hungarocell / hőcsokoládé doboz vagy akrilüveg, amely jó hőszigetelést biztosít. Azt javasolnám, hogy hungarocell / hőcsokoládé doboz legyen, amivel könnyebb dolgozni.

Készülék kialakítása:

inkubátor anyagelrendezése

A 25 wattos izzó hőforrásként működik. A nagyobb teljesítmény a kistartályban lévő tojásokat károsíthatja. A páratartalmat párologtató biztosítja, használhatja a párologtatót az alábbiak szerint.

Vastag gőzáramot hoz létre, amely az inkubátorba kerül. A gőz bármilyen rugalmas csövön keresztül vezethető.

A hajlékony cső valami hasonló lehet, az alábbiak szerint:

A gőz behatolhat a hungarocell / hőcsokoládé doboz tetejére, amint azt a készülék kialakítása mutatja, így a felesleges hő távozik a páratartalom-szabályozó nyílásokon keresztül, és kevésbé károsítja a petéket.

Van egy henger, amely tojásokat hordoz, körülötte több lyuk, egy szervomotorhoz csatlakoztatva. A szervomotor 8 óránként 180 fokkal forgatja a hengert, így forgatja a petéket.

A peték forgása megakadályozza az embrió tapadását a héj membránjánál, és érintkezést biztosít a tojásban lévő élelmiszer-anyaggal is, különösen az inkubáció korai szakaszában.

A forgó hengernek több számú lyukkal kell rendelkeznie, hogy megfelelő légkeringést biztosítson, és a hengernek mindkét oldalán üregesnek kell lennie.

A forgó henger lehet PVC cső vagy karton henger.

Helyezzen egy fagylaltot az üreges henger mindkét végére úgy, hogy a fagylaltrúd két egyenlő félkör legyen. Illessze a szervomotor karját a fagylaltrúd közepére. A másik oldalon szúrjon lyukat, és erősen illessze be a fogpiszkálót.

Helyezze be a fogszúrót a dobozba, és illessze a szervót a doboz belsejében lévő szemközti falra. A hengernek lehetőleg vízszintesen kell maradnia, most a henger foroghat, amikor a szervomotor forog.

És igen, használja a kreativitását a dolgok jobbá tételéhez.

Ha több tojást szeretne elhelyezni, készítsen több ilyen hengert, és több szervomotor is csatlakoztatható ugyanazon a vezérlővezeték csapon.

A páratartalom szabályozására szolgáló lyukakat ceruzával lehet bedugni a tetején lévő hungarocell / hőcsokoládé dobozba. Ha sok felesleges lyukat készített, vagy a páratartalom vagy a hőmérséklet túl gyorsan szökik meg, akkor néhány lyukat elektromos vagy ragasztószalaggal takarhat be.

A DHT11 érzékelő a projekt szíve, amelyet az inkubátor bármely négy oldalának közepére (belül) lehet elhelyezni, de távol az izzótól vagy a páratartalom bevezető csőtől.

A CPU-ventilátorokat úgy lehet elhelyezni, ahogyan azt a készülék légterjedés-tervezése mutatja. A megfelelő légáramlás érdekében legalább kettőt használjon a levegőt ellentétes irányba toló ventilátorok például: az egyik CPU-ventilátor lefelé és egy másik CPU-ventilátor felfelé.

A legtöbb CPU-ventilátor 12 V-on működik, de 9 V-nál nagyon jól működik.

Ennyit a készülékről. Most beszéljünk az áramkörről.

Vázlatos átló:

inkubátor páratartalom digitális LCD monitor vezérlés

A fenti áramkör az Arduino és az LCD kapcsolat számára készült. Állítsa be a 10K potenciométert az LCD kontrasztjának beállításához.

Arduino inkubátor automatikus klímaberendezés

Az Arduino a projekt agya. A hőmérséklet és a páratartalom beállításához 3 nyomógomb áll rendelkezésre. Az A5 tű vezérli a párologtató reléjét, az A4 pedig az izzót. A DHT11 érzékelő az A0 tűhöz csatlakozik. A nyomógombokhoz használt A1, A2 és A3 csapok.

A # 7 tű (nem PWM tű) a szervomotor vezérlővezetékéhez van csatlakoztatva, több szervomotor csatlakoztatható a # 7 tűhöz. Tévhit, hogy a szervomotorok csak az Arduino PWM csapjaival működnek, ami nem igaz. A nem PWM csapokon is boldogan működik.

Csatlakoztassa az 1N4007 diódát a relé tekercséhez fordított előfeszítéssel, hogy kikapcsolja a nagyfeszültségű tüskéket a be- és kikapcsolás során.

Tápegység:

Arduino inkubátor tápfeszültség áramköre

A fenti tápegység 9 és 5 V tápellátást biztosít a relé, az Arduino, a szervomotor (SG90) és a CPU ventilátorok számára. A DC aljzat az Arduino tápellátására szolgál.

Használjon hűtőbordákat a feszültségszabályozókhoz.

Ezzel lezárul az áramellátás.

Töltse le a könyvtár DHT-érzékelőjét:

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

Program kód:

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

Az áramkör működtetése:

· A hardver és a készülék teljes beállításával kapcsolja be az áramkört.

· A kijelzõn a „beállított hõmérséklet” felirat látható. Nyomja meg a fel vagy le gombot a kívánt hőmérséklet eléréséhez, majd nyomja meg a „beállító gombot”.

· Most a kijelzőn a „páratartalom beállítása” felirat látható. Nyomja meg a fel vagy le gombokat a kívánt páratartalom eléréséhez, majd nyomja meg a „beállító gombot”.

· Megkezdi az inkubátor működését.

Kérjük, keresse fel az internetet, vagy kérjen tanácsot szakembertől a tojások hőmérsékleti és páratartalmi szintjével kapcsolatban.

Ha bármilyen kérdése van ezzel az Arduino automatikus inkubátor hőmérséklet- és páratartalom-szabályozó áramkörével kapcsolatban, nyugodtan fejezze ki a megjegyzés részben. Gyors választ kaphat.




Előző: SMS alapú szivattyúvezérlő automatikus szárazfutás kikapcsolással Következő: SMS alapú vízellátási riasztórendszer