Inkubátor využívající Arduino s automatickou regulací teploty a vlhkosti

Vyzkoušejte Náš Nástroj Pro Odstranění Problémů





V tomto příspěvku se chystáme postavit inkubátor využívající Arduino, který dokáže samoregulovat jeho teplotu a vlhkost. Tento projekt navrhl pan Imran yousaf, který je vášnivým čtenářem tohoto webu.



Úvod

Tento projekt byl navržen podle návrhů pana Imrana, ale jsou provedeny některé další úpravy, aby byl tento projekt univerzálně vhodný pro všechny.

K uskutečnění tohoto projektu můžete použít svou kreativitu a představivost.



Pojďme tedy pochopit, co je inkubátor? (Pro noobs)

Inkubátor je uzavřený přístroj, jehož vnitřní prostředí je izolováno od okolního prostředí.

To má vytvořit příznivé prostředí pro ošetřovaný vzorek. Například inkubátory se používají k pěstování mikrobiálních organismů v laboratořích, inkubátory se používají v nemocnicích k péči o předčasně narozené děti.

Inkubátor, který v tomto projektu postavíme, je pro násadová slepičí vejce nebo jiná ptačí vejce.

Všechny inkubátory mají jedno společné, reguluje teplotu, vlhkost a zajišťuje dostatečný přísun kyslíku.

Teplotu a vlhkost můžete nastavit stisknutím poskytnutých tlačítek a také zobrazuje vnitřní teplotu a vlhkost v reálném čase. Jakmile jsou oba parametry nastaveny, automaticky ovládá topný článek (žárovka) a odpařovač (zvlhčovač), aby splňovaly nastavenou hodnotu.

Nyní pochopme aparát a design inkubátoru.

Šasi inkubátoru může být z polystyrenu / termocol boxu nebo akrylového skla, které poskytuje dobrou tepelnou izolaci. Doporučil bych polystyren / termocol box, se kterým se bude snáze pracovat.

Konstrukce přístroje:

rozložení materiálu inkubátoru

25 wattová žárovka funguje jako zdroj tepla. Vyšší příkon může ublížit vajíčkům v malé nádobě. Vlhkost zajišťuje odpařovač, můžete použít odpařovač něco podobného, ​​jak je znázorněno níže.

Produkuje silný proud páry, který bude přiváděn do inkubátoru. Pára může být vedena přes jakoukoli ohebnou trubici.

Flexibilní trubice může být něco podobného, ​​jak je znázorněno níže:

Pára může být přiváděna z horní části polystyrenové / termokolové nádoby, jak je znázorněno na konstrukci přístroje, takže přebytečné teplo bude unikat skrz otvory pro regulaci vlhkosti a bude méně bolet vejce.

Válec nesoucí vejce s několika otvory kolem něj, spojený se servomotorem. Servomotor otáčí válec o 180 stupňů každých 8 hodin, čímž otáčí vajíčka.

Rotace vajec brání slepení embrya na membráně skořápky a také zajišťuje kontakt s potravinovým materiálem ve vejci, zejména v rané fázi inkubace.

Rotující válec musí mít několik počtů otvorů, aby byla zajištěna správná cirkulace vzduchu, a také válec musí být na obou stranách dutý.

Otočný válec může být trubka z PVC nebo lepenka.

Vložte zmrzlinovou tyčinku na oba konce dutého válce tak, aby zmrzlinová tyčinka vytvořila dva stejné půlkruhy. Vložte rameno servomotoru do středu zmrzlinové tyčinky. Na druhé straně vypíchněte otvor a pevně vložte zubní trsátko.

Vložte trsátko dovnitř boxu a vložte servo na protější stěnu uvnitř boxu. Válec musí zůstat vodorovně, jak je to možné, nyní se může válec otáčet při otáčení servomotoru.

A ano, využijte svou kreativitu, abyste věci vylepšili.

Pokud chcete pojmout více vajec, vytvořte více takových válců a více servomotorů lze připojit na stejný pin ovládacího vedení.

Otvory pro regulaci vlhkosti lze vytvořit prostrčením tužky skrz krabici z polystyrenu / termocolu nahoře. Pokud jste vytvořili spoustu zbytečných otvorů nebo pokud vlhkost nebo teplota uniká příliš rychle, můžete některé otvory zakrýt elektrickou nebo lepicí páskou.

Senzor DHT11 je srdcem projektu, který může být umístěn uprostřed kterékoli ze čtyř stran inkubátoru (uvnitř), ale mimo baňku nebo přívodní trubku vlhkosti.

Ventilátory CPU lze umístit, jak je znázorněno na konstrukci přístroje pro cirkulaci vzduchu. Pro správnou cirkulaci vzduchu použijte alespoň dvě ventilátory tlačí vzduch v opačném směru například: jeden z ventilátorů CPU tlačí dolů a další ventilátor CPU tlačí nahoru.

Většina ventilátorů CPU pracuje na 12V, ale na 9V funguje dobře.

To je všechno o přístroji. Nyní pojďme diskutovat o okruhu.

Schématický diagnostický program:

ovládání digitálního LCD monitoru inkubátoru vlhkosti

Výše uvedený obvod je pro připojení Arduino k LCD. Upravte 10K potenciometr pro nastavení kontrastu LCD.

Automatická regulace klimatizace inkubátoru Arduino

Arduino je mozkem projektu. K dispozici jsou 3 tlačítka pro nastavení teploty a vlhkosti. Kolík A5 ovládá relé pro odpařovač a A4 pro žárovku. Senzor DHT11 je připojen k pinu A0. Kolíky A1, A2 a A3 používané pro tlačítka.

Kolík č. 7 (pin bez PWM) je připojen k ovládacímu vodiči servomotoru lze ke kolíku # 7 připojit více servomotorů. Existuje mylná představa, že servomotory fungují pouze s PWM piny Arduina, což není pravda. Funguje to šťastně i na jiných než PWM pinech.

Připojte diodu 1N4007 přes cívku relé v obráceném předpětí, abyste při zapínání a vypínání eliminovali vysoké napěťové špičky.

Zdroj napájení:

Napájecí obvod inkubátoru Arduino

Výše uvedený napájecí zdroj může poskytovat napájení 9 V a 5 V pro relé, Arduino, servomotor (SG90) a ventilátory CPU. Konektor DC slouží k napájení Arduina.

Pro regulátory napětí použijte chladiče.

Tím je napájení ukončeno.

Stáhněte si knihovnu 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-------------------//

Jak obsluhovat okruh:

· Po dokončení nastavení hardwaru a zařízení zapněte obvod.

· Na displeji se zobrazí „nastavená teplota“, stisknutím tlačítka nahoru nebo dolů nastavte požadovanou teplotu a stiskněte tlačítko „nastavit“.

· Nyní se na displeji zobrazí „nastavit vlhkost“, stisknutím tlačítek nahoru nebo dolů získáte požadovanou vlhkost a stiskněte tlačítko „nastavit“.

· Zahájí fungování inkubátoru.

Obraťte se na internet nebo se poraďte s odborníkem ohledně teploty a vlhkosti vajec.

Pokud máte nějaké konkrétní dotazy týkající se tohoto obvodu pro regulaci teploty a vlhkosti v automatickém inkubátoru Arduino, neváhejte se vyjádřit v sekci komentářů. Můžete obdržet rychlou odpověď.




Předchozí: Řídicí jednotka čerpadla založená na SMS s automatickým vypnutím chodu nasucho Další: Systém upozornění na dodávku vody založený na SMS