Genel Elektronik

Arduino DHT11 Nasıl Kullanılır ?

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.

Arduino Dht11 Nasıl Kullanılır ?
Arduino Dht11 Nasıl Kullanılı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.

Elektrot Plakalar
Elektrot Plakalar

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.

NTC Termistör Sıcaklık Dayanımı Karakteristik Eğri
NTC Termistör

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 Modül Görseli
DHT11 Modül Görseli

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.

DHT11 Sensör
DHT11 Sensör

İç Devre

DHT11 İnceleme Görseli
DHT11 İnceleme Görseli

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ı

DHT11 Modül Çıkış Uçları Görseli
DHT11 Modül Çıkış Uçları Görseli

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ı

DHT11 Bağlantı Şeması
DHT11 Bağlantı Şeması

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

Serial Port Okuma ekranı
Serial Port Okuma ekranı

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 :)

DHT11 LCD Bağlantı Şeması
DHT11 LCD Bağlantı Şeması

Ş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.

LCD Ekran Derece Yazdırma
LCD Ekran Derece Yazdırma

Onur NP

Arduino Stm32 gibi Mikrodenetleyici PLC Otomasyon sistemleri ve Genel elektronik projeleri üzerine örnek paylaşımlar yapmaktayım Endüstriyel ve Kişisel proejelerinize Ücretli olarak destek verebilirim.

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu
Call Now ButtonAra
Kapalı
Kapalı