Inkubátor využívajúci Arduino s automatickou reguláciou teploty a vlhkosti

Vyskúšajte Náš Nástroj Na Odstránenie Problémov





V tomto príspevku zostrojíme inkubátor využívajúci Arduino, ktorý dokáže samoregulovať svoju teplotu a vlhkosť. Tento projekt navrhol pán Imran yousaf, ktorý je vášnivým čitateľom tejto webovej stránky.



Úvod

Tento projekt bol navrhnutý podľa návrhov pána Imrana, sú však urobené ďalšie úpravy, aby bol tento projekt univerzálne vhodný pre všetkých.

Na uskutočnenie tohto projektu môžete použiť svoju kreativitu a fantáziu.



Poďme teda pochopiť, čo je inkubátor? (Pre noobs)

Inkubátor je uzavretý prístroj, ktorého vnútorné prostredie je izolované od okolitého prostredia.

To má vytvoriť priaznivé prostredie pre ošetrovaný exemplár. Napríklad inkubátory sa používajú na pestovanie mikrobiálnych organizmov v laboratóriách, inkubátory sa používajú v nemocniciach na starostlivosť o predčasne narodené deti.

Inkubátor, ktorý v tomto projekte postavíme, je na liahnutie kuracích vajec alebo akýchkoľvek iných vtáčích vajec.

Všetky inkubátory majú spoločné jedno, reguluje teplotu, vlhkosť a poskytuje dostatočný prísun kyslíka.

Teplotu a vlhkosť môžete nastaviť stlačením poskytnutých tlačidiel a tiež zobrazuje vnútornú teplotu a vlhkosť v reálnom čase. Po nastavení obidvoch parametrov automaticky reguluje vykurovací článok (žiarovka) a vaporizér (zvlhčovač) podľa nastavenej hodnoty.

Poďme teraz pochopiť prístroj a dizajn inkubátora.

Šasi inkubátora môže byť vyrobené z polystyrénu / termocolu alebo z akrylového skla, ktoré poskytuje dobrú tepelnú izoláciu. Odporučil by som polystyrénový / termocol box, s ktorým sa bude ľahšie pracovať.

Dizajn prístroja:

rozloženie materiálu inkubátora

25 wattová žiarovka slúži ako zdroj tepla. Vyšší príkon môže poškodiť vajcia v malej nádobe. Vlhkosť zaisťuje vaporizér. Môžete použiť vaporizér niečo podobné, ako je uvedené nižšie.

Produkuje silný prúd pary, ktorá bude privádzaná do inkubátora. Paru je možné prenášať pomocou akejkoľvek flexibilnej trubice.

Flexibilná trubica môže byť niečo podobné, ako je uvedené nižšie:

Pára môže byť privádzaná zhora z polystyrénovej peny / termocol boxu, ako je to znázornené na konštrukcii prístroja, takže prebytočné teplo uniká cez otvory na reguláciu vlhkosti a menej poškodzuje vajcia.

Tam je valec nesúci vajcia s niekoľkými otvormi okolo, spojený so servomotorom. Servomotor otáča valec o 180 stupňov každých 8 hodín, čím otáča vajíčka.

Rotácia vajec zabraňuje prilepeniu embrya k membráne škrupiny a tiež poskytuje kontakt s potravinovým materiálom vo vajci, najmä v počiatočnom štádiu inkubácie.

Otočný valec musí mať niekoľko počtov otvorov, aby bola zabezpečená správna cirkulácia vzduchu, a tiež musí byť valec z oboch strán dutý.

Rotujúcim valcom môže byť rúrka z PVC alebo lepenka.

Na obidva konce dutého valca nalepte zmrzlinovú tyčinku tak, aby zmrzlinová tyčinka tvorila dva rovnaké polkruhy. Rameno servomotora prilepte do stredu zmrzlinovej tyčinky. Na druhej strane vypichnite otvor a pevne nalepte zubný trs.

Vložte vyberač zubov dovnútra skrinky a nalepte servo na opačnú stenu vnútri skrinky. Valec musí zostať čo najviac vodorovne. Teraz sa môže valec otáčať pri otáčaní servomotora.

