Otomatik Sıcaklık ve Nem kontrolü ile Arduino Kullanan Kuluçka Makinesi

Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin





Bu yazıda Arduino'yu kullanarak kendi ısısını ve nemini kendi kendine düzenleyebilen bir kuluçka makinesi inşa edeceğiz. Bu proje, bu web sitesinin hevesli okuyucusu olan Imran yousaf tarafından önerilmiştir.



Giriş

Bu proje Sayın İmran'ın önerilerine göre tasarlandı, ancak bu projeyi herkes için evrensel olarak uygun hale getirmek için bazı ek değişiklikler yapıldı.

Bu projeyi tamamlamak için yaratıcılığınızı ve hayal gücünüzü kullanabilirsiniz.



Öyleyse bir kuluçka makinesinin ne olduğunu anlayalım mı? (Çaylaklar için)

İnkübatör, iç çevresi ortam ortamından izole edilmiş kapalı bir aparattır.

Bu, bakım altındaki örnek için uygun ortam yaratmak içindir. Örneğin inkübatörler, laboratuarlarda mikrobiyal organizma yetiştirmek için kullanılır, inkübatörler hastanelerde prematüre doğan bebeklere bakmak için kullanılır.

Bu projede inşa edeceğimiz kuluçka makinesi türü, tavuk yumurtası veya diğer kuş yumurtalarını çıkarmak içindir.

Tüm inkübatörlerin ortak bir yönü vardır; sıcaklığı, nemi düzenler ve yeterli oksijen beslemesi sağlar.

Sağlanan düğmelere basarak sıcaklık ve nemi ayarlayabilirsiniz ve ayrıca iç sıcaklığı ve nemi gerçek zamanlı olarak gösterir. Her iki parametre de ayarlandıktan sonra, ayar noktasını karşılamak için ısıtma elemanını (ampul) ve buharlaştırıcıyı (nemlendirici) otomatik olarak kontrol eder.

Şimdi inkübatörün aparatını ve tasarımını anlayalım.

İnkübatörün şasesi, iyi ısı yalıtımı sağlayabilen Strafor / termokol kutu veya akrilik cam olabilir. Çalışması daha kolay olacak Strafor / termokol kutusunu tavsiye ederim.

Aparat tasarımı:

kuluçka makinesi malzeme düzeni

25 watt'lık bir ampul, ısı kaynağı olarak işlev görür, daha yüksek watt, küçük bir kaptaki yumurtalara zarar verebilir. Nem buharlaştırıcı tarafından sağlanır, buharlaştırıcıyı aşağıda gösterilene benzer bir şekilde kullanabilirsiniz.

İnkübatöre girecek kalın buhar akışı üretir. Buhar, herhangi bir esnek tüp aracılığıyla taşınabilir.

Esnek boru, aşağıda gösterilene benzer bir şey olabilir:

Buhar, aparat tasarımında gösterildiği gibi Strafor / termokol kutusunun üstünden girebilir, böylece aşırı ısı nem kontrol deliklerinden kaçar ve yumurtalara daha az zarar verir.

Servo motora bağlı, etrafında birkaç delik bulunan yumurta taşıyan bir silindir bulunmaktadır. Servo motor her 8 saatte bir silindiri 180 derece döndürerek yumurtaları döndürür.

Yumurtaların dönmesi, embriyonun kabuk zarına yapışmasını engeller ve ayrıca özellikle inkübasyonun erken evrelerinde yumurta içindeki gıda maddesi ile temas sağlar.

Doğru hava sirkülasyonunun sağlanması için dönen silindirin birkaç deliğe sahip olması ve ayrıca silindirin her iki tarafında da oyuk olması gerekir.

Dönen silindir, PVC boru veya karton silindir olabilir.

İçi boş silindirin her iki ucuna, dondurma çubuğu iki eşit yarım daire oluşturacak şekilde bir dondurma çubuğu yapıştırın. Servo motorun kolunu dondurma çubuğunun ortasına yapıştırın. Diğer tarafta bir delik açın ve diş macunu sıkıca yapıştırın.

Diş kazma aletini kutunun içine yerleştirin ve servoyu kutunun karşısındaki duvara yapıştırın. Silindir mümkün olduğunca yatay kalmalıdır, şimdi silindir servo motor dönerken dönebilir.

