Inkubator wykorzystujący Arduino z automatyczną kontrolą temperatury i wilgotności

Wypróbuj Nasz Instrument Do Eliminowania Problemów





W tym poście zamierzamy zbudować inkubator z wykorzystaniem Arduino, który może samoregulować swoją temperaturę i wilgotność. Ten projekt został zasugerowany przez pana Imrana yousafa, który jest zapalonym czytelnikiem tej witryny.



Wprowadzenie

Ten projekt został zaprojektowany zgodnie z sugestiami pana Imrana, ale wprowadzono pewne dodatkowe modyfikacje, aby uczynić ten projekt uniwersalnym dla wszystkich.

Możesz użyć swojej kreatywności i wyobraźni, aby wykonać ten projekt.



Zrozummy więc, czym jest inkubator? (Dla noobów)

Inkubator to zamknięta aparatura, której środowisko wewnętrzne jest odizolowane od otoczenia.

Ma to na celu stworzenie korzystnego środowiska dla osobnika będącego pod opieką. Na przykład inkubatory są używane do hodowli organizmów drobnoustrojów w laboratoriach, inkubatory są używane w szpitalach do opieki nad wcześniakami.

Rodzaj inkubatora, który zamierzamy zbudować w tym projekcie, będzie służył do wylęgu jaj kurzych lub innych jaj ptasich.

Wszystkie inkubatory łączy jedno - reguluje temperaturę, wilgotność i zapewnia odpowiednie zaopatrzenie w tlen.

Możesz ustawić temperaturę i wilgotność, naciskając odpowiednie przyciski, a także pokazuje wewnętrzną temperaturę i wilgotność w czasie rzeczywistym. Po ustawieniu obu parametrów automatycznie steruje elementem grzejnym (bańką) i parownikiem (nawilżaczem), aby osiągnąć zadaną wartość.

Przyjrzyjmy się teraz aparaturze i konstrukcji inkubatora.

Obudowa inkubatora może być wykonana ze styropianu / skrzynki termoizolacyjnej lub ze szkła akrylowego, które zapewnia dobrą izolację termiczną. Polecam skrzynkę styropianowo-termiczną, z którą będzie łatwiej pracować.

Konstrukcja aparatu:

układ materiału inkubatora

Żarówka 25-watowa działa jako źródło ciepła.Wyższa moc może zranić jaja w małym pojemniku. Wilgotność zapewnia waporyzator, możesz użyć waporyzatora w podobny sposób, jak pokazano poniżej.

Wytwarza gęsty strumień pary, który trafia do inkubatora. Para może być przenoszona przez dowolną elastyczną rurkę.

Elastyczna rurka może być czymś podobnym, jak pokazano poniżej:

Para może być wlotowa od góry styropianu / pojemnika termoizolacyjnego, jak pokazano na projekcie urządzenia, tak aby nadmiar ciepła uciekał przez otwory kontroli wilgotności i mniej ranił jaja.

Znajduje się tam cylinder przenoszący jajka z kilkoma otworami, połączony z serwomotorem. Silnik serwo obraca cylinder o 180 stopni co 8 godzin, w ten sposób obracając jaja.

Rotacja jaj zapobiega przywieraniu zarodka do błony skorupy, a także zapewnia kontakt z pokarmem znajdującym się w jaju, zwłaszcza na wczesnym etapie inkubacji.

Obracający się cylinder musi mieć kilka otworów, aby zapewnić odpowiednią cyrkulację powietrza, a także cylinder musi być wydrążony z obu stron.

Obrotowy cylinder może być rurą z PVC lub tekturowym cylindrem.

Wklej patyczek do lodów na oba końce wydrążonego cylindra tak, aby patyczek do lodów tworzył dwa równe półkola. Wklej ramię serwomotoru na środku patyczka do lodów. Po drugiej stronie wbij dziurę i mocno wklej wykałaczkę.

Włóż wytrych do wnętrza pudełka i wklej serwo na przeciwległej ścianie wewnątrz pudełka. Cylinder musi pozostać w pozycji poziomej, jak to tylko możliwe, teraz cylinder może się obracać podczas obracania się serwomotoru.

