22 Ekim 2026 Perşembe

DHT11/DHT22 Sıcaklık ve Nem Sensörü


DHT11 ve DHT22, DHTxx ailesinin en popüler iki sensörüdür. Ortam sıcaklığını ve nemini ölçmek için yaygın olarak kullanılan bu sensörler, hobilerden profesyonel uygulamalara kadar geniş bir yelpazede kullanılmaktadır. DHT11 ve DHT22 sıcaklık ve nem sensörleri, dijital çıkışlı ve kalibrasyonludur. Tek bir pakette bir nem sensörü ve bir NTC sıcaklık sensörünü bir araya getirirler ve Arduino ile kullanımı kolay bir dijital ara yüz sunarlar. DHT22’nin kablolu olan versiyonu AM2302 olarak isimlendirilir.

Bu 2 sensör birbirlerine çok benzeseler ve aynı pin dizilimini paylaşsalar da teknik özellikler açısından bazı önemli farklılıklar vardır: 

Sıcaklık ölçümünde; DHT22, -40°C ile +125°C arasındaki sıcaklıkları ölçebilir ve yarım derece (±0,5°C) hassasiyetle ölçüm yapar. DHT11 ise, yalnızca 0°C ile 50°C arasındaki sıcaklıkları ölçebilir ve 2 derece (±2°C) hassasiyetle ölçüm yapar. 

Nem ölçümünde ise; DHT22 %0 ile %100 arasındaki nemi %2-5 doğrulukla tespit edebilirken, DHT11 yalnızca %20 ile %80 arasındaki nemi ölçer ve %5 doğrulukla tespit edebilir.

DHT22 daha doğru ve daha zorlu koşullarda çalışsa da daha pahalıdır. DHT11 ise daha ucuz, daha küçük boyutlu ve daha sık ölçüm yapabilir. DHT11 her 1 saniyede bir örnekleme yaparak ölçüm sonucu verirken, DHT22 her 2 saniyede bir örnekleme yapar. Bu farklılıklara rağmen, her iki sensör de aynı voltajla (3 ila 5 volt) çalışır ve ölçüm yaparken en fazla 2,5 mA elektrik tüketir. 



DHT11 ve DHT22 Teknik Özellikleri








DHT11

DHT22

Çalışma Voltajı

3,3 – 5,5V

3,3v – 5V

Maksimum Akım Tüketimi

2,5mA

2,5mA

Sıcaklık Aralığı

0 – 50°C

-40 ila 80°C

Sıcaklık Doğruluğu

± 2°C

± 0,5°C

Nem Aralığı

%20 – %80

%0 – 100%

Nem Doğruluğu

± %5

± %2-5

Örnekleme Süresi

1Hz (her 1 saniyede bir okuma)

0,5 Hz (her 2 saniyede bir okuma)

Çözünürlük

8 bit

16 bit

Boyutu

15,5 mm x 12 mm x 5,5 mm

15,1 mm x 25 mm x 7,7 mm

Fiyat

Çok Düşük

Daha pahalı

Avantajları

Düşük maliyet yüksek örnekleme

İyi ölçüm aralıkları yüksek doğruluk



DHT11 ve DHT22‘in Yapısı ve Çalışma Prensibi

DHT11 veya DHT22 sensörünün içini açtığınızda, kartın ön tarafında NTC termistörü ve kapasitif nem algılama bileşeni bulunur. Kartın arka tarafında ise; verileri toplayan, işleyen ve dijital olarak iletimini gerçekleştiren küçük bir entegre bulunur. 





Nem Ölçümü

Nem ölçümü için, iki elektrot arasında, genellikle polimer veya seramikten oluşan özel bir nem emici malzeme(Moisture Holding Substrage) bulunur. Hava nemlendikçe, bu nem emici malzeme havadan su buharı emer. Suyu emerken, iyon adı verilen küçük yüklü parçacıklar salar. Bu iyonlar, malzemenin dielektrik sabitini değiştirir ve bu da elektrotlar arasındaki kapasitansı değiştirir. Ortam ne kadar nemliyse, kapasitans o kadar fazla değişir. Sensörün dahili entegresi, neme duyarlı kapasitörü şarj edip boşaltır ve şarj/deşarj süresini ölçerek kapasitansını belirler. Bu kapasitans değişimi dijital nem değerine dönüştürülür. Böylece havadaki bağıl nem hesaplanabilir. 

Nem Sensörü, çevredeki ortamın bağıl nemini (%RH) ölçer ve çıktı olarak verir. Bağıl Nem, belirli bir sıcaklıkta, havadaki su buharı miktarının, havanın tutabileceği maksimum su buharı miktarına oranıdır. Hava doygunluk noktasına ulaştığında, yani tutabileceği kadar su buharı içerdiğinde, yoğuşma meydana gelmeye başlar ve bu da yüzeylerde çiğ (nem) oluşumuna neden olur. Ek olarak sıcak hava, soğuk havaya göre daha fazla nem tutar.


