Sensör okuma ve ekranda veri gösterimi, elektroniğe yeni başlayanlar için en öğretici projelerden biridir. Bu yazıda Sıcaklık-Nem İzleme Ekran Kiti ile kendi mini hava istasyonunu nasıl kurabileceğini anlatıyoruz.
DHT11 Sensör Nasıl Çalışır?
DHT11, hem sıcaklığı hem de nem oranını dijital olarak ölçen bir sensördür. Tek bir veri hattı üzerinden Arduino'ya periyodik olarak ölçüm değerlerini gönderir. Arduino bu verileri işleyip 16x2 LCD ekranda anlık olarak gösterir.
Bağlantı Şeması
DHT11 DATA→D7; LCD (I2C) SDA→A4, SCL→A5. Her iki modül de Arduino 5V'tan beslenir, GND'ler ortak. Ekran boş görünüyorsa LCD'nin arka yüzündeki kontrast potunu çevirin.

Kurulum Adımları
- DHT11 sensörünü Arduino'nun dijital pinine bağla
- 16x2 I2C LCD ekranı Arduino'nun SDA/SCL pinlerine bağla
- DHT ve LiquidCrystal_I2C kütüphanelerini yükle
- Sensörden okunan değerleri LCD'de gösterecek kodu yükle
- Ekranda canlı sıcaklık ve nem değerlerini izle!
Neden Bu Proje?
Bu proje; sensör okuma, I2C haberleşme ve ekran kontrolü gibi üç temel kavramı tek bir uygulamada birleştirir. STEM etkinlikleri ve TÜBİTAK başlangıç projeleri için de çok uygun bir seçimdir.
Arduino Kodu
Kodu yüklemeden önce Arduino IDE'de Kütüphane Yöneticisi'nden "DHT sensor library" (Adafruit) ve "LiquidCrystal I2C" kütüphanelerini kur. LCD adresin farklıysa (genelde 0x27 veya 0x3F) bir I2C tarama kodu ile bulabilirsin.
// Sıcaklık-Nem İzleme Ekran Kiti - DHT11 + LCD I2C
// Atölye Elektronik
#include <DHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define DHT_PIN 7
#define DHT_TYPE DHT11
DHT dht(DHT_PIN, DHT_TYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2); // Adresin farklıysa I2C tarama koduyla bul
void setup() {
Serial.begin(9600);
dht.begin();
lcd.init();
lcd.backlight();
}
void loop() {
delay(2000); // DHT11 iki okuma arasında en az 1-2 saniye ister
float sicaklik = dht.readTemperature();
float nem = dht.readHumidity();
if (isnan(sicaklik) || isnan(nem)) {
Serial.println("Sensor okunamadi!");
lcd.setCursor(0, 0); lcd.print("Sensor hatasi! ");
lcd.setCursor(0, 1); lcd.print("Kablo D7 kontrol");
return;
}
char sayi[8], satir[17];
// Sabit genişlikte yaz: değer kısalınca eski rakam ekranda kalmasın
dtostrf(sicaklik, 5, 1, sayi);
snprintf(satir, sizeof(satir), "Sicaklik:%s%cC ", sayi, (char)223); // 223 = derece işareti
lcd.setCursor(0, 0); lcd.print(satir);
dtostrf(nem, 3, 0, sayi);
snprintf(satir, sizeof(satir), "Nem: %s %% ", sayi);
lcd.setCursor(0, 1); lcd.print(satir);
Serial.print("Sicaklik: "); Serial.print(sicaklik);
Serial.print(" C Nem: "); Serial.print(nem); Serial.println(" %");
}
Sorun Giderme
-
Ekranda "Sensor hatasi" yazıyor: DHT11'in DATA ucunun D7'ye, VCC'nin 5V'a bağlı olduğunu kontrol edin. Kodda
DHT_TYPE DHT11satırı değişmemiş olmalı. - LCD yanıyor ama yazı yok: Arkadaki mavi potansiyometreyi çevirerek kontrastı ayarlayın; olmazsa koddaki 0x27 adresini 0x3F yapın.
- Değerler geç değişiyor: Normaldir; DHT11 yavaş bir sensördür ve kod 2 saniyede bir okur.
Kitin içinde DHT11 sensör, LCD ekran, Arduino Uno ve jumper kablo dahil. Detaylar ve satın alma için Sıcaklık-Nem İzleme Ekran Kiti sayfasını ziyaret edebilirsin.