Inkubaattori, jossa käytetään Arduinoa automaattisella lämpötilan ja kosteuden säädöllä

Kokeile Instrumenttia Ongelmien Poistamiseksi





Tässä viestissä aiomme rakentaa inkubaattorin Arduinolla, joka voi itse säätää lämpötilaa ja kosteutta. Tämän projektin ehdotti Imran yousaf, joka on innokas lukija tälle verkkosivustolle.



Johdanto

Tämä projekti suunniteltiin herra Imranin ehdotusten mukaisesti, mutta tehdään joitakin lisämuutoksia, jotta projekti olisi yleisesti sopiva kaikille.

Voit käyttää luovuuttasi ja mielikuvitustasi tämän projektin toteuttamiseen.



Joten ymmärretään mikä inkubaattori on? (Noobs)

Inkubaattori on suljettu laite, jonka sisäinen ympäristö on eristetty ympäröivästä ympäristöstä.

Tämän tarkoituksena on luoda suotuisa ympäristö hoidettavalle näytteelle. Esimerkiksi inkubaattoreita käytetään mikrobiorganismien kasvattamiseen laboratorioissa, inkubaattoreita käytetään sairaaloissa ennenaikaisesti syntyneiden lasten hoitoon.

Inkubaattori, jonka aiomme rakentaa tässä projektissa, on kananmunien tai muiden lintujen munien siitosminen.

Kaikilla inkubaattoreilla on yksi yhteinen piirre, joka säätelee lämpötilaa, kosteutta ja tarjoaa riittävän hapensyötön.

Voit asettaa lämpötilan ja kosteuden painamalla mukana toimitettuja painikkeita, ja se näyttää myös sisäisen lämpötilan ja kosteuden reaaliajassa. Kun molemmat parametrit on asetettu, se ohjaa automaattisesti lämmityselementtiä (polttimo) ja höyrystintä (ilmankostutin) asetetun arvon saavuttamiseksi.

Ymmärretään nyt inkubaattorin laite ja rakenne.

Inkubaattorin runko voi olla styroksi- / lämpösokerilaatikkoa tai akryylilasia, joka voi tarjota hyvän lämmöneristyksen. Suosittelen Styrofoam / thermocol boxia, jonka kanssa työskentely on helpompaa.

Laitteen suunnittelu:

hautomomateriaalin asettelu

25 watin polttimo toimii lämmönlähteenä. Suurempi teho voi vahingoittaa munia pienessä astiassa. Kosteuden tarjoaa höyrystin, voit käyttää höyrystintä jotain vastaavaa alla olevan kuvan mukaisesti.

Se tuottaa paksu höyryvirta, joka tulee sisään inkubaattoriin. Höyry voidaan kuljettaa minkä tahansa joustavan putken kautta.

Joustava putki voi olla jotain samanlaista, kuten alla on esitetty:

Höyry voi tulla sisään styroksi- / lämpösokerilaatikon yläosasta laitteen mallin mukaisesti, jotta ylimääräinen lämpö pääsee kosteuden säätöreikien läpi ja vahingoittaa vähemmän munia.

On sylinteri, joka kantaa munia, ja sen ympärillä on useita reikiä, kytkettynä servomoottoriin. Servomoottori pyörii sylinteriä 180 astetta 8 tunnin välein, mikä pyörittää munia.

Munien kiertäminen estää alkion tarttumisen kuoren kalvoon ja tarjoaa myös kosketuksen munassa olevan ruokamateriaalin kanssa, erityisesti inkubaation alkuvaiheessa.

Pyörivässä sylinterissä on oltava useita reikiä, jotta ilmankierto on kunnossa ja sylinterin on oltava ontto molemmin puolin.

Pyörivä sylinteri voi olla PVC-putki tai pahvisylinteri.

Liitä jäätelötikku ontto sylinterin molempiin päihin siten, että jäätelötikku muodostaa kaksi yhtä suurta puoliympyrää. Liitä servomoottorin varsi jäätelötikun keskelle. Työnnä reiän toisella puolella reikä ja liitä hammastikku tiukasti.

Aseta hammastikku sisäkoteloon ja liitä servo laatikon sisäpuolelle vastakkaiseen seinään. Sylinterin on pysyttävä mahdollisimman vaakasuorassa, nyt sylinteri voi pyöriä servomoottorin pyöriessä.

