DHT11 Sıcaklık ve Nem Sensörü Nasıl Kullanılır?

DHT11 Sıcaklık ve Nemi Nasıl Ölçer?

DHT11’in içinde bir Termistör ile birlikte bir nem algılama bileşeni vardır.

Nem algılama bileşeni, aralarında nem tutan alt tabaka bulunan iki elektrota sahiptir. İyonlar, su buharı tarafından emilirken substrat tarafından serbest bırakılır, bu da elektrotlar arasındaki iletkenliği arttırır. İki elektrot arasındaki direnç 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 artırır.

Nem Sensörü Yapısı

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 ve sıcaklık-direnç orantı grafiği

Diğer tarafta, 8-bit SOIC-14 paketlenmiş IC’ye sahip küçük bir PCB var. Bu IC, kayıtlı kalibrasyon katsayıları ile analog sinyali ölçer ve işler, analogdan dijitale dönüştürme yapar ve sıcaklık ve nem ile dijital bir sinyal olarak iletilir.

8-bit SOIC

DHT11 Modülüne Genel Bakış

DHT11, 0°C’den 50°C’ye kadar ±2.0°C hassasiyetle sıcaklığı ve %20’den 80’e kadar nemi %5 doğrulukla ölçebilir.

DHT11 Modülü

DHT11’in örnekleme hızının 1Hz olduğunu, yani her saniyede,ondan bir kere yeni veri alabileceğinizi unutmayın.

Destek Devresi

Modül, gerekli tüm destekleyici devrelerle birlikte gelir, bu nedenle herhangi bir ekstra bileşen olmadan çalışmaya hazır olmalıdır.

Modülün arka tarafı

DHT11 sensörleri, sensör ve Arduino arasında uygun iletişim için genellikle VCC ve Out pini arasında 10KΩ’luk harici çekme direnci gerektirir. Ancak modülün yerleşik bir çekme direnci vardır, bu nedenle eklemenize gerek yoktur. Modül ayrıca, güç kaynağındaki gürültüyü filtrelemek için bir ayırma kapasitörüne sahiptir.

Pin Diyagramı

Pinleri
  • + (VCC): pin sensör için güç sağlar. Besleme voltajı 3,3V ile 5,5V arasında değişse de 5V besleme önerilir. 5V güç kaynağı olması durumunda sensörü 20 metreye kadar tutabilirsiniz. Ancak 3,3V besleme gerilimi ile kablo uzunluğu 1 metreyi geçmemelidir. Aksi takdirde, hat voltajı düşüşü ölçümde hatalara yol açacaktır.
  • Out: pin, sensör ve Arduino arasındaki iletişim için kullanılır.
  • – (GND): Arduino’nun toprağına bağlanmalıdır.

DHT11 Kütüphanesi Yükleme

DHT11 sensörleri, verileri aktarmak için kendi tek kablolu protokolüne sahiptir. Bu protokol kesin zamanlama gerektirir. Neyse ki, DHT kütüphanesi, sıcaklık ve nem verilerini okumak için basit komutlar verebilmemiz için tüm karmaşıklıkları gizlemek için yazılmıştır. GitHub deposunu ziyaret ederek önce kütüphaneyi indirin

Kurmak için Arduino IDE’yi açın, Sketch > Include Library > Add .ZIP Library’ye gidin ve ardından az önce indirdiğiniz DHTlib ZIP dosyasını seçin.

Kullanım Örneği

Kütüphaneyi kurduktan sonra, aşağıdaki gibi bağlantıyı yapalım.

Pin bağlantısı

Bağlantıyı yaptıktan , seri monitörde sıcaklık ve bağıl nem değerlerini yazdıracaktır.

Arduino kodumuz:

#include <dht.h>	// Kütüphaneyi ekliyoruz
#define outPin 8	// Sinyal pinini belirliyoruz

dht DHT;			// DHT objesi oluşturuyoruz.

void setup() {
	Serial.begin(9600);
}

void loop() {
	int readData = DHT.read11(outPin);

	float t = DHT.temperature;	// Dereceyi okuyoruz
	float h = DHT.humidity;		// Nemi okuyoruz

	Serial.print("Temperature = ");
	Serial.print(t);
	Serial.print("°C | ");
	Serial.print((t*9.0)/5.0+32.0);	// Celcius derececeyi ferhanayta çeviriyoruz.
	Serial.println("°F ");
	Serial.print("Humidity = ");
	Serial.print(h);
	Serial.println("% ");
	Serial.println("");

	delay(2000); // 2 sn bekliyoruz
}

Kod yüklendikten sonra, Arduino’dan çıktıyı görmek için bir Seri Monitör penceresi açın.

Seri Monitör Çıktısı