자동 온도 및 습도 제어 기능이있는 Arduino를 사용한 인큐베이터

문제를 제거하기 위해 도구를 사용해보십시오





이 글에서는 온도와 습도를 스스로 조절할 수있는 아두 이노를 사용하여 인큐베이터를 구축 할 것입니다. 이 프로젝트는이 웹 사이트의 열렬한 독자 인 Mr. Imran yousaf가 제안했습니다.



소개

이 프로젝트는 Mr. Imran의 제안에 따라 설계되었지만이 프로젝트를 모든 사람에게 보편적으로 적합하게 만들기 위해 몇 가지 추가 수정이 이루어졌습니다.

이 프로젝트를 완료하기 위해 창의력과 상상력을 사용할 수 있습니다.



그럼 인큐베이터가 무엇인지 이해합시다. (멍청이를 위해)

인큐베이터는 내부 환경이 주변 환경과 격리 된 밀폐 된 장치입니다.

이것은 관리중인 표본에 유리한 환경을 조성하기위한 것입니다. 예를 들어 인큐베이터는 실험실에서 미생물을 키우는 데 사용되고, 인큐베이터는 병원에서 미숙아를 돌보는 데 사용됩니다.

우리가이 프로젝트에서 만들려는 부화기의 종류는 닭 알이나 다른 새 알을 부화시키는 것입니다.

모든 인큐베이터에는 온도, 습도를 조절하고 적절한 산소 공급을 제공하는 공통점이 있습니다.

제공된 버튼을 눌러 온도와 습도를 설정할 수 있으며 내부 온도와 습도를 실시간으로 보여줍니다. 두 매개 변수가 모두 설정되면 설정 점을 충족하도록 가열 요소 (전구)와 기화기 (가습기)를 자동으로 제어합니다.

이제 인큐베이터의 장치와 디자인을 이해합시다.

인큐베이터의 섀시는 우수한 단열을 제공 할 수있는 스티로폼 / 서모 콜 상자 또는 아크릴 유리로 만들어 질 수 있습니다. 작업하기 쉬운 스티로폼 / 서모 콜 박스를 추천합니다.

장치 디자인 :

인큐베이터 재료 레이아웃

25 와트 전구는 열원 역할을합니다. 더 높은 와트는 작은 용기에 담긴 계란을 손상시킬 수 있습니다. 습도는 기화기에 의해 제공되며 아래 그림과 유사한 기화기를 사용할 수 있습니다.

인큐베이터로 유입되는 두꺼운 증기 흐름을 생성합니다. 증기는 유연한 튜브를 통해 운반 될 수 있습니다.

유연한 튜브는 아래와 유사 할 수 있습니다.

장치 설계에 표시된대로 스티로폼 / 서모 콜 상자의 상단에서 증기가 유입 될 수 있으므로 과도한 열이 습도 조절 구멍을 통해 빠져 나가 계란을 덜 손상시킬 수 있습니다.

서보 모터에 연결된 주변에 여러 개의 구멍이있는 알을 운반하는 실린더가 있습니다. 서보 모터는 8 시간마다 실린더를 180도 회전시켜 계란을 회전시킵니다.

계란의 회전은 배아가 껍질 막에 달라 붙는 것을 방지하고 특히 부화 초기 단계에서 계란의 식품 재료와 접촉을 제공합니다.

회전하는 실린더에는 적절한 공기 순환이 이루어 지도록 여러 개의 구멍이 있어야하며 실린더는 양쪽이 비어 있어야합니다.

회전 실린더는 PVC 튜브 또는 판지 실린더 일 수 있습니다.

아이스크림 스틱이 두 개의 동일한 반원을 만들도록 속이 빈 실린더의 양쪽 끝에 아이스크림 스틱을 붙여 넣습니다. 아이스크림 스틱 중간에 서보 모터의 팔을 붙여 넣습니다. 다른쪽에 구멍을 뚫고 이쑤시개를 단단히 붙입니다.

상자 안쪽에 이쑤시개를 삽입하고 상자 안쪽의 반대쪽 벽에 서보를 붙여 넣습니다. 실린더는 가능한 한 수평을 유지해야합니다. 이제 실린더는 서보 모터가 회전 할 때 회전 할 수 있습니다.

그리고 예, 창의력을 사용하여 더 나은 것을 만드십시오.

더 많은 계란을 수용하려면 더 많은 실린더를 만들고 동일한 제어 라인 핀에 여러 개의 서보 모터를 연결할 수 있습니다.

습도 조절 구멍은 상단에있는 스티로폼 / 서모 콜 상자를 통해 연필을 찔러서 만들 수 있습니다. 불필요한 구멍을 많이 만들었거나 습도 나 온도가 너무 빨리 빠져 나가는 경우 전기 또는 덕트 테이프를 사용하여 구멍 중 일부를 덮을 수 있습니다.

DHT11 센서는 인큐베이터의 4면 (내부) 중앙에 배치 할 수 있지만 전구 또는 습도 유입 튜브에서 멀리 떨어진 프로젝트의 핵심입니다.

CPU 팬은 공기 순환을위한 장치 설계에 표시된대로 배치 할 수 있습니다. 적절한 공기 순환을 위해 최소 2 개 사용 반대 방향으로 공기를 밀어내는 팬 예 : CPU 팬 중 하나가 아래쪽으로 밀고 다른 CPU 팬이 위쪽으로 밀립니다.

대부분의 CPU 팬은 12V에서 작동하지만 9V에서는 잘 작동합니다.

그게 장치에 관한 것입니다. 이제 회로에 대해 논의하겠습니다.

회로도 Diagarm :

인큐베이터 습도 디지털 LCD 모니터 제어

위의 회로는 Arduino와 LCD 연결을위한 것입니다. LCD 대비를 조정하려면 10K 전위차계를 조정하십시오.

Arduino 인큐베이터 자동 온도 조절기

Arduino는 프로젝트의 두뇌입니다. 온도 및 습도 설정을위한 3 개의 푸시 버튼이 있습니다. 핀 A5는 기화기의 릴레이와 전구의 A4를 제어합니다. DHT11 센서는 핀 A0에 연결됩니다. 푸시 버튼에 사용되는 핀 A1, A2 및 A3.

핀 # 7 (비 PWM 핀)은 서보 모터의 제어 와이어에 연결됩니다. 여러 서보 모터를 핀 # 7에 연결할 수 있습니다. 서보 모터가 Arduino의 PWM 핀에서만 작동한다는 오해가 있지만 사실이 아닙니다. 비 PWM 핀에서도 행복하게 작동합니다.

스위치를 켜고 끄는 동안 고전압 스파이크를 제거하기 위해 역 바이어스에서 릴레이 코일에 다이오드 1N4007을 연결합니다.

전력 공급 :

Arduino 인큐베이터 전원 공급 장치 회로

위의 전원 공급 장치는 릴레이, Arduino, 서보 모터 (SG90) 및 CPU 팬에 9V 및 5V 공급을 제공 할 수 있습니다. Arduino에 전원을 공급하기 위해 DC 잭이 제공됩니다.

전압 조정기에는 방열판을 사용하십시오.

이것으로 전원 공급을 마칩니다.

라이브러리 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 기반 급수 경보 시스템