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

Попробуйте наш инструмент устранения неполадок





В этом посте мы собираемся построить инкубатор с использованием Arduino, который может самостоятельно регулировать температуру и влажность. Этот проект был предложен г-ном Имраном Юсафом, который активно читает этот сайт.



Вступление

Этот проект был разработан в соответствии с предложениями г-на Имрана, но были внесены некоторые дополнительные изменения, чтобы сделать этот проект универсальным для всех.

Вы можете использовать свое творчество и воображение, чтобы выполнить этот проект.



Итак, давайте разберемся, что такое инкубатор? (Для новичков)

Инкубатор - это закрытый аппарат, внутренняя среда которого изолирована от окружающей среды.

Это необходимо для создания благоприятных условий для выращиваемого образца. Например, инкубаторы используются для выращивания микробов в лабораториях, инкубаторы используются в больницах для ухода за недоношенными младенцами.

Инкубатор, который мы собираемся построить в этом проекте, предназначен для инкубации куриных или любых других птичьих яиц.

У всех инкубаторов есть одно общее свойство: регулирование температуры, влажности и обеспечение достаточного количества кислорода.

Вы можете установить температуру и влажность, нажав соответствующие кнопки, а также он показывает внутреннюю температуру и влажность в режиме реального времени. После установки обоих параметров он автоматически регулирует нагревательный элемент (колбу) и испаритель (увлажнитель), чтобы они соответствовали заданному значению.

Теперь давайте разберемся с устройством и конструкцией инкубатора.

Шасси инкубатора может быть из пенополистирола / термобокса или акрилового стекла, которое может обеспечить хорошую теплоизоляцию. Я бы порекомендовал ящик из пенополистирола / термобокса, с которым будет легче работать.

Конструкция аппарата:

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

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

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

Гибкая трубка может быть похожа на показанную ниже:

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

Есть цилиндр, несущий яйца с несколькими отверстиями вокруг него, соединенный с серводвигателем. Серводвигатель вращает цилиндр на 180 градусов каждые 8 ​​часов, таким образом, яйца вращаются.

Вращение яиц предотвращает прилипание эмбриона к оболочке скорлупы, а также обеспечивает контакт с пищевым материалом в яйце, особенно на ранней стадии инкубации.

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

Вращающийся цилиндр может быть трубкой из ПВХ или картонным цилиндром.

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

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

И да, используйте свое творчество, чтобы сделать вещи лучше.

Если вы хотите разместить больше яиц, сделайте больше таких цилиндров, и к одному выводу линии управления можно подключить несколько серводвигателей.

Отверстия для контроля влажности можно сделать, просунув карандаш в коробку из пенополистирола / термобаллона вверху. Если вы проделали много ненужных отверстий или если влажность или температура уходят слишком быстро, вы можете закрыть некоторые из отверстий с помощью изоленты или изоленты.

Датчик DHT11 - это сердце проекта, который может быть размещен в середине любых четырех сторон инкубатора (внутри), но подальше от колбы или впускной трубки влажности.

Вентиляторы процессора могут быть размещены, как показано на схеме устройства, для циркуляции воздуха. Для правильной циркуляции воздуха используйте не менее двух вентиляторы толкают воздух в противоположном направлении , например: один вентилятор ЦП толкает вниз, а другой вентилятор ЦП толкает вверх.

Большинство вентиляторов процессора работают от 12 В, но от 9 В работают нормально.

Вот и все об аппарате. Теперь поговорим о схеме.

Схематическая диаграмма:

управление цифровым ЖК-монитором влажности инкубатора

Вышеуказанная схема предназначена для подключения Arduino к ЖК-дисплею. Отрегулируйте потенциометр 10K для регулировки контрастности ЖК-дисплея.

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

Arduino - это мозг проекта. Есть 3 кнопки для установки температуры и влажности. Контакт A5 управляет реле испарителя, а A4 - лампочкой. Датчик DHT11 подключен к выводу A0. Контакты A1, A2 и A3 используются для кнопок.

Контакт № 7 (вывод без ШИМ) подключен к проводу управления серводвигателя. Несколько серводвигателей могут быть подключены к контакту № 7. Существует заблуждение, что серводвигатели работают только с выводами PWM Arduino, что неверно. Он успешно работает и с выводами без ШИМ.

Подключите диод 1N4007 к катушке реле с обратным смещением, чтобы исключить скачки высокого напряжения при включении и выключении.

Источник питания:

Схема питания инкубатора Arduino

Вышеупомянутый источник питания может обеспечивать питание 9 В и 5 В для реле, Arduino, серводвигателя (SG90) и вентиляторов процессора. Разъем постоянного тока предназначен для питания 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