DHT11 ve DHT22, sıcaklık ve nemi tek bir veri hattından dijital olarak gönderen sensörlerdir. DHT11 ucuzdur ama aralığı dar ve hassasiyeti düşüktür (yaklaşık 0-50°C, ±2°C). DHT22 (AM2302) ise daha geniş aralıkta (-40 … +80°C) ve daha hassas (yaklaşık ±0,5°C) ölçer, ancak saniyede en fazla bir kez değil, yaklaşık iki saniyede bir okunabilir. Arduino'da her ikisi de aynı DHT kütüphanesiyle kullanılır.
Sera, kuluçka makinesi, akıllı ev ya da hava istasyonu projelerinde sıcaklıkla birlikte nemi de ölçmek gerekir. Bu iş için en çok kullanılan iki sensör DHT11 ve DHT22'dir. Görünüşleri benzer, kodları aynıdır ama ölçüm kaliteleri oldukça farklıdır. Bu rehberde ikisini karşılaştırıyor ve Arduino ile nasıl kullanılacaklarını anlatıyoruz.
DHT11 ve DHT22 nedir?
DHT11 ve DHT22, içinde kapasitif bir nem algılayıcısı ve bir termistör bulunan, ölçtüğü sıcaklık ve nem değerlerini tek bir veri hattından dijital olarak gönderen sensörlerdir. DHT22'nin diğer adı AM2302'dir. Kart (modül) tipi versiyonlarda gerekli pull-up direnci ve bağlantı pinleri hazırdır.
DHT11 ve DHT22 arasındaki fark nedir?
| Özellik | DHT11 | DHT22 (AM2302) |
|---|---|---|
| Sıcaklık aralığı | Yaklaşık 0 … 50°C | Yaklaşık -40 … 80°C |
| Sıcaklık hassasiyeti | Yaklaşık ±2°C | Yaklaşık ±0,5°C |
| Nem aralığı | Yaklaşık %20-80/90 | Yaklaşık %0-100 |
| Nem hassasiyeti | Yaklaşık ±%5 | Yaklaşık ±%2-5 |
| Çözünürlük | 1°C, %1 | 0,1°C, %0,1 |
| Okuma aralığı | Saniyede en fazla 1 | Yaklaşık 2 saniyede 1 |
| Fiyat | Daha ucuz | Daha pahalı |
Kısacası: Oda içi basit gösterimler ve eğitim için DHT11 yeterlidir. Dış ortam, sera, kuluçka ve negatif sıcaklık gereken projelerde DHT22 tercih edilmelidir. Örnek ürünler: DHT22 sıcaklık ve nem sensörü kartı ve DHT11 LED'li sensör kartı.
DHT sensörü Arduino'ya nasıl bağlanır?
- VCC (+): 3,3V ya da 5V.
- GND (-): GND.
- DATA (OUT): Dijital pin, ör. D2.
Çıplak (kart üzerinde olmayan) sensörlerde VCC ile DATA arasına yaklaşık 10 kΩ'luk bir pull-up direnci bağlanmalıdır; kart tipi modüllerde bu direnç zaten bulunur. Uzun kablolarda (birkaç metreden fazla) 5V besleme daha kararlı sonuç verir.
Arduino ile adım adım nem ölçümü
- Arduino IDE'de Kütüphane Yöneticisi'nden "DHT sensor library" (ve istenirse bağımlılığı olan "Adafruit Unified Sensor") kütüphanesini kurun.
- Kodun başında sensörü tanımlayın: DHT dht(2, DHT22); (DHT11 için DHT11 yazın).
- setup() içinde dht.begin(); çağırın.
- loop() içinde dht.readHumidity() ve dht.readTemperature() ile değerleri okuyun.
- Okumalar arasında DHT22 için en az 2 saniye, DHT11 için en az 1 saniye bekleyin.
- Okunan değerin geçerli olup olmadığını isnan() ile kontrol edin.
Bu sensörü bir akıllı ev sistemine eklemek için ESP32 akıllı ev projesine bakabilirsiniz. Arduino'ya yeni başlıyorsanız Arduino nedir rehberimizden başlayın.
DHT sensörü NaN ya da hatalı değer gösteriyorsa
- Bağlantıları ve pin numarasını kontrol edin; koddaki sensör tipi (DHT11/DHT22) doğru seçilmiş olmalıdır.
- Çıplak sensörde pull-up direncinin bağlı olduğundan emin olun.
- Okumalar arasında yeterli süre bekleyin; çok sık okumak hata verir.
- Sensörü ısı kaynaklarından (regülatör, röle, mikrodenetleyici) uzak tutun; kart üzerindeki ısı sıcaklığı yüksek gösterir.
- Uzun kablolarda besleme gerilimini 5V yapın ya da kabloyu kısaltın.
DHT yerine hangi sensörler kullanılabilir?
Daha yüksek doğruluk ve I2C arayüzü isteniyorsa SHT20, HTU21D ve HDC1080 gibi sensörler iyi alternatiflerdir. I2C sayesinde aynı iki kabloya başka sensörler de bağlanabilir. Örnekler: SHT20 sıcaklık ve nem sensörü, HTU21D modülü, HDC1080 yüksek hassasiyetli modül ve küçük DHT12 sensörü. Basınç da ölçmek isterseniz BME280 sıcaklık, nem ve basıncı birlikte ölçer. Sıcaklığı yalnız ölçecekseniz sıcaklık sensörleri rehberimize bakın.
Sık sorulan sorular
DHT11 mi, DHT22 mi almalıyım?
Basit oda içi projeler ve eğitim için DHT11 yeterlidir. Daha hassas ölçüm, dış ortam, negatif sıcaklık ya da geniş nem aralığı gerekiyorsa DHT22 tercih edilmelidir.
DHT22 kaç saniyede bir okunur?
DHT22 yaklaşık 2 saniyede bir okunabilir. Daha sık okunduğunda hata ya da önceki değer döner. DHT11 ise saniyede en fazla bir kez okunabilir.
DHT sensörü 3,3V ile çalışır mı?
Evet, DHT11 ve DHT22 3,3V ile çalışabilir; ESP32 ve ESP8266 ile doğrudan kullanılabilir. Uzun kablolarda 5V besleme daha kararlıdır, ancak bu durumda veri hattının mikrodenetleyiciye uygun gerilimde kaldığından emin olun.
DHT22 ile AM2302 aynı mı?
Evet, AM2302 DHT22'nin kablolu ya da kart tipi versiyonu için kullanılan addır; ölçüm özellikleri aynıdır.
Nem sensörü neden yanlış ölçüyor?
Sensör ısı kaynaklarına yakın olabilir, yoğuşmaya maruz kalmış ya da kirlenmiş olabilir. Sensörü havalandırılan bir yere, ısı kaynaklarından uzağa yerleştirin ve doğrudan suya maruz bırakmayın.
Özet
- DHT11 ve DHT22 sıcaklık ve nemi tek veri hattından dijital gönderir.
- DHT22 daha geniş aralıkta ve daha hassastır; DHT11 daha ucuzdur.
- Çıplak sensörde 10 kΩ pull-up gerekir, kart tipinde hazırdır.
- DHT22 en fazla 2 saniyede bir okunur.
- Daha hassas ölçüm için SHT20, HTU21D, HDC1080 gibi I2C sensörler kullanılır.