Ja kyllä, käytä luovuuttasi parantaaksesi asioita.

Jos haluat sijoittaa enemmän munia, tee enemmän tällaisia ​​sylintereitä ja useita servomoottoreita voidaan liittää samaan ohjauslinjan tapiin.

Kosteuden säätöreiät voidaan tehdä työntämällä lyijykynä yläosassa olevan polystyreeni / lämpösuklaa-laatikon läpi. Jos teit paljon tarpeettomia reikiä tai jos kosteus tai lämpötila nousee liian nopeasti, voit peittää osan reikistä sähkö- tai teipillä.

DHT11-anturi on projektin sydän, joka voidaan sijoittaa inkubaattorin minkä tahansa neljän sivun keskelle (sisälle), mutta poispäin polttimosta tai kosteuden tuloputkesta.

Suorittimen tuulettimet voidaan sijoittaa ilmanvaihdon laitesuunnittelun mukaisesti. Käytä asianmukaista ilmankiertoa vähintään kaksi puhaltimet työntävät ilmaa vastakkaiseen suuntaan , esimerkiksi: yksi suorittimen tuulettimesta työntää alaspäin ja toinen suorittimen tuuletin työntää ylöspäin.

Suurin osa CPU-tuulettimista toimii 12 V: n jännitteellä, mutta 9 V: n jännitteellä.

Siinä kaikki laitteesta. Keskustelkaamme nyt piiristä.

Kaavio Diagarm:

inkubaattorin kosteuden digitaalisen LCD-näytön ohjaus

Yllä oleva piiri on tarkoitettu Arduinon ja LCD-yhteyden välille. Säädä 10K: n potentiometriä nestekidenäytön kontrastin säätämiseksi.

Arduino-inkubaattorin automaattinen ilmastointilaite

Arduino on projektin aivot. Lämpötilan ja kosteuden asettamiseksi on 3 painonappia. Tappi A5 ohjaa höyrystimen releä ja A4 polttimoa. DHT11-anturi on kytketty tapaan A0. Painikkeita A1, A2 ja A3 käytetään painikkeisiin.

Tappi # 7 (muu kuin PWM-tappi) on kytketty servomoottorin ohjausjohtoon. Useita servomoottoreita voidaan liittää tapiin # 7. Väärinkäsitys on, että servomoottorit toimivat vain Arduinon PWM-nastojen kanssa, mikä ei ole totta. Se toimii iloisesti myös muilla kuin PWM-nastoilla.

Liitä diodi 1N4007 releen kelan poikki päinvastaisessa suunnassa suurjännitepiikkien poistamiseksi päälle ja pois päältä kytkemisen aikana.

Virtalähde:

Arduino-inkubaattorin virtalähde

Yllä oleva virtalähde voi tarjota 9 V: n ja 5 V: n virtalähteen rele-, Arduino-, servomoottori (SG90) - ja CPU-puhaltimille. DC-liitäntä on tarkoitettu Arduinon virtalähteeksi.

Käytä jännitteen säätimiin jäähdytyselementtejä.

Se päättää virtalähteen.

Lataa kirjaston DHT-anturi:

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

Ohjelmakoodi:

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

Piirin käyttö:

· Kytke piiri päälle, kun laitteisto ja laite on suoritettu loppuun.

· Näytössä näkyy “asetettu lämpötila”. Paina ylös- tai alas-painiketta saadaksesi haluamasi lämpötilan ja paina “asetuspainiketta”.

· Nyt näytössä näkyy “kosteuden asettaminen”. Paina ylös- tai alas-painikkeita saadaksesi kosteutta ja paina “asetuspainiketta”.

· Se aloittaa inkubaattorin toiminnan.

Katso Internetistä tai pyydä ammattilaisen neuvoja munien lämpötilasta ja kosteudesta.

Jos sinulla on erityisiä kysymyksiä tästä Arduino-automaattisen inkubaattorin lämpötilan ja kosteuden säätöpiiristä, voit ilmaista sen kommenttiosassa. Saatat saada nopean vastauksen.




Pari: SMS-pohjainen pumpun ohjain automaattisella kuivakäynnistyssammutuksella Seuraava: SMS-pohjainen vesihuollon hälytysjärjestelmä