Sıcaklık ve nem ölçümü projelerin vazgeçilmezidir. Daha önce sensörün kendisine değinmiştik. Şimdi ise piyasada en çok satılan, kullanımı en kolay hali olan DHT11 PCB Modülü'nü inceleyeceğiz. Bu modül, ekstra direnç arama derdini ortadan kaldırır.

1. Neden Modül Almalıyım?

Çıplak (4 bacaklı) DHT11 sensörü kullanırken, sinyal bacağı ile 5V arasına mutlaka bir direnç (Pull-up) koymanız gerekir. Modül versiyonunda ise bu direnç kartın üzerine lehimlenmiştir.

DHT11 10kΩ Dahili Direnç Power LED S + -
Avantaj: 3 bacaklı modülü doğrudan jumper kablo ile Arduino'ya takabilirsiniz. Breadboard'a bile gerek kalmaz.

2. Bağlantı Şeması

Özellikler
  • 🌡️ Sıcaklık: 0°C ile 50°C arası
  • 💧 Nem: %20 ile %90 arası
  • ⏱️ Örnekleme: 1 saniyede 1 veri
  • 🔌 Protokol: Single-Wire (Tek Hat)
Pin Bağlantısı
  • S (Sinyal) ➔ Dijital Pin 2
  • + (VCC) ➔ 5V
  • - (GND) ➔ GND

3. Yazılım: Hissedilen Sıcaklık Hesabı

Standart sıcaklık ölçümü bazen yanıltıcı olabilir. Nem yüksekse hava daha sıcak, düşükse daha serin hissedilir. DHT kütüphanesi bunu bizim için hesaplayabilir!

DHT11_Advanced.ino C++
#include "DHT.h"

#define DHTPIN 2     
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  Serial.println("DHT11 Gelismis Test");
  dht.begin();
}

void loop() {
  delay(2000); // Sensör yavaştır, bekle

  float nem = dht.readHumidity();
  float sicaklik = dht.readTemperature();

  if (isnan(nem) || isnan(sicaklik)) {
    Serial.println("Okuma Hatasi!");
    return;
  }

  // Hissedilen Sıcaklık (Heat Index) Hesabı
  // false parametresi Celcius için gereklidir
  float hissedilen = dht.computeHeatIndex(sicaklik, nem, false);

  Serial.print("Nem: %");
  Serial.print(nem);
  Serial.print(" | Sicaklik: ");
  Serial.print(sicaklik);
  Serial.print("°C | Hissedilen: ");
  Serial.print(hissedilen);
  Serial.println("°C");
}
        

4. Bunu Biliyor muydunuz?

DHT11'in veri gönderme süresi yaklaşık 250 milisaniyedir. Ancak iki okuma arasında en az 2 saniye beklemek, verinin kararlı olması için şarttır. Daha sık okursanız eski veriyi alırsınız.

DHT11 dijital sinyal kullandığı için kablosunu 20 metreye kadar uzatabilirsiniz. Ancak kablo uzadıkça voltaj düşümü olacağı için 5K'lık bir pull-up direnci eklemek gerekebilir. (Analog sensörlerde bu mesafe çok daha kısadır).