A áno, využite svoju kreativitu na to, aby ste veci zlepšili.

Ak chcete pojať viac vajec, urobte viac takýchto valcov a na jeden pin ovládacieho vedenia je možné pripojiť viac servomotorov.

Otvory na reguláciu vlhkosti je možné vytvoriť prepichnutím ceruzky cez krabicu polystyrén / termocol v hornej časti. Ak ste vytvorili veľa nepotrebných otvorov alebo ak vlhkosť alebo teplota uniká príliš rýchlo, môžete niektoré otvory zakryť elektrickou alebo lepiacou páskou.

Snímač DHT11 je srdcom projektu, ktorý môže byť umiestnený v strede ktorejkoľvek zo štyroch strán inkubátora (vo vnútri), ale ďalej od žiarovky alebo prívodnej trubice vlhkosti.

Ventilátory CPU môžu byť umiestnené tak, ako je to zobrazené v dizajne prístroja na cirkuláciu vzduchu. Pre správnu cirkuláciu vzduchu používajte najmenej dva ventilátory tlačiace vzduch opačným smerom napríklad: jeden z ventilátorov CPU tlačí dole a druhý ventilátor CPU tlačí hore.

Väčšina ventilátorov procesora pracuje na 12V, ale na 9V funguje dobre.

To je všetko o prístroji. Teraz poďme diskutovať o okruhu.

Schematický diagnostický program:

inkubátor vlhkosti digitálny LCD monitor

Vyššie uvedený obvod je určený pre pripojenie Arduino k LCD. Nastavte 10K potenciometer na nastavenie kontrastu LCD.

Automatická klimatizácia inkubátora Arduino

Arduino je mozgom projektu. K dispozícii sú 3 tlačidlá na nastavenie teploty a vlhkosti. Kolík A5 ovláda relé pre vaporizér a A4 pre žiarovku. Snímač DHT11 je pripojený k pólu A0. Kolíky A1, A2 a A3 sa používajú pre tlačidlá.

Pin č. 7 (pin bez PWM) je pripojený k ovládaciemu vodiču servomotora. Na pin # 7 je možné pripojiť viac servomotorov. Existuje mylná predstava, že servomotory fungujú iba s PWM pinmi Arduina, čo nie je pravda. Funguje šťastne aj na iných ako PWM kolíkoch.

Pripojte diódu 1N4007 cez cievku relé v opačnom smere, aby ste pri zapínaní a vypínaní eliminovali špičky vysokého napätia.

Zdroj:

Napájací obvod inkubátora Arduino

Vyššie uvedený napájací zdroj môže poskytnúť napájanie 9 V a 5 V pre relé, Arduino, servomotor (SG90) a ventilátory CPU. Konektor DC slúži na napájanie Arduina.

Pre regulátory napätia používajte chladiče.

Tým sa končí napájanie.

Stiahnite si knižnicu DHT senzor:

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

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

Ako ovládať obvod:

· Po dokončení nastavenia hardvéru a prístroja zapnite obvod.

· Na displeji sa zobrazí “nastavená teplota”, stlacením tlacidla nahor alebo nadol dosiahnete pozadovanú teplotu a stlacíte tlacidlo “nastavenie”.

· Teraz sa na displeji zobrazuje „nastavená vlhkos“, stlacením tlacidiel nahor alebo nadol dosiahnete pozadovanú vlhkos a stlacte tlacidlo „nastavi“.

· Začína to fungovanie inkubátora.

Informácie o teplote a vlhkosti vajec získate na internete alebo od odborníkov.

Ak máte akékoľvek konkrétne otázky týkajúce sa tohto obvodu regulácie teploty a vlhkosti automatického inkubátora Arduino, neváhajte a vyjadrite sa v sekcii komentárov. Môžete dostať rýchlu odpoveď.




Predchádzajúci: Ovládač čerpadla na základe SMS s automatickým vypnutím chodu nasucho Ďalej: Systém varovania o dodávke vody založený na SMS