I tak, użyj swojej kreatywności, aby wszystko było lepsze.

Jeśli chcesz pomieścić więcej jaj, zrób więcej takich cylindrów, a kilka serwomotorów można podłączyć do tego samego styku przewodu sterującego.

Otwory kontrolujące wilgotność można wykonać, wsuwając ołówek przez pudełko styropianowo-termiczne u góry. Jeśli zrobiłeś wiele niepotrzebnych dziur lub jeśli wilgoć lub temperatura ucieka zbyt szybko, możesz zakryć niektóre otwory taśmą izolacyjną lub taśmą klejącą.

Sercem projektu jest czujnik DHT11, który można umieścić na środku dowolnego z czterech boków inkubatora (wewnątrz), ale z dala od żarówki lub rury wlotowej wilgoci.

Wentylatory procesora można umieścić zgodnie z projektem urządzenia w celu zapewnienia cyrkulacji powietrza. Aby zapewnić odpowiednią cyrkulację powietrza, użyj co najmniej dwóch wentylatory wypychające powietrze w przeciwnym kierunku , na przykład: jeden wentylator procesora popycha w dół, a drugi wentylator procesora pcha do góry.

Większość wentylatorów procesora działa na 12 V, ale przy 9 V działa dobrze.

To wszystko o aparacie. Porozmawiajmy teraz o obwodzie.

Schemat Diagarm:

kontrola wilgotności w inkubatorze za pomocą cyfrowego monitora LCD

Powyższy obwód służy do połączenia Arduino z wyświetlaczem LCD. Dostosuj potencjometr 10K do regulacji kontrastu LCD.

Inkubator Arduino z automatyczną kontrolą klimatu

Arduino jest mózgiem projektu. Są 3 przyciski do ustawiania temperatury i wilgotności. Pin A5 steruje przekaźnikiem parownika i A4 dla żarówki. Czujnik DHT11 jest podłączony do pinu A0. Kołki A1, A2 i A3 używane do przycisków.

Pin # 7 (styk bez PWM) jest podłączony do przewodu sterującego serwomotoru. Wiele serwosilników można podłączyć do pinu # 7. Istnieje błędne przekonanie, że serwomotory działają tylko z pinami PWM Arduino, co nie jest prawdą. Działa szczęśliwie również na pinach innych niż PWM.

Podłączyć diodę 1N4007 do cewki przekaźnika z odwrotnym polaryzacją, aby wyeliminować skoki wysokiego napięcia podczas włączania i wyłączania.

Zasilacz:

Obwód zasilania inkubatora Arduino

Powyższy zasilacz może zapewnić zasilanie 9 V i 5 V dla przekaźnika, Arduino, silnika serwo (SG90) i wentylatorów procesora. Gniazdo DC służy do zasilania Arduino.

Użyj radiatorów do regulatorów napięcia.

Na tym kończy się zasilacz.

Pobierz bibliotekę czujnika DHT:

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

Kod programu:

//------------------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 obsługiwać obwód:

· Po zakończeniu konfiguracji sprzętu i urządzeń, włącz obwód.

· Wyświetlacz pokazuje „ustawioną temperaturę”, naciśnij przycisk w górę lub w dół, aby uzyskać żądaną temperaturę i naciśnij „przycisk ustawiania”.

· Teraz wyświetlacz pokazuje „ustaw wilgotność”, naciśnij przyciski w górę lub w dół, aby uzyskać pożądaną wilgotność i naciśnij przycisk „ustaw”.

· Rozpoczyna funkcjonowanie inkubatora.

Skorzystaj z internetu lub uzyskaj poradę od profesjonalisty w sprawie temperatury i wilgotności jaj.

Jeśli masz jakieś konkretne pytanie dotyczące tego automatycznego obwodu kontroli temperatury i wilgotności inkubatora Arduino, możesz je wyrazić w sekcji komentarzy. Możesz otrzymać szybką odpowiedź.




Poprzedni: Sterownik pompy oparty na SMS z automatycznym wyłączaniem na sucho Dalej: System ostrzegania o zaopatrzeniu w wodę oparty na SMS