DHT11 sıcaklık ve nem sensörü kullanımı


DHT11 sıcaklık ve nem sensörü ortamdaki sıcaklık ve nem değerlerini ölçerek dijital pin üzerinden arduinoya aktarabilen, kullanımı ve arduino bağlantısı oldukça basit olan bir sensördür.
DHT11 düşük fiyatıyla bir çok arduino projesi için tercih edeilen bir sensördür. Sadece sensör olarak satıldığı gibi bir modüle entegre edilmiş olarak da satılmaktadır.
DHT11 sıcaklık ve nem sensörü 0-50°C  arasında ve ± 2 ° C hassasiyetle sıcaklık, % 5 doğrulukla % 20-80 arasında nem değeri ölçebilmektedir.

Kodu çalıştırmadan önce Arduino IDE’de aşağıdaki kütüphaneleri yüklemelisin:

DHT11 Sensör Bağlantıları:

  • VCC5V (Arduino)
  • GNDGND (Arduino)
  • DATAD2 (Arduino)
  • 10KΩ dirençVCC ve DATA arasına

I2C LCD Bağlantıları:

  • VCC5V (Arduino)
  • GNDGND (Arduino)
  • SDAA4 (Arduino Uno için)
  • SCLA5 (Arduino Uno için)

💡 Not: Eğer Arduino Mega kullanıyorsan, SDA → 20, SCL → 21 pinlerine bağlamalısın.

  1. DHT Sensor Library (Adafruit)
  2. Adafruit Unified Sensor Library
  3. LiquidCrystal I2C Library (F. Malpartida veya NewLiquidCrystal önerilir)

Kütüphaneleri yüklemek için:
Araçlar > Kütüphane Yöneticisi → Arama kısmına yukarıdaki kütüphaneleri yazıp yükle.

 

#include &lt;Wire.h&gt;<br />#include &lt;LiquidCrystal_I2C.h&gt;<br />#include &lt;DHT.h&gt;

// DHT11 Tanımlamaları
#define DHTPIN 2      // DHT11'in bağlandığı dijital pin
#define DHTTYPE DHT11 // Kullanılan sensör tipi DHT11
DHT dht(DHTPIN, DHTTYPE);

// LCD I2C Adresi (Bazı modüllerde 0x3F olabilir, sorun olursa değiştir)
LiquidCrystal_I2C lcd(0x27, 16, 2);  

void setup() {
  Serial.begin(9600);
  Serial.println("DHT11 + I2C LCD Başlatılıyor...");
  
  dht.begin();
  lcd.init();  
  lcd.backlight(); // LCD arka ışığını aç
  lcd.setCursor(0, 0);
  lcd.print("Sicaklik &amp;amp;amp;amp;amp; Nem");
  delay(2000);
}

void loop() {
  delay(2000); // Okuma aralığı
  
  float temperature = dht.readTemperature(); // Santigrat derece
  float humidity = dht.readHumidity(); // Nem yüzdesi

  // Okuma hatası kontrolü
  if (isnan(temperature) || isnan(humidity)) {
    Serial.println("DHT11 Sensör Hatası!");
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Sensör Hatasi!");
    return;
  }

  // Seri Monitöre Yazdır
  Serial.print("Nem: ");
  Serial.print(humidity);
  Serial.print(" %\t");
  Serial.print("Sicaklik: ");
  Serial.print(temperature);
  Serial.println(" °C");

  // LCD'ye Yazdır
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Nem: ");
  lcd.print(humidity);
  lcd.print(" %");

  lcd.setCursor(0, 1);
  lcd.print("Sicaklik: ");
  lcd.print(temperature);
  lcd.print(" C");
}

Çalışma Mantığı DHT11’den sıcaklık ve nem okunur. Veriler Seri Monitör üzerinden görüntülenir. Değerler I2C protokolüyle çalışan 16×2 LCD ekranda gösterilir. 2 saniyede bir değerler yenilenir. 💡 Önemli Notlar: LCD ekranda yazılar kayboluyorsa veya yanlış çıkıyorsa, lcd.clear(); satırını kaldırmayı deneyebilirsin. I2C adresi bazen 0x27 yerine 0x3F olabilir.

Buna da gözat

Arduino buton ile led yakmak

Arduino button ile led yakma uygulamasına geçmeden önce buton nedir kısaca ona bakalım. Buton iki veya bazen …