Incubator folosind Arduino cu control automat al temperaturii și umidității

Încercați Instrumentul Nostru Pentru Eliminarea Problemelor





În acest post vom construi un incubator folosind Arduino care să-și regleze automat temperatura și umiditatea. Acest proiect a fost sugerat de domnul Imran yousaf, care este un cititor pasionat al acestui site.



Introducere

Acest proiect a fost conceput conform sugestiilor dlui Imran, dar se fac unele modificări suplimentare pentru a face acest proiect universal potrivit pentru toți.

Vă puteți folosi creativitatea și imaginația pentru a realiza acest proiect.



Deci, să înțelegem ce este un incubator? (Pentru noobs)

Incubatorul este un aparat închis al cărui mediu intern este izolat de mediul ambiant.

Acest lucru este pentru a crea un mediu favorabil specimenului care este îngrijit. De exemplu, incubatoarele sunt utilizate pentru a crește organismul microbian în laboratoare, incubatoarele sunt utilizate în spitale pentru a avea grijă de copiii născuți prematur.

Tipul de incubator pe care urmează să îl construim în acest proiect este pentru incubația ouălor de pui sau a oricărui alt ou de păsări.

Toate incubatoarele au un lucru în comun: reglează temperatura, umiditatea și asigură un aport adecvat de oxigen.

Puteți seta temperatura și umiditatea apăsând butoanele furnizate și, de asemenea, arată temperatura internă și umiditatea în timp real. Odată stabiliți ambii parametri, acesta controlează automat elementul de încălzire (bec) și vaporizatorul (umidificatorul) pentru a atinge punctul de setare.

Acum să înțelegem aparatul și designul incubatorului.

Șasiul incubatorului poate fi din spumă de poliester / cutie termocol sau sticlă acrilică care poate oferi o bună izolare termică. Aș recomanda cutie din poliuretan / termocol cu ​​care va fi mai ușor de lucrat.

Proiectarea aparatului:

dispunerea materialului incubatorului

Un bec de 25 wați acționează ca sursă de căldură. O putere mai mare poate afecta ouăle într-un recipient mic. Umiditatea este asigurată de vaporizator, puteți utiliza vaporizatorul ceva similar așa cum se arată mai jos.

Produce un flux gros de abur care va fi intrat în incubator. Aburul poate fi transportat prin orice tub flexibil.

Tubul flexibil poate fi ceva similar, așa cum se arată mai jos:

Aburul poate fi introdus din partea de sus a cutiei de polistiren / termocol așa cum se arată în proiectarea aparatului, astfel încât excesul de căldură va scăpa prin orificiile de control al umidității și rănind mai puțin ouăle.

Există un cilindru care transportă ouă cu mai multe găuri în jurul său, conectat la un servomotor. Servomotorul roteste cilindrul cu 180 de grade la fiecare 8 ore, astfel roteste ouale.

Rotația ouălor previne lipirea embrionului de membrana cochiliei și asigură, de asemenea, contactul cu materialul alimentar din ou, în special în stadiul incipient al incubării.

Cilindrul rotativ trebuie să aibă mai multe numere de găuri, astfel încât circulația corectă a aerului să fie prezentă și, de asemenea, cilindrul trebuie să fie gol pe ambele părți.

Cilindrul rotativ poate fi tub din PVC sau cilindru din carton.

Lipiți un băț de înghețată pe ambele capete ale cilindrului gol, astfel încât bățul de înghețată să formeze două semicercuri egale. Lipiți brațul servomotorului în mijlocul bățului de înghețată. De cealaltă parte, găuriți o gaură și lipiți ferm un vârf de dinți.

Introduceți vârful dinților în interiorul cutiei și lipiți servo-ul pe peretele opus din interiorul cutiei. Cilindrul trebuie să rămână orizontal posibil, acum cilindrul se poate roti pe măsură ce servomotorul se rotește.

Și da, folosiți-vă creativitatea pentru a îmbunătăți lucrurile.

Dacă doriți să găzduiți mai multe ouă, faceți mai mulți astfel de cilindri și servo-motor multiplu poate fi conectat pe același pin de linie de control.

Găurile de control al umidității pot fi făcute prin introducerea unui creion prin cutia de poliestir / termocol în partea de sus. Dacă ați făcut multe găuri inutile sau dacă umiditatea sau temperatura scapă prea repede, puteți acoperi unele găuri folosind bandă electrică sau conductă.

Senzorul DHT11 este inima proiectului, care poate fi amplasat la mijlocul oricăror patru părți ale incubatorului (în interior), dar departe de bec sau de tubul de admisie a umidității.

Ventilatoarele CPU pot fi așezate așa cum se arată în proiectarea aparatului pentru circulația aerului. Pentru o circulație adecvată a aerului utilizați cel puțin două ventilatoarele care împing aerul în direcție opusă , de exemplu: unul dintre ventilatoarele CPU care împinge în jos și un alt ventilator CPU care împinge în sus.

Majoritatea ventilatorului CPU funcționează pe 12V, dar la 9V funcționează foarte bine.

Totul este despre aparat. Acum să discutăm pe circuit.

Diagram schematic:

control digital al monitorului LCD cu umiditate a incubatorului

Circuitul de mai sus este pentru conexiunea Arduino la LCD. Reglați potențiometrul de 10K pentru reglarea contrastului LCD.

Climatizare automată a incubatorului Arduino

Arduino este creierul proiectului. Există 3 butoane pentru setarea temperaturii și umidității. Pinul A5 controlează releul pentru vaporizator și A4 pentru bec. Senzorul DHT11 este conectat la pinul A0. Pinii A1, A2 și A3 utilizați pentru butoane.

Pinul # 7 (pin non-PWM) este conectat la firul de comandă al servomotorului pot fi conectate mai multe servomotoare la pinul # 7. Există o concepție greșită că servomotorele funcționează numai cu pinii PWM ai Arduino, ceea ce nu este adevărat. Funcționează fericit și pe pinii PWM.

Conectați o diodă 1N4007 peste bobina releului în polarizare inversă pentru a elimina vârfurile de înaltă tensiune în timp ce porniți și opriți.

Alimentare electrică:

Circuitul de alimentare cu incubatorul Arduino

Sursa de alimentare de mai sus poate furniza 9 V și 5 V alimentare pentru releu, Arduino, servomotor (SG90) și ventilatoare CPU. Mufa DC este furnizată pentru alimentarea Arduino.

Utilizați radiatoare pentru regulatoarele de tensiune.

Aceasta încheie alimentarea cu energie electrică.

Descărcați senzorul DHT al bibliotecii:

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

Codul programului:

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

Cum se operează circuitul:

· Odată cu configurarea hardware-ului și a aparatului complet, porniți circuitul.

· Afișajul arată „setat temperatura”, apăsați butonul sus sau jos pentru a obține temperatura dorită și apăsați „butonul set”.

· Acum pe afișaj apare „set Umiditate” apăsați butoanele sus sau jos pentru a obține umiditatea dorită și apăsați „butonul set”.

· Începe funcționarea incubatorului.

Vă rugăm să consultați internetul sau să primiți sfaturi de la un profesionist pentru temperatura și umiditatea ouălor.

Dacă aveți vreo întrebare specifică cu privire la acest circuit de control al temperaturii și umidității incubatorului automat Arduino, nu ezitați să exprimați în secțiunea de comentarii. Este posibil să primiți un răspuns rapid.




Precedent: Controler de pompă bazat pe SMS cu închidere automată a funcționării în uscare Următorul: Sistem de alertă de alimentare cu apă bazat pe SMS