10
Oca
2020

Arduino ile DHT11 veya DHT22 nem ve sıcaklık sensörü kullanımı

DHT11 ve DHT22; düşük maliyetli dijital sıcaklık ve nem sensörleridir. Havanın durumunu ölçmek için kapasitif nem sensörü ve termistör kullanırlar. Sinyal pininden dijital çıkış verdikleri için analog giriş pinine bağlanmaları gerekmez. DHT11 ve DHT22′ in özellikleri aşağıdaki tabloda karşılaştırılmıştır.

DHT11DHT22
Maksimum akım2,5mA2,5mA
Nem ölçüm aralığı%20-%80 arasında ve %5 hassasiyet%0-%100 arasında ve %2-5 arasında hassasiyet
Sıcaklık ölçüm aralığı0-50°C arasında ±2°C hassasiyet-40 to 80°C arasında ±2°C hassasiyet
Ölçüm hızı1 Hz frekans (saniyede bir kere)0,5 Hz frekans (iki saniyede bir kere)
Ölçüler15,5mm x 12mm x 5,5mm15,1mm x 25mm x 7,7mm
Pin sayısı4 pin4 pin

DHT11 ve DHT22 sensörlerin 1 numaralı pini +voltaj girişidir. Her iki sensörün de besleme gerilimi aralığı 3,3V ile 5V arasındadır. Özellikle uzun kablo kullanılan uygulamalarda 5V gerilim ile beslenmesi daha sağlıklı ölçüm yapılmasını sağlar. 2 numaralı pin sinyal çıkışıdır ve Arduino kartının dijital I/O pinlerinin birine takılır. 3 numaralı pin kullanılmaz. 4 numaralı pin ise toprak pinidir.

Malzemeler

  • 1 adet Arduino
  • 1 adet DHT11 / DHT22 sensör ve 10K direnç (veya DHT11 / DHT22 modülü)

Bağlantı şeması

DHT11 ve DHT22 sensörleri Arduino kartla kullanırken pull-up direnç kullanmak gerekir. Aşağıda DHT11 sensörün bağlantı şeması verilmiştir.

Aşağıda DHT22 sensörün bağlantı şeması verilmiştir.

DHT11 ve DHT22 sensörlerin modül olarak satılan versiyonları da bulunmaktadır. Bu modüllerin VCC, GND ve Sinyal olmak üzere 3 pini vardır. Ancak pin sıralaması üreticiden üreticiye değişmektedir. Aşağıda örnek bir DHT11 sensör modülünün bağlantı şeması vardır.

Aşağıda örnek bir DHT22 sensör modülünün bağlantı şeması vardır.

Kaynak kod

Bu çalışmada, DHT serisi sensörden alınan sıcaklık ve nem bilgisi Arduino seri port ekranında gösterilmiştir. Programın ilk satırında DHT.h sensör kütüphanesi çağrılmıştır. DHT.h kütüphanesini indirmek için tıklayınız. Sıkıştırılmış kütüphaneyi, Belgelerim>Arduino>Libraries klasörüne yükleyerek ekleyebilirsiniz.

#include "DHT.h"  //DHT kütüphanesini çağır
int DHTPIN 7  // DHT sensörün bağlı olduğu pini tanımla
DHT dht(DHTPIN, DHT11);  // dht adında sensör nesnesi tanımla. 
 
void setup() {
  Serial.begin(9600);  //Seri portu aç
  dht.begin();  //dht sensörü başlat
}

void loop() {
  delay(2000); // Sensörden bir sonraki veriyi almak için 2sn bekle 
  float nem = dht.readHumidity(); // Nem miktarını oku
  float sicaklik = dht.readTemperature();  //Sıcaklık bilgisini oku
  // Seri port ekranına okunan değerleri yazdır.
  Serial.print("Nem: Yüzde ");      
  Serial.print(nem  );
  Serial.print(" Sıcaklık: ");
  Serial.print(sicaklik);
  Serial.println(" C");
}

DHT11 sensör kullanılıyorsa “dht” adlı sensör nesnesi
DHT dht(DHTPIN, DHT11)
şeklinde tanımlanır. Ancak DHT22 kullanılıyorsa
DHT dht(DHTPIN, DHT22)
şeklinde tanımlanır.

float nem = dht.readHumidity()
komutu ile nem bilgisi,
float sicaklik = dht.readTemperature()
komutu ile de sıcaklık bilgisi okunmaktadır.