Arduino ve DHT11 sensörü ile sıcaklık ve nem ölçümü yaparak, temel sensör kullanımını öğrenebilirsiniz. DHT11, uygun maliyeti ve kolay kullanımı nedeniyle popüler bir sıcaklık ve nem sensörüdür. Bu yazıda, gerekli malzemeler, devre bağlantıları, örnek kodlar ve açıklamalarla DHT11 sensörünü kullanmayı öğreneceksiniz.
Gerekli Malzemeler
- 1 x Arduino Uno (veya uyumlu bir model)
- 1 x DHT11 Sensörü
- 1 x 10kΩ direnç (opsiyonel, kararlılık için önerilir)
- Breadboard
- Bağlantı kabloları
Devre Bağlantıları

DHT11 Sensörü Pinleri
- VCC: Arduino'nun 5V pinine bağlayın.
- GND: Arduino'nun GND pinine bağlayın.
- DATA(SDA): Arduino'nun D2 dijital pinine bağlayın.
Opsiyonel 10kΩ Direnç
- DATA pinini, VCC pinine bağlayarak stabilite sağlayabilirsiniz.
Arduino Kodu
DHT11 sensörüyle sıcaklık ve nem ölçümü yapacak örnek bir kod:
#include // DHT kütüphanesini ekleyin
#define DHTPIN 2 // DHT11 sensörünün bağlı olduğu pin
#define DHTTYPE DHT11 // Kullanılan sensör tipi DHT11 veya DHT22
DHT dht(DHTPIN, DHTTYPE); // DHT sensörünü başlatıyoruz
void setup() {
Serial.begin(9600); // Seri monitörü başlat
dht.begin(); // DHT sensörünü başlat
Serial.println("DHT11 ile Sıcaklık ve Nem Ölçümü");
}
void loop() {
float nem = dht.readHumidity(); // Nem değerini oku
float sicaklik = dht.readTemperature(); // Sıcaklık değerini oku
// Sensörün çalışıp çalışmadığını kontrol et
if (isnan(nem) || isnan(sicaklik)) {
Serial.println("Veri okuma hatası!");
return;
}
// Ölçümleri seri monitöre yazdır
Serial.print("Nem: ");
Serial.print(nem);
Serial.print(" %\t");
Serial.print("Sıcaklık: ");
Serial.print(sicaklik);
Serial.println(" °C");
delay(2000); // Ölçümler arasında 2 saniye bekle
}
Kod Açıklamaları
DHT Kütüphanesi
DHT.h
kütüphanesi, DHT11 sensörünü kolayca kullanmanızı sağlar. Bu kütüphaneyi Arduino IDE'deki "Library Manager"dan ekleyebilirsiniz.
Sensör Tanımlamaları
DHTPIN
ve DHTTYPE
, sensörün bağlı olduğu pini ve türünü belirler.
Veri Okuma
dht.readHumidity()
ve dht.readTemperature()
fonksiyonları ile nem ve sıcaklık değerleri okunur.
Hata Kontrolü
isnan()
fonksiyonu, veri okunamaması durumunda hata mesajı verir.
Seri Monitör Çıktısı: Ölçüm sonuçları seri monitörde gösterilir.
Projenin çalışan örneğini görmek için tıklayınız.
Kullanım Alanları
- Hava Durumu İstasyonları: DHT11 sensörü ile sıcaklık ve nem ölçerek hava durumunu izleyebilirsiniz.
- Ev Otomasyonu: Oda sıcaklığına göre klima veya fan kontrolü gibi sistemlerde kullanılabilir.
- Tarım ve Sera Yönetimi: Bitki yetiştirme ortamlarında sıcaklık ve nem izleme.
Ekstra Özellikler
- LCD ile Gösterim: Sıcaklık ve nem verilerini bir LCD ekrana yazdırabilirsiniz.
- Alarm Sistemi: Belirli bir sıcaklık veya nem seviyesinin üzerine çıkıldığında LED veya buzzer ile uyarı verebilirsiniz.
Bu yazı, DHT11 sensörünün kullanımını anlamanızı ve projelerinizde uygulamanızı sağlayacaktır. Eğer ek özellikler eklemek veya projeyi genişletmek isterseniz, IoT platformlarıyla entegre ederek verilerinizi bulut tabanlı sistemlerde saklayabilirsiniz.
Sıkça Sorulan Sorular
DHT11, sıcaklık ve nem ölçümü için kullanılan uygun maliyetli bir sensördür. %20-%90 nem aralığında ve 0-50°C sıcaklık aralığında ölçüm yapabilir.
DHT11'in VCC pini Arduino'nun 5V'una, GND pini Arduino'nun GND'sine, DATA pini ise dijital bir pine (örn. D2) bağlanır.
DHT11, ±2°C sıcaklık hassasiyetine ve ±5% nem hassasiyetine sahiptir.
DHT kütüphanesini kullanarak dht.readHumidity()
ile nem, dht.readTemperature()
ile sıcaklık değerleri okunabilir.
LCD ekranı Arduino'ya bağlayarak ve sensör verilerini lcd.print()
ile yazdırarak sıcaklık ve nem verileri gösterilebilir.
DHT11'in doğru sonuç vermemesi bağlantı hatası, düşük voltaj veya sensörün ölçüm sınırlarının dışında çalışmasından kaynaklanabilir.
Belirli bir sıcaklık veya nem seviyesinin üzerine çıkıldığında bir LED veya buzzer aktive edilerek alarm sistemi oluşturulabilir.
Evet, DHT11 sensörü IoT platformlarına bağlanarak sıcaklık ve nem verileri bulut tabanlı sistemlere gönderilebilir.
DHT22, DHT11'e göre daha geniş bir ölçüm aralığına ve daha yüksek hassasiyete sahiptir ancak maliyeti biraz daha yüksektir.
Veri okumama sorunu yanlış bağlantı, hatalı kütüphane kullanımı veya sensörün arızalı olmasından kaynaklanabilir. Bağlantılar ve kütüphane doğru şekilde kontrol edilmelidir.
Mert Sabri ZAL
Hocam siz dht11 ile projeyi yapmıyorsunuz ki örnekte