Sıcaklık Ölçümü

Sıcaklık ölçümü için sensör bir NTC termistörü kullanır. NTC (Negative Temperature Coefficient); Negatif Sıcaklık Katsayısı demektir. Bu, sıcaklık arttıkça direncin azaldığı anlamına gelir. Termistör, temelde sıcaklık değiştiğinde direncini önemli ölçüde değiştiren özel bir direnç türüdür. Sıradan dirençler de sıcaklıkla birlikte dirençlerini biraz değiştirse de, bu değişimler kullanışlı olamayacak kadar küçüktür. Termistörler ise, özellikle sıcaklıkla birlikte büyük direnç değişimleri gösterecek şekilde tasarlanmıştır. 





DHT11 veya DHT22 sensörünün içerisinde entegre olduğunu söylemiştik. Bu entegre hem nem hem de sıcaklık bileşenlerinden gelen sinyalleri ölçer, kalibrasyon ayarlarını uygular. Kalibrasyon ayarları okumaların doğru olmasına yardımcı olur. Bu entegre analog elektrik sinyallerini dijital verilere dönüştürür ve son olarak mikrodenetleyicinizin anlayabileceği bir dijital sinyal üretir.


DHT11 ve DHT22’nin Veri İletim Protokolü




DHT11/DHT22 sensörü, mikrodenetleyicilerle iletişim kurmak, sıcaklık ve nem verilerini göndermek için tek hatlı, iki yönlü özel bir seri iletişim protokolü kullanır. Bu protokol standart bir protokol olmasa da, Dallas 1-Wire protokolüne benzer ve doğru çalışması için son derece hassas zamanlamaya ihtiyacı vardır. İletişim iki yönlüdür. Çünkü DHT11/DHT22 mikrodenetleyiciden komutlar alır ve ardından bu komutlara yanıt verir. DHT11/DHT22 sensörünün gönderdiği veriler 40 bittir ve önce en anlamlı bitten(MSB) başlayarak gönderir. 40 bitlik veri 5 bayta bölünür. DHT11 sensörü için 2. ve 4. baytlar her zaman Sıfır'dır. Veriler, sıcaklık ve bağıl nemin hem İntegral hem de ondalık değerlerini içerir; sağlama toplamı ile de sonlandırılır. Sensör bağıl nem ve sıcaklık bilgilerini yansıtan 40 bitlik bir yanıt sinyalini şu şekilde gönderir: 

1. Bayt: Bağıl Nem İntegral Verileri % (Tam Sayı Kısmı).

2. Bayt: Bağıl Nem Ondalık Verileri % (Kesirli Kısım) – DHT11 için Sıfır.

3. Bayt: Sıcaklık İntegrali Verileri ⁰С(Tam Sayı Kısmı).

4. Bayt: Sıcaklık Ondalık Verileri %(Kesirli Kısım) – DHT11 için Sıfır.

5. Bayt: Kontrol/Sağlama Toplamı.






Mikrodenetleyici ile DHT11/DHT22 arasındaki iletişim için kullanılan DATA kablosu, 4.7kΩ veya 10kΩ çekme direnci kullanılarak HIGH’a çekilir. Bu, iletişim olmadığında veri yolunu BOŞTA durumuna getirmek içindir. Hat üzerinde sürekli bir HIGH değeri BOŞTA durumunu belirtir. Mikrodenetleyici, veri yolu ana bilgisayarı olarak görev yapar ve bu nedenle iletişimi başlatmaktan sorumludur. DHT11/DHT22 Nem ve Sıcaklık sensörü her zaman bağımlıdır ve mikrodenetleyici istediğinde veriyle yanıt verir. İletişim için kullanılan protokol aşağıdaki gibidir: 





İletişim Süreci:

  • Normal şartlarda DHT11/DHT22’nin veri pini 4.7kΩ veya 10kΩ çekme direnci ile Vdd’ye bağlandığı için pin HIGH seviyesindedir. Buna hat BOŞTA durumu denir. Bu durumdayken sensör düşük güç tüketimi modundadır.

  • Mikrodenetleyici DHT11/DHT22’den veri alabilmek için hat BOŞTA iken, hattı ~18ms boyunca LOW yapar.

  • DHT11/DHT22, LOW sinyalini algıladığında durumunu düşük güç tüketimi modundan çalışma moduna değiştirir ve hattın HIGH olmasını bekler.

  • Bundan sonra mikrodenetleyici hattı serbest bırakmak için yaklaşık ~20 µs ile ~40µs kadar hattı tekrar HIGH yapar.

  • DHT11/DHT22,  bunu mikrodenetleyiciden bir BAŞLAT olarak algılayacak ve ~80µs boyunca hattı LOW yaparak yanıt verecektir.

  • Daha sonra DHT11/DHT22 hattı serbest bırakmak için ~80 µs boyunca hattı HIGH yapacaktır. Bu da veri göndermeye hazır olduğunu gösterir.

  • Ardından DHT11/DHT22 40 bit veri gönderecektir. Her bit, ~50 µs LOW ile başlayıp, "0" için ~26-28 µs HIGH ve "1" için ~70 µs HIGH ile devam edecektir.

  • İletişim sona erdiğinde hat HIGH konuma getirilerek BOŞTA olması sağlanır. Bundan sonra DHT11/DHT22 mikrodenetleyiciden gelecek bir sonraki komutu bekler. 



