Arduino DHT11 Nasıl Kullanılır ?
Bu yazılımız da gayet ucuz olan dht11 ısı ve nem sensörü Arduino DHT11 nasıl kullanılır nasıl çalışır konusunu detaylı bir şekilde görsellerle anlatacağım arkadaşlar.
DHT11 Nasıl çalışır ?
DHT11’in içinde bir Termistör ile birlikte bir de nem algılayıcı bir bileşen vardır.

Nem algılayıcı bileşen, iki adet bakır plakanın aralarında sandviç gibi bindirilerek nem tutan alt tabakaya sahip iki elektrot içerir.
Su buharı ile yoğunlaşan iyonlar sayesinde plakalar arası iletkenlik seviyesi artarak yada azalarak iletkenlik seviyesini değiştirir
İki elektrot arasındaki iletkenlik değişimi bağıl nem ile orantılıdır. Daha yüksek bağıl nem, elektrotlar arasındaki direnci azaltırken, daha düşük bağıl nem, elektrotlar arasındaki direnci arttırır.

DHT11 ayrıca sıcaklığı ölçmek için bir NTC Termistör içerir. Bir termistör, direnci sıcaklıkla büyük ölçüde değişen bir termal dirençtir. “NTC” terimi “Negatif Sıcaklık Katsayısı” anlamına gelir, bu da sıcaklığın artmasıyla direncin azaldığı anlamına gelir.

DHT11 Hazır modülü ise bu elektrot plakalar ve termistörden gelen analog veriyi içindeki entegre ile dijital veriye dönüştürüp bize doğrudan aktarır bu sayede analog okumay ihtiyaç duymayız.

DHT11 Sensörü
DHT11 sıcaklığı ± 2.0 ° C hassasiyetle 0 ° C ila 50 ° C arasında ve % 5 doğrulukla %20 ila %80 arasında nemi ölçebilir. Ayrıca DHT11 1 HZ örnekleme hızına sahiptir yani saniyede 1 defa okuma yapılabilir.

İç Devre

DHT11 sensörünü kullanmak için normalde 10K Pull-up direncine ihtiyaç duyarız ancak bu modülde hazır olarak geldiği için bu dirence gerek kalmamıştır.Ayrıca filtrelemek için ihtiyaç duyulan kapasitör de dahili olarak vardır.
DHT11 Bağlantı uçları

Modülümüzde sadece 3 adet çıkış vardır. Buda işimizi hayli kolaylaştırıyor.
VCC : 5 V beslemesi
GND : Eksi uç
Out : ise okuma yapacağımız uç
Arduino DHT11 Bağlantısı

Bağlantılar oldukça basit. Arduino’daki 5V çıkışına + (VCC) pini bağlayarak başlayın ve – (GND) ‘yi toprağa bağlayın. Son olarak, Çıkış pinini 8 numaralı dijital pime bağlayın.
Kodlamaya Başlayalım
İlk olarak Kütüphanemizi indirelim. Aşağıdaki butondan indirebilirsiniz.
Yüklemek için Arduino IDE’yi açın, Çizim> Kitaplığı Dahil Et> .ZIP Kitaplığı Ekle’ye gidin ve az önce indirdiğiniz DHTlib ZIP dosyasını seçin.
Arduino DHT11 Kodlarımız
#include <dht.h> // Ekledigimiz lib
#define outPin 8 // Sensorumuzu bagladigimiz 8. pin
dht DHT; // Dht objeye donusturelim
void setup() {
Serial.begin(9600);
}
void loop() {
int readData = DHT.read11(outPin);
float t = DHT.temperature; // isi oku
float h = DHT.humidity; // nem oku
Serial.print("Temperature = ");
Serial.print(t);
Serial.print("°C | ");
Serial.print((t*9.0)/5.0+32.0); // celciustan fahrenheit donusumude yapalim
Serial.println("°F ");
Serial.print("Humidity = ");
Serial.print(h);
Serial.println("% ");
Serial.println("");
delay(2000); // 2 saniye bekleyelim
}
Evet kodlarımızı derleyip projemizi yükledik şimdi serial porttan okuyalım..

Kodlar Nasıl Çalışır ?
Evet arkadaşlar projeyi verdim bitti olmasın şimdi yazdığımız kodların nasıl çalıştığını hangi fonksiyon ne işe yarar ? Öğrenmeliyiz. haydi devam edelim.
Kütüphanemizi ekledik ancak Dht11 hangi pin girişinden okunacak onu ayarlamamız alzım bunun için bir nesne oluşturuyoruz.
#include <dht.h>
#define outPin 8
dht DHT;
Sonrasında Serial portundan okuduğumuz değeri almak için serial portunu aşağıdaki komut ile aktif ediyoruz.
void setup() {
Serial.begin(9600);
}
Sonrasında döngü içerisine DHT11 ile okuduğumuz veriyi belirlediğimiz değişkene aşağıdaki kod parçacığı ile atıyoruz.
int readData = DHT.read11(outPin);
Şimdi de okuma bağlantı işlemini gerçekleştirdik artık nesnel bir bağlantı oluştuğuna göre ısıl ve nem değerlerini aşağıdaki komutlar ile alıyoruz.
float t = DHT.temperature; // Read temperature
float h = DHT.humidity; // Read humidity
Hatırlarsanız serial portumuzu aktif etmiştik bir kaç satır önce şimdi aktif ettiğimiz serial port’a verilerimizi aktarıyoruz.
Serial.print(t);
Serial.print(h);
Gördüğünüz gibi arduino bize büyük kolaylık bahşetmiş bizde basitçe herşeyi yaptık ve anladık Haydi şimdi bu işlemi birde LCD ekran ile yapalım.
Arduino DHT11 Sensörü LCD Ekrana yazdırma
Arkadaşlar Doğrudan Uygulama Bağlantılarına geçiyoruz Lcd dışında benzer bir proje olacak lafıda gereksiz uzatmanın alemi yok 🙂

Şimdi Arduino idemize kodlarımızı Yazıyoruz ve Arduinomuza yüklüyoruz.
#include <LiquidCrystal.h> // LCD kutuphanesi
#include <dht.h>
#define outPin 8
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Lcd Tanimliyoruz
dht DHT; // Dht Tanimliyoruz
void setup() {
lcd.begin(16,2); // Lcd kutuphanesini baslatiyoruz
}
void loop() {
int readData = DHT.read11(outPin);
float t = DHT.temperature;
float h = DHT.humidity;
lcd.setCursor(0,0);
lcd.print("Temp.: ");
lcd.print(t);
lcd.print((char)223);//Ekrana dereceyi yazdiriyoruz
lcd.print("C");
lcd.setCursor(0,1);
lcd.print("Humi.: ");
lcd.print(h);
lcd.print("%");
delay(2000);
}
Arkadaşlar Herşeyi doğru yaptıysak eğer sizde sonucu aşağıdaki gibi göreceksiniz Umarım Faydalı olmuştur. iyi çalışmalar.
