Incubadora usando Arduino com controle automático de temperatura e umidade

Experimente Nosso Instrumento Para Eliminar Problemas





Neste post vamos construir uma incubadora usando Arduino que pode autorregular sua temperatura e umidade. Este projeto foi sugerido pelo Sr. Imran yousaf que é um leitor ávido deste site.



Introdução

Este projeto foi elaborado de acordo com as sugestões do Sr. Imran, mas algumas modificações adicionais são feitas para tornar este projeto universalmente adequado para todos.

Você pode usar sua criatividade e imaginação para realizar este projeto.



Então, vamos entender o que é uma incubadora? (Para iniciantes)

A incubadora é um aparelho fechado cujo ambiente interno é isolado do ambiente ambiente.

Isso é para criar um ambiente favorável para o espécime sob cuidados. Por exemplo, incubadoras são usadas para cultivar organismos microbianos em laboratórios, incubadoras são usadas em hospitais para cuidar de bebês prematuros.

O tipo de incubadora que vamos construir neste projeto é para chocar ovos de galinha ou de qualquer outro ovo de ave.

Todas as incubadoras têm uma coisa em comum: regula a temperatura, umidade e fornece o suprimento de oxigênio adequado.

Você pode definir a temperatura e a umidade pressionando os botões fornecidos e também mostra a temperatura e a umidade interna em tempo real. Uma vez que ambos os parâmetros definidos, ele controla automaticamente o elemento de aquecimento (lâmpada) e vaporizador (umidificador) para atingir o ponto de ajuste.

Agora vamos entender o aparato e o design da incubadora.

O chassi da incubadora pode ser de isopor / caixa termocolante ou vidro acrílico que pode fornecer um bom isolamento térmico. Eu recomendaria a caixa de isopor / termocolar que será mais fácil de trabalhar.

Projeto do aparelho:

layout do material da incubadora

Uma lâmpada de 25 watts atua como fonte de calor, uma potência maior pode prejudicar os ovos em um recipiente pequeno. A umidade é fornecida pelo vaporizador, você pode usar o vaporizador algo semelhante ao mostrado abaixo.

Ele produz um fluxo espesso de vapor que entrará na incubadora. O vapor pode ser transportado por qualquer tubo flexível.

O tubo flexível pode ser algo semelhante ao mostrado abaixo:

O vapor pode ser introduzido pela parte superior da caixa de isopor / termocolar conforme mostrado no projeto do aparelho, de modo que o excesso de calor escape pelos orifícios de controle de umidade e prejudique menos os ovos.

Há um cilindro carregando ovos com vários orifícios ao redor, conectado a um servo motor. O servo motor gira o cilindro 180 graus a cada 8 horas, portanto, gira os ovos.

A rotação dos ovos evita que o embrião grude na membrana da casca e também proporciona o contato com o material alimentar do ovo, principalmente no estágio inicial de incubação.

O cilindro giratório deve ter vários orifícios para que haja circulação de ar adequada e também o cilindro deve ser oco em ambos os lados.

O cilindro giratório pode ser tubo de PVC ou cilindro de papelão.

Cole um palito de sorvete em ambas as extremidades do cilindro oco de forma que o palito de sorvete faça dois semicírculos iguais. Cole o braço do servo motor no meio da barra de sorvete. Do outro lado, faça um buraco e cole um palito de dente com firmeza.

Insira o palito dentro da caixa e cole o servo na parede oposta dentro da caixa. O cilindro deve ficar o mais horizontal possível, agora o cilindro pode girar enquanto o servo motor gira.

E sim, use sua criatividade para tornar as coisas melhores.

Se você quiser acomodar mais ovos, faça mais desses cilindros e vários servo motores podem ser conectados no mesmo pino da linha de controle.

Os orifícios de controle de umidade podem ser feitos enfiando um lápis na caixa de isopor / termocolante no topo. Se você fez muitos orifícios desnecessários ou se a umidade ou a temperatura estão escapando muito rapidamente, você pode cobrir alguns dos orifícios usando fita isolante ou fita isolante.

O sensor DHT11 é o coração do projeto e pode ser colocado no meio de quaisquer dos quatro lados da incubadora (dentro), mas longe do bulbo ou do tubo de entrada de umidade.

Os ventiladores da CPU podem ser colocados conforme mostrado no projeto do aparelho para circulação de ar. Para uma circulação de ar adequada, use pelo menos dois ventiladores empurrando o ar na direção oposta , por exemplo: uma ventoinha da CPU empurrando para baixo e outra ventoinha da CPU empurrando para cima.

A maioria das ventoinhas da CPU funciona em 12V, mas em 9V funciona bem.

Isso é tudo sobre o aparelho. Agora vamos discutir sobre o circuito.

Diagrama esquemático:

controle do monitor LCD digital da umidade da incubadora

O circuito acima é para conexão do Arduino ao LCD. Ajuste o potenciômetro de 10K para ajustar o contraste do LCD.

Controle de clima automático da incubadora Arduino

O Arduino é o cérebro do projeto. Existem 3 botões de pressão para definir a temperatura e umidade. O pino A5 controla o relé para vaporizador e A4 para o bulbo. O sensor DHT11 é conectado ao pino A0. Os pinos A1, A2 e A3 usados ​​para botões de pressão.

O pino nº 7 (pino não PWM) é conectado ao fio de controle do servo motor, servo motores múltiplos podem ser conectados ao pino nº 7. Há um equívoco de que servo motores funcionam apenas com pinos PWM do Arduino, o que não é verdade. Ele funciona bem em pinos não PWM também.

Conecte um diodo 1N4007 através da bobina do relé em polarização reversa para eliminar picos de alta tensão ao ligar e desligar.

Fonte de energia:

Circuito de alimentação da incubadora Arduino

A fonte de alimentação acima pode fornecer alimentação de 9 V e 5 V para relé, Arduino, servo motor (SG90) e ventiladores da CPU. O conector DC é fornecido para alimentar o Arduino.

Use dissipadores de calor para os reguladores de tensão.

Isso conclui o fornecimento de energia.

Baixe o sensor DHT da biblioteca:

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

Código do programa:

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

Como operar o circuito:

· Com a configuração completa do hardware e do aparelho, ligue o circuito.

· O display mostra “definir temperatura” pressione o botão para cima ou para baixo para obter a temperatura desejada e pressione o “botão definir”.

· Agora o display mostra “definir umidade” pressione os botões para cima ou para baixo para obter a umidade desejada e pressione o “botão definir”.

· Inicia o funcionamento da incubadora.

Consulte a Internet ou peça orientação de um profissional sobre o nível de temperatura e umidade dos ovos.

Se você tiver alguma pergunta específica sobre o circuito de controle de temperatura e umidade da incubadora automática Arduino, sinta-se à vontade para expressá-la na seção de comentários. Você pode receber uma resposta rápida.




Anterior: Controlador de bomba baseado em SMS com desligamento automático de funcionamento a seco Próximo: Sistema de Alerta de Abastecimento de Água baseado em SMS