DHT11 ve DHT22’nin Pin Çıkışları

Piyasada 3 pinli ve 4 pinli DHT11 ve DHT22 sıcaklık-nem sensörleri bulunmaktadır. 4 pinli olanlarda 3. pin kullanılmaz.




VCC: Sensörün güç girişidir. Bu pine 3.3V ile 5.5V arasında herhangi bir giriş voltajı uygulanabilse de 5V kullanmak en iyisidir. 5V'luk bir güç kaynağıyla, sensörü mikrodenetleyiciden 20 metreye uzağa yerleştirebilirsiniz. Eğer 3.3V’luk güç kaynağı kullanırsanız, sensörü mikrodenetleyiciden 1 metre uzağa yerleştirebilirsiniz. Uzun kablolar voltaj düşüşlerine neden olabilir ve bu da sıcaklık ve nem ölçümlerinde hatalara sebep olabilmektedir.

GND: Toprak pinidir.

Data: Sıcaklık ve nem bilgilerinin dijital olarak gönderildiği pindir. İletişimin düzgün çalıştığından emin olmak için, bu pin ile VCC pini arasına 4.7 kΩ’luk veya 10kΩ'luk bir çekme direnci eklemeniz gerekir. Bu direnç, sinyal seviyelerinin doğru olmasını sağlar. Eğer sensör PCB karta montajlı geldiyse çekme direnci kullanmanıza gerek yoktur. Çünkü bu direnç zaten kart üzerinde montajlıdır. 

NC: Not Connected anlamına gelir. Bu pin hiçbir şeye bağlanmaz.



DHT11/DHT22 Sıcaklık ve Nem Sensörünün Arduino İle Kullanımı


DHT22 Bağlantı Şeması





DHT11 Bağlantı Şeması




Kütüphane ve Komutlar

DHT11 ve DHT22 sensörlerini kullanmak için farklı kütüphaneler yer almaktadır. Biz uygulamalarımızda “Rob Tillaart” tarafından geliştirilen “DHTlib” kütüphanesini kullanacağız. Bu kütüphaneyi #include <dht.h> yaparak programa eklemeliyiz.

Kütüphane Adresi: https://github.com/RobTillaart/DHTlib


1. dht DHT;

Sensörü temsil eden bir DHT nesnesi oluşturur.


2. int readData = DHT.read22(dataPin);

DHT22 sensörünün Arduino’ya bağlı olduğu data pininden veri okur ve “readData” değişkenine kaydeder. 


3. int readData = DHT.read11(dataPin);

DHT11 sensörünün Arduino’ya bağlı olduğu data pininden veri okur ve “readData” değişkenine kaydeder. 


4. float sicaklik = DHT.temperature;

Sensörden okunan sıcaklık değeri(⁰С) float olarak tanımlanan “sicaklik” değişkenine atanır.


5. float nem = DHT.humidity;

Sensörden okunan nem değeri(%) float olarak tanımlanan “nem” değişkenine atanır.


NOT: DHT22 sensörünün örnekleme hızı 0,5 Hz yani 2 sn, DHT11 sensörünün örnekleme hızı 1 Hz yani 1 sn’dir. Bu, DHT22’nin nem ve sıcaklık değerlerini her 2 saniyede bir güncellediği,  DHT11’in ise nem ve sıcaklık değerlerini her 1 saniyede bir güncellediği anlamına gelir. Bu nedenle bu süreler altında sensörlerden veri istemenin bir anlamı yoktur. Çünkü aynı veriyi verir. Örneğin; DHT22 her 2 sn’de bir kendini günceller, veri üretir. DHT22’den her 1 saniyede bir veri istemek anlamsızdır. Loop döngüsünde programın sonuna bu sürelere göre delay() eklemek doğru olur.





0 comments:

Yorum Gönder

Arduino Eğitimi Konu - 7

Toplam Sayfa Görüntüleme Sayısı

Sensörler ve Aygıtların Arduino İle Kullanımı

Popular Posts

Yararlanılan Kaynaklar

İletişim

gokdag17@gmail.com

Blog Archive