Ve evet, işleri daha iyi hale getirmek için yaratıcılığınızı kullanın.

Daha fazla yumurta barındırmak istiyorsanız, daha fazla bu tür silindir yapın ve aynı kontrol hattı pimine birden fazla servo motor bağlanabilir.

Nem kontrol delikleri, üstteki Strafor / termokol kutusundan bir kalem sokularak yapılabilir. Çok fazla gereksiz delik açtıysanız veya nem veya sıcaklık çok hızlı dışarı çıkıyorsa, elektrik veya koli bandı kullanarak deliklerin bazılarını kapatabilirsiniz.

DHT11 sensörü, inkübatörün herhangi bir dört kenarının ortasına (iç) ancak ampulden veya nem giriş tüpünden uzağa yerleştirilebilen projenin kalbidir.

CPU fanları, hava sirkülasyonu için aparat tasarımında gösterildiği gibi yerleştirilebilir. Uygun hava sirkülasyonu için en az iki havayı ters yönde iten fanlar , örneğin: CPU fanlarından biri aşağı doğru itiliyor ve diğer CPU fanı yukarı doğru itiyor.

Çoğu CPU fanı 12V'de çalışır ancak 9V'de gayet iyi çalışır.

Hepsi aparatla ilgili. Şimdi devre üzerinde tartışalım.

Şematik Diagarm:

kuluçka makinesi nem dijital LCD monitör kontrolü

Yukarıdaki devre Arduino'dan LCD'ye bağlantı içindir. LCD kontrastını ayarlamak için 10K potansiyometreyi ayarlayın.

Arduino kuluçka makinesi otomatik iklim kontrolü

Arduino, projenin beynidir. Sıcaklık ve nemi ayarlamak için 3 adet buton bulunmaktadır. Pin A5, buharlaştırıcı rölesini ve ampul için A4'ü kontrol eder. DHT11 sensörü A0 pinine bağlıdır. A1, A2 ve A3 pinleri basma düğmeleri için kullanılır.

Pim # 7 (PWM olmayan pim) servo motorun kontrol teline bağlanır, birden fazla servo motor, pim # 7'ye bağlanabilir. Servo motorların sadece Arduino'nun PWM pinleri ile çalıştığı konusunda yanlış bir kanı var ki bu doğru değil. PWM olmayan pinlerde de mutlu bir şekilde çalışır.

Açma ve kapama sırasında yüksek voltaj yükselmelerini ortadan kaldırmak için röle bobinine ters öngerilimle bir diyot 1N4007 bağlayın.

Güç kaynağı:

Arduino inkübatör güç kaynağı devresi

Yukarıdaki güç kaynağı, röle, Arduino, Servo motor (SG90) ve CPU fanları için 9 V ve 5 V besleme sağlayabilir. DC jakı, Arduino'ya güç sağlamak için sağlanmıştır.

Voltaj regülatörleri için ısı emiciler kullanın.

Bu güç kaynağını tamamlıyor.

Kitaplık DHT sensörünü indirin:

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

Program kodu:

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

Devre nasıl çalıştırılır:

· Donanım ve aparat kurulumu tamamlandıktan sonra, devreyi AÇIN.

· Ekranda 'sıcaklığı ayarla' gösterilir, istenen sıcaklığı elde etmek için yukarı veya aşağı tuşlarına basın ve 'set butonuna' basın.

· Ekranda 'Nem Ayarla' gösterilir. İstediğiniz nemi elde etmek için yukarı veya aşağı düğmelerine basın ve 'Ayar düğmesine' basın.

· Kuluçka makinesinin çalışmasını başlatır.

Yumurtaların sıcaklık ve nem seviyesi için lütfen internete başvurun veya bir uzmandan tavsiye alın.

Bu Arduino otomatik inkübatör sıcaklığı ve nem kontrol devresi ile ilgili herhangi bir sorunuz varsa, yorum bölümünde ifade etmekten çekinmeyin. Hızlı bir cevap alabilirsiniz.




Önceki: Otomatik Kuru Çalıştırma Kapatma Özellikli SMS Tabanlı Pompa Kontrol Cihazı Sonraki: SMS Tabanlı Su Temini Uyarı Sistemi