Инкубатор, използващ Arduino с автоматичен контрол на температурата и влажността

Инкубатор, използващ Arduino с автоматичен контрол на температурата и влажността

В този пост ще изградим инкубатор, използвайки Arduino, който може да регулира самостоятелно температурата и влажността си. Този проект беше предложен от г-н Imran yousaf, който е запален читател на този уебсайт.



Въведение

Този проект е проектиран според предложенията на г-н Имран, но са направени някои допълнителни модификации, за да се направи този проект универсално подходящ за всички.





Можете да използвате вашата креативност и въображение, за да направите този проект.

Така че нека да разберем какво е инкубатор? (За noobs)



Инкубаторът е затворен апарат, чиято вътрешна среда е изолирана от околната среда.

Това се създава благоприятна среда за образеца, който се грижи. Например инкубаторите се използват за отглеждане на микробни организми в лаборатории, инкубаторите се използват в болниците, за да се грижат за преждевременно родени бебета.

Видът инкубатор, който ще изградим в този проект, е за излюпване на пилешки яйца или всякакви други птичи яйца.

Всички кувьози имат едно общо нещо, което регулира температурата, влажността и осигурява адекватно снабдяване с кислород.

Можете да зададете температура и влажност, като натиснете предоставените бутони, а също така тя показва вътрешната температура и влажност в реално време. След като и двата параметъра са зададени, той автоматично контролира нагревателния елемент (крушка) и изпарителя (овлажнителя), за да отговори на зададената точка.

Сега нека разберем устройството и дизайна на инкубатора.

Шасито на инкубатора може да бъде от стиропор / термокол или акрилно стъкло, което може да осигури добра топлоизолация. Бих препоръчал кутия от стиропор / термокол, с която ще се работи по-лесно.

Дизайн на апарата:

оформление на материала на инкубатора

Крушка от 25 вата действа като източник на топлина, като по-голямата мощност може да навреди на яйцата в малък контейнер. Влажността се осигурява от изпарител, можете да използвате изпарителя нещо подобно, както е показано по-долу.

Той произвежда дебел поток пара, който ще влезе в инкубатора. Парата може да се пренася през всяка гъвкава тръба.

Гъвкавата тръба може да бъде нещо подобно, както е показано по-долу:

Парата може да влезе от върха на кутията от стиропор / термокол, както е показано в конструкцията на устройството, така че излишната топлина да излиза през дупките за контрол на влажността и по-малко да наранява яйцата.

Има цилиндър, носещ яйца с няколко отвора около него, свързани към серво мотор. Серво моторът завърта цилиндъра на 180 градуса на всеки 8 часа, като по този начин върти яйцата.

Въртенето на яйцата предотвратява залепването на ембриона към мембраната на черупката и също така осигурява контакт с хранителния материал в яйцето, особено в ранния етап на инкубацията.

Въртящият се цилиндър трябва да има няколко броя отвори, така че да има правилна циркулация на въздуха, а също така цилиндърът да е кух от двете страни.

Въртящият се цилиндър може да бъде PVC тръба или картон цилиндър.

Поставете пръчка за сладолед в двата края на кухия цилиндър, така че пръчката за сладолед да направи два равни полукръга. Поставете рамото на серво мотора в средата на пръчката за сладолед. От другата страна избодете дупка и поставете здраво зъб.

Поставете зъбчето в кутията и поставете серво на противоположната стена вътре в кутията. Цилиндърът трябва да остане хоризонтален, доколкото е възможно, сега цилиндърът може да се върти при завъртане на сервомотора.

И да, използвайте креативността си, за да направите нещата по-добри.

Ако искате да поберете повече яйца, направете повече такива цилиндри и множество серво мотори могат да бъдат свързани към същия щифт на контролната линия.

Дупките за контрол на влажността могат да се направят чрез пробиване на молив през кутията от стиропор / термокол в горната част. Ако сте направили много ненужни дупки или ако влажността или температурата изтичат твърде бързо, можете да покриете някои от дупките с помощта на електрическа или тиксо.

Сензорът DHT11 е сърцевината на проекта, който може да бъде поставен в средата на произволни четири страни на инкубатора (отвътре), но далеч от входната тръба на крушката или влажността.

Вентилаторите на процесора могат да бъдат поставени, както е показано в дизайна на апарата за циркулация на въздуха. За правилна циркулация на въздуха използвайте поне две вентилатори, изтласкващи въздуха в обратна посока , например: един от вентилатора на процесора, бутащ надолу, и друг вентилатор на процесора, бутащ нагоре.

Повечето вентилатори на процесора работят на 12V, но на 9V работят добре.

Това е всичко за апарата. Сега да обсъдим по веригата.

Схематична диагарма:

инкубатор влажност цифров LCD монитор контрол

Горната схема е за връзка с Arduino към LCD. Регулирайте 10K потенциометър за регулиране на LCD контраста.

Автоматичен климатичен контрол на инкубатора Arduino

Arduino е мозъкът на проекта. Има 3 бутона за настройка на температура и влажност. Пинът A5 управлява релето за изпарител и A4 за крушката. Сензорът DHT11 е свързан към щифт A0. Щифтовете A1, A2 и A3, използвани за бутони.

Пинът №7 (не-ШИМ щифт) е свързан към управляващия проводник на серво мотора, към серво мотор могат да се свържат множество серво мотори. Има погрешно схващане, че сервомоторите работят само с ШИМ щифтове на Arduino, което не е вярно. Работи с удоволствие и на не PWM щифтове.

Свържете диод 1N4007 през намотката на релето в обратна посока, за да премахнете пиковете на високо напрежение, докато включвате и изключвате.

Захранване:

Електрическа верига за захранване на инкубатор Arduino

Горното захранване може да осигури 9 V и 5 V захранване за реле, Arduino, серво мотор (SG90) и вентилатори на процесора. DC жакът е предвиден за захранване на Arduino.

Използвайте радиатори за регулаторите на напрежението.

Това завършва захранването.

Изтеглете библиотеката DHT сензор:

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

Код на програмата:

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

Как да управлявате веригата:

· След завършена настройка на хардуера и апарата, включете веригата.

· Дисплеят показва „зададена температура“, натиснете бутона нагоре или надолу, за да получите желаната температура и натиснете „бутона за настройка“.

· Сега на дисплея се показва „настройка влажност“ натиснете бутони нагоре или надолу, за да получите желаната влажност и натиснете „бутон настройка“

· Започва функционирането на инкубатора.

Моля, обърнете се към интернет или потърсете съвет от професионалист за нивото на температурата и влажността на яйцата.

Ако имате някакъв конкретен въпрос относно тази схема за автоматичен контрол на температурата и влажността на инкубатора Arduino, не се колебайте да изразите в раздела за коментари. Може да получите бърз отговор.




Предишен: SMS базиран контролер на помпата с автоматично изключване на сухо изпълнение Напред: Система за предупреждение за водоснабдяване, базирана на SMS