Menu
Sepet

DHT11 Sıcaklık ve Nem Sensörü Kullanımı

PCB rehberleri · Sensör ve modüller

DHT11 Sıcaklık ve Nem Sensörü Kullanımı

Okuma süresi: yaklaşık 2 dkElektromall teknik ekibi

Kısa cevap DHT11 sensörü nasıl kullanılır?

DHT11'in VCC pini 3,3 – 5 V'a, GND pini toprağa, DATA pini 10 kΩ pull-up direnciyle bir dijital pine bağlanır. Arduino'da DHT kütüphanesi kurulur ve readTemperature() ile sıcaklık, readHumidity() ile nem okunur. Sensör en fazla saniyede bir okunmalıdır; ölçüm aralığı 0 – 50 °C ve %20 – 90 nemdir.

DHT11, tek bir veri hattı üzerinden hem sıcaklık hem nem bilgisi veren, ucuz ve kolay kullanılan bir sensördür; ev otomasyonu, sera ve öğrenci projelerinde çok yaygındır. Bu rehberde DHT11'in özelliklerini ve sınırlarını, Arduino ve ESP32 ile bağlantısını, örnek kodu, sık yapılan hataları ve DHT21 (AM2301), AHT10 ve DS18B20 gibi alternatiflerle karşılaştırmasını anlatıyoruz.

DHT11'in özellikleri

ÖzellikDHT11DHT21 (AM2301)
Sıcaklık aralığı / doğruluk0 – 50 °C, ±2 °C−40 – 80 °C, ±0,5 °C
Nem aralığı / doğruluk%20 – 90 RH, ±%5%0 – 100 RH, ±%3
Çözünürlük1 °C, %10,1 °C, %0,1
Okuma aralığıEn az 1 saniyeEn az 2 saniye
Besleme3,3 – 5,5 V3,3 – 5,5 V

DHT11 oda koşullarını izlemek için yeterlidir; hassas ölçüm, eksi sıcaklıklar veya dış ortam için DHT21/22 ya da I²C'li AHT10/SHT serisi tercih edilmelidir. Yalnızca sıcaklık gerekiyorsa su geçirmez kılıflı DS18B20 daha doğrudur.

Bağlantı

Çıplak DHT11'in 4 bacağı vardır: VCC, DATA, boş, GND. Modül versiyonlarında 3 pin bulunur ve DATA hattındaki 10 kΩ pull-up direnci kartın üzerinde hazırdır. Çıplak sensör kullanıyorsanız DATA ile VCC arasına 4,7 – 10 kΩ direnç ekleyin. Kablo 1 – 2 metreyi geçiyorsa pull-up değerini düşürmek (4,7 kΩ) ve sensörün yanına 100 nF kondansatör koymak iletişimi güvenilir kılar.

// Kütüphane: "DHT sensor library" (Adafruit) — Kütüphane Yöneticisi'nden kurun
#include <DHT.h>

#define DHTPIN 2        // DATA pini
#define DHTTYPE DHT11   // DHT21 için: DHT21
DHT dht(DHTPIN, DHTTYPE);

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

void loop() {
  delay(2000);                        // DHT11 en fazla saniyede bir okunur
  float nem = dht.readHumidity();
  float sic = dht.readTemperature();  // °C
  if (isnan(nem) || isnan(sic)) {
    Serial.println("Okuma hatası: bağlantıyı kontrol edin");
    return;
  }
  Serial.print("Sıcaklık: "); Serial.print(sic); Serial.print(" °C  Nem: %");
  Serial.println(nem);
}

ESP32'de aynı kod çalışır; DATA için herhangi bir GPIO seçilebilir ve sensör 3,3 V ile beslenebilir.

Doğru ölçüm için ipuçları

  • Sensörü regülatör, mikrodenetleyici veya LED gibi ısınan parçalardan uzak tutun; kart üzerindeki ısı sıcaklığı birkaç derece yüksek gösterir.
  • Kutunun içinde kullanıyorsanız hava delikleri açın; nem sensörü havayla temas etmelidir.
  • Doğrudan güneş ışığı ve yoğuşma (su damlası) ölçümü bozar ve sensöre zarar verir.
  • Sensörü birkaç dakikada bir okumak çoğu uygulama için yeterlidir; sık okuma sensörü hafifçe ısıtır.

Bu yazıda kullanılan ürünler

Sıkça sorulan sorular

DHT11 sürekli "nan" veya okuma hatası veriyor, neden?

En sık nedenler: pull-up direncinin olmaması, yanlış pin tanımı, DHT11/DHT22 türünün kodda yanlış seçilmesi ve sensörün saniyede birden sık okunmasıdır. Uzun kablolarda pull-up değerini düşürün.

DHT11 ile DHT22 arasındaki fark nedir?

DHT22 (AM2302) ve benzeri DHT21, daha geniş ölçüm aralığı ve 0,1'lik çözünürlükle daha doğru ölçer. Aynı kütüphaneyle, yalnızca tür tanımını değiştirerek kullanılabilir.

Birden fazla DHT11'i tek pine bağlayabilir miyim?

Hayır; her DHT sensörü ayrı bir veri pini ister. Tek hatta çok sensör gerekiyorsa adreslenebilir DS18B20 veya I²C sensörler kullanın.

Direnç, kondansatör ve diğer komponentler için ürünlerimize göz atın.

Sensör Modülleri