Nemlendirici, kapalı bir alanın bağıl nemini artırarak alanda yeterli nemin sağlanması için kullanılan bir cihazdır. Özellikle kış aylarında ısıtıcının çalıştırılması havanın bağıl neminin düşmesine neden olur. Bu kendin yap projemizde, sensör mekanizmasını kullanarak atmosferik havanın bağıl nemini koruyabilen otomatik bir nemlendirici yapacağız . Ayrıca havadaki nem yüzdesi cinsinden bağıl nemi (RH) göstermek için bir ekran kullanıyoruz. Arduino ve LCD dışında atmosferik nem değerlerini okumak için DHT11 sensörünü de kullanıyoruz . Bağıl nemin gerekli sınırdan düşük olduğunu tespit ederse, nemlendiriciyi açar ve bunun tersi de geçerlidir.
Portatif Nemlendirici Oluşturmak için Gerekli Bileşenler
- ultrasonik nemlendirici
- Arduino Nano
- 5V Röle
- 7805
- 25V,1000uf Elektrolitik kondansatör
- 12V,2 AMP AC-DC Adaptör
- DHT11 Sensörü
- USB Dişi soket
- Board
- Bağlantı telleri
Portatif Nemlendiricinin Çalışması
Taşınabilir nemlendirici, yüksek frekansta titreşen metal bir diyafram kullanarak sıcak/soğuk bir sis üretebilir. Ses titreşimleri nemi havaya iter. Nemlendiricide üretilen buğu hemen hemen havaya emilir. Sis üretmek için nemlendiricinin su yatağı üzerinde yüzdürülmesi gerekir. Yapacağımız nemlendiricinin çalışması aşağıdaki blok diyagramdan anlaşılabilir:
Yukarıdaki blok diyagramda gösterildiği gibi, ultrasonik nemlendirici kaptaki su yüzeyine yerleştirilir. Nemlendirici su üzerinde yüzer. Nemi algılamamız gerektiğinden, DHT11 nem sensörü Arduino Nano ile bağlanır ve gerçek zamanlı değerleri görüntülemek için bir OLED ekran bağlanır. Ayrıca, nem değerine bağlı olarak, nemlendiriciyi AÇIK/KAPALI konuma getiren röleyi tetiklememiz gerekir. Böylece nemlendirici değeri bir referans değer ile karşılaştırılır ve nem değerlerine bağlı olarak nemlendirici AÇIK/KAPALI konuma getirilir. Bu nem alma cihazının ana özellikleri aşağıda verilmiştir:
- Tür: Yüzer/Ultrasonik
- Güç: USB, 5V DC
- Çalışma Akımı: 500Ma
- Gürültü seviyesi: ≤36db
Taşınabilir Nemlendirici Devre Şeması
Arduino kullanarak bir DIY Nemlendirici oluşturmak için tam şema burada verilmiştir:
Devre şemasını detaylı olarak öğrenelim. Gösterildiği gibi, öncelikle bir 12V DC güç kaynağı, 7805 Regülatör ve Kapasitif filtre kullanılarak 5V DC güç kaynağına dönüştürülür. Daha sonra bu güç Arduino Nano, OLED, DHT11 ve Röle devrelerine verilir. DHT11’in veri pini, kodda gösterildiği ve yapılandırıldığı gibi Arduino’nun Dijital giriş pinine bağlanır. OLED ekran, Arduino’nun A4, A5 pini olan I2C Pinleri aracılığıyla Arduino’ya bağlanır. Benzer şekilde Arduino’nun dijital çıkış pinleri DC Fan sürüşü için Röle ve BJT’ye bağlanmıştır.
Bileşenleri Perfboard’da lehimlemek:
Proje kurulumunu mobil ve daha uyumlu hale getirmek için perfboard üzerindeki tüm bileşenleri aşağıdaki resimde gösterildiği gibi lehimledim:
Nemlendirici için Arduino Nano’yu Programlama
Devre şemasına göre başarılı donanım bağlantısı tamamlandıktan sonra, şimdi kodu Arduino’ya flash etme zamanı. Kodun tamamı belgenin sonunda verilmiştir. Burada tüm kodu satır satır açıklıyoruz.
Bu yüzden ilk adım, bu projede gerekli olan tüm kütüphaneyi “ SoftwareSerial.h ”, “ wire.h ”, “Adafruit_SH1106.h” ve “DHT.h” koda dahil etmektir . “ SoftwareSerial.h ” ve “ wire.h ” dahilidir ve “ Adafruit_SH1106.h ” bu linkten , “DHT.h” ise bu linkten indirilebilir .
#include <SoftwareSerial.h>
#include <Wire.h>
#include <Adafruit_SH1106.h>
#include "DHT.h"
Ardından, benim durumumda OX3C olan OX3C veya OX3D olabilen OLED I2C adresi tanımlanır. Genellikle 1.3 inç OLED’in adresi OX3C’dir. Ayrıca ekranın Reset pini de tanımlanmalıdır. Benim durumumda, ekran Arduino’nun Reset pinini paylaştığı için -1 olarak tanımlanır.
#define OLED_ADDRESS 0x3C
#define OLED_RESET -1
Adafruit_SH1106 display(OLED_RESET);
Şimdi, kod boyunca kullanılabilecek DHT Sınıfı türünde bir nesne bildirildi.
DHT dht;
int humidity=0;
İçinde setup () bildiğimiz gibi, ilklenmeleri İşte vs. Seri iletişim, OLED ekran başlatımlar, burada yapılması gereken, Yazılım seri iletişim için, varsayılan baud hızı SH1106_SWITCHCAPVCC gelen ekran gerilimi üretmek için kullanılır. İşte 9600 olan tanımlanır Ekranı başlatmak için dahili olarak 3.3V ve display.begin işlevi kullanılır.
void setup()
{
Serial.begin(9600);
dht.setup(2);
pinMode(6,OUTPUT);
pinMode(11,OUTPUT);
display.begin(SH1106_SWITCHCAPVCC, OLED_ADDRESS);
display.clearDisplay();
}
Sensörden nem değerini okumak için getHumidity() fonksiyonu kullanılır ve bir değişkende saklanır.
Ardından, aşağıda gösterildiği gibi Metin boyutu ve İmleç konumlarını seçmek için ilgili işlevler kullanılarak OLED’de görüntülenir.
delay(dht.getMinimumSamplingPeriod());
humidity = dht.getHumidity();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(27, 2);
display.print("CIRCUIT DIGEST");
display.setTextSize(1);
display.setCursor(35, 20);
display.print("HUMIDITY(%)");
display.display();
display.setTextSize(2);
display.setCursor(55, 40);
display.print(humidity);
display.display();
delay(50);
display.clearDisplay();
Son olarak, Nemlendiriciyi tetiklemek için nem değeri, altında nemlendiriciyi ve Fanı açan rölenin tetiklendiği bir referans nem seviyesi ile karşılaştırılır.
if(humidity<88 )
{
digitalWrite(6,HIGH);
digitalWrite(11,HIGH);
}
else
{
digitalWrite(6,LOW);
digitalWrite(11,LOW);
}
}
Taşınabilir Nemlendiriciyi Test Etme
Kod ve Donanım hazır olduğunda, bu nemlendiricinin kapalı bir odaya yerleştirildiğinde nasıl performans gösterdiğini test edebiliriz. Bunun için aşağıda verilen adımları izleyin:
- 3/4 taze su ile doldurun; th kabın ve aşağıda gösterildiği gibi daha sonra üzerine nemlendirici yüzer:
- Devreyi AÇMAK için Adaptörü AÇIN ve şimdi OLED üzerindeki nem seviyelerini görmeliyiz.
- Ardından nem seviyesi Referans değerinden düşükse, Nemlendirici buğu üretmeye başlamalı ve Fan AÇIK konuma getirilmelidir.
Bu ev yapımı nemlendiricinin tam çalışması da belgenin sonunda verilen videoda anlatılmaktadır.
#include <SoftwareSerial.h>
#include <Wire.h>
#include <Adafruit_SH1106.h>
#define OLED_ADDRESS 0x3C
#define OLED_RESET -1
Adafruit_SH1106 display(OLED_RESET);
#include "DHT.h"
DHT dht;
int humidity=0;
void setup()
{
Serial.begin(9600);
dht.setup(2);
pinMode(6,OUTPUT);
pinMode(11,OUTPUT);
display.begin(SH1106_SWITCHCAPVCC, OLED_ADDRESS);
display.clearDisplay();
}
void loop()
{
delay(dht.getMinimumSamplingPeriod());
humidity = dht.getHumidity();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(27, 2);
display.print("CIRCUIT DIGEST");
display.setTextSize(1);
display.setCursor(35, 20);
display.print("HUMIDITY(%)");
display.display();
display.setTextSize(2);
display.setCursor(55, 40);
display.print(humidity);
display.display();
delay(50);
display.clearDisplay();
if(humidity<85)
{
digitalWrite(6,HIGH);
digitalWrite(11,HIGH);
}
else
{
digitalWrite(6,LOW);
digitalWrite(11,LOW);
}
}
Video;
Bu makale buradan çevrilmiştir.