Inkubatorius naudojant „Arduino“ su automatiniu temperatūros ir drėgmės valdymu

Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas





Šiame įraše mes sukursime inkubatorių naudodami „Arduino“, kuris gali pats reguliuoti jo temperatūrą ir drėgmę. Šį projektą pasiūlė ponas Imranas yousafas, kuris yra aistringas šios svetainės skaitytojas.



Įvadas

Šis projektas buvo sukurtas pagal p. Imrano pasiūlymus, tačiau daroma keletas papildomų pakeitimų, kad šis projektas būtų visuotinai tinkamas visiems.

Galite panaudoti savo kūrybiškumą ir vaizduotę, kad atliktumėte šį projektą.



Taigi supraskime, kas yra inkubatorius? (Nėra)

Inkubatorius yra uždaras aparatas, kurio vidinė aplinka yra izoliuota nuo aplinkos.

Taip siekiama sukurti palankią aplinką prižiūrimam egzemplioriui. Pavyzdžiui, inkubatoriai naudojami mikrobų organizmams auginti laboratorijose, inkubatoriai naudojami ligoninėse, kad prižiūrėtų neišnešiotus kūdikius.

Inkubatorius, kurį ketiname pastatyti šiame projekte, skirtas vištų kiaušinių ar kitų paukščių kiaušinių perinimui.

Visi inkubatoriai turi vieną bendrą bruožą: jis reguliuoja temperatūrą, drėgmę ir užtikrina pakankamą deguonies tiekimą.

Temperatūrą ir drėgmę galite nustatyti paspausdami pateiktus mygtukus, taip pat realiu laiku rodoma vidinė temperatūra ir drėgmė. Nustačius abu parametrus, jis automatiškai valdo kaitinimo elementą (lemputę) ir garintuvą (drėkintuvą), kad atitiktų nustatytą tašką.

Dabar supraskime inkubatoriaus aparatą ir konstrukciją.

Inkubatoriaus važiuoklė gali būti iš putų polistirolo / termokolado dėžutės arba akrilo stiklo, kuris gali užtikrinti gerą šilumos izoliaciją. Aš rekomenduočiau putų polistirolo / termokolado dėžutę, su kuria bus lengviau dirbti.

Aparato dizainas:

inkubatoriaus medžiagos išdėstymas

25 vatų lemputė veikia kaip šilumos šaltinis. Didesnė galia gali pakenkti kiaušinius mažame inde. Drėgmę užtikrina garintuvas, garintuvą galite naudoti panašiai, kaip parodyta žemiau.

Iš jo susidaro tiršta garų srovė, kuri pateks į inkubatorių. Garai gali būti perduodami per bet kurį lanksčią vamzdį.

Lankstus vamzdis gali būti kažkas panašaus, kaip parodyta žemiau:

Garai gali būti įleidžiami iš putų polistirolo / termokolado dėžutės viršaus, kaip parodyta aparato konstrukcijoje, kad šilumos perteklius išbėgtų per drėgmės reguliavimo angas ir mažiau pakenktų kiaušiniams.

Yra cilindras, nešantis kiaušinius su keliomis skylėmis aplink jį, sujungtas su servo varikliu. Servovariklis kas 8 valandas cilindrą pasuka 180 laipsnių kampu, taip sukdamas kiaušinius.

Kiaušinių sukimasis neleidžia embrionui prilipti prie lukšto membranos, taip pat suteikia kontaktą su kiaušinyje esančia maisto medžiaga, ypač ankstyvoje inkubacijos stadijoje.

Besisukantis cilindras turi turėti keletą skylių, kad būtų užtikrinta tinkama oro cirkuliacija, taip pat cilindras turi būti tuščiaviduris iš abiejų pusių.

Besisukantis cilindras gali būti PVC vamzdis arba kartono cilindras.

Ant abiejų tuščiavidurio cilindro galų užklijuokite ledų lazdelę taip, kad ledų lazdelė padarytų du vienodus pusiau apskritimus. Ledų lazdelės viduryje įklijuokite servovariklio ranką. Kitoje pusėje įdurkite skylę ir tvirtai įklijuokite dantų smeigtuką.

Įdėkite dantų rinkimo dėžutę į vidų ir įklijuokite servo į priešingą sienelę dėžutės viduje. Cilindras turi likti horizontaliai, kaip įmanoma, dabar cilindras gali suktis sukant servovarikliui.

Ir taip, pasitelkite savo kūrybiškumą, kad viskas būtų geriau.

Jei norite sutalpinti daugiau kiaušinių, pagaminkite daugiau tokių cilindrų ir kelis servovariklius galima prijungti prie to paties valdymo linijos kaiščio.

Drėgmės reguliavimo skylės gali būti padarytos iškišus pieštuką per putų polistirolo / termokolado dėžutę viršuje. Jei padarėte daug nereikalingų skylių arba jei drėgmė ar temperatūra išbėga per greitai, kai kurias skylutes galite uždengti elektrine arba lipnia juosta.

DHT11 jutiklis yra projekto esmė, kurį galima pastatyti bet kurios keturių inkubatoriaus pusių viduryje (viduje), bet toliau nuo lemputės ar drėgmės įleidimo vamzdžio.

Centrinio procesoriaus ventiliatorius galima pastatyti taip, kaip parodyta oro cirkuliacijos aparato konstrukcijoje. Tinkamam oro cirkuliavimui naudokite bent du ventiliatoriai, stumiantys orą į priešingą pusę , pavyzdžiui: vienas iš procesoriaus ventiliatorių stumia žemyn, o kitas procesoriaus ventiliatorius stumia aukštyn.

Daugelis procesoriaus ventiliatorių veikia 12 V įtampoje, bet 9 V įtampos režimu.

Viskas apie aparatą. Dabar aptarkime grandinę.

Schema Diagarm:

inkubatoriaus drėgmės skaitmeninio LCD monitoriaus valdymas

Pirmiau nurodyta grandinė skirta „Arduino“ į LCD ryšį. Norėdami reguliuoti LCD kontrastą, sureguliuokite 10K potenciometrą.

„Arduino“ inkubatoriaus automatinė klimato kontrolė

„Arduino“ yra projekto smegenys. Yra 3 mygtukai, skirti temperatūrai ir drėgmei nustatyti. Kaištis A5 valdo garintuvo relę ir A4 - lemputę. DHT11 jutiklis prijungtas prie kaiščio A0. Mygtukams naudojami kaiščiai A1, A2 ir A3.

Kaištis Nr. 7 (ne PWM kaištis) yra prijungtas prie servovariklio valdymo laido. Prie kaiščio Nr. 7 galima prijungti kelis servovariklius. Yra klaidinga nuomonė, kad servo varikliai veikia tik su „Arduino“ PWM kaiščiais, o tai nėra tiesa. Jis taip pat veikia su ne PWM kaiščiais.

Prijunkite diodą 1N4007 per relės ritę atvirkščiai, kad pašalintumėte aukštos įtampos šuolius įjungiant ir išjungiant.

Maitinimo šaltinis:

„Arduino“ inkubatoriaus maitinimo grandinė

Aukščiau pateiktas maitinimo šaltinis gali suteikti 9 V ir 5 V maitinimą relės, „Arduino“, „Servo“ variklio (SG90) ir procesoriaus ventiliatoriams. Nuolatinės srovės lizdas yra skirtas „Arduino“ maitinimui.

Įtampos reguliatoriams naudokite radiatorius.

Tai baigia maitinimą.

Atsisiųskite bibliotekos DHT jutiklį:

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

Programos kodas:

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

Kaip valdyti grandinę:

· Baigę aparatūros ir aparato sąranką, įjunkite grandinę.

· Ekrane rodoma „nustatyta temperatūra“, norėdami gauti norimą temperatūrą, paspauskite aukštyn arba žemyn mygtuką ir paspauskite „nustatymo mygtuką“.

· Dabar ekrane rodoma „nustatyti drėgnumą“. Paspauskite aukštyn arba žemyn mygtukus, kad gautumėte norimą drėgmę, ir paspauskite „nustatymo mygtuką“.

· Tai pradeda inkubatoriaus veikimą.

Kiaušinių temperatūros ir drėgmės lygį rasite internete arba pasikonsultuokite su profesionalais.

Jei turite kokių nors konkrečių klausimų apie šią „Arduino“ automatinio inkubatoriaus temperatūros ir drėgmės reguliavimo grandinę, nedvejodami išsakykite komentarų skyriuje. Galite gauti greitą atsakymą.




Pora: SMS siurblio valdiklis su automatiniu sauso išjungimo išjungimu Kitas: SMS pranešimų apie vandens tiekimą perspėjimo sistema