Arduino ile Özel Karakterli DHT11 Sıcaklık-Nem Ölçer (I2C LCD)

Koza Akademi
Koza Akademi
4 dk okuma
126 izlenme
Arduino ile Özel Karakterli DHT11 Sıcaklık-Nem Ölçer (I2C LCD)

Arduino ile Özel Karakterli DHT11 Sıcaklık-Nem Ölçer (I2C LCD)

Bu uygulamada Arduino kullanarak DHT11 sensöründen nem ve sıcaklık verisi okuyan ve sonuçları I2C 16x2 LCD ekranda özel karakter (° derece simgesi) ile gösteren bir sistem geliştiriyoruz.

Bu proje; akıllı sera, ortam izleme ve IoT tabanlı veri toplama projelerinin temelini oluşturur.


📦 Kullanılan Donanımlar

  • Arduino Uno / Nano

  • DHT11 Sıcaklık-Nem Sensörü

  • 16x2 I2C LCD

  • Jumper kablo


🔌 Bağlantılar

DHT11

Pin Arduino
VCC 5V
GND GND
DATA D7

I2C LCD

LCD Arduino Uno
SDA A4
SCL A5
VCC 5V
GND GND

💻 Proje Kodu

#include <DHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

DHT sensor(7, DHT11);
LiquidCrystal_I2C lcd(0x27, 16, 2);

byte ozel[8] = {
B01110, B01010, B01110, B00100, B00100, B00000, B00000, B00000
};

void setup() {
  Wire.begin();
  lcd.init();
  lcd.backlight();
  lcd.createChar(0, ozel); 
  sensor.begin();
}

void loop() {
  float nem = sensor.readHumidity();
  float sicaklik = sensor.readTemperature();

  lcd.setCursor(0, 0);
  lcd.print("Nem:");
  lcd.setCursor(5, 0);
  lcd.print("%");
  lcd.setCursor(6, 0);
  lcd.print(nem);

  lcd.setCursor(0, 1);
  lcd.print("Sic:");
  lcd.setCursor(5, 1);
  lcd.print(sicaklik);
  lcd.setCursor(10, 1);
  lcd.write((byte)0);
  lcd.setCursor(11, 1);
  lcd.print("C");

  delay(2000);
}

📚 Kodun Detaylı Açıklaması


1️⃣ Kütüphaneler

Projede üç kütüphane kullanılır:

  • DHT.h → Sensör verisini okumak için

  • Wire.h → I2C haberleşme için

  • LiquidCrystal_I2C.h → LCD kontrolü için


2️⃣ Sensör ve LCD Tanımlama

DHT sensor(7, DHT11);
  • Sensör DATA pini → D7

  • Sensör modeli → DHT11

LiquidCrystal_I2C lcd(0x27, 16, 2);
  • I2C adres → 0x27

  • LCD boyutu → 16 sütun, 2 satır


3️⃣ Özel Karakter Tanımlama

byte ozel[8] = {
B01110,
B01010,
B01110,
B00100,
B00100,
B00000,
B00000,
B00000
};

LCD’ler maksimum 8 adet özel karakter saklayabilir.

Her satır:

  • 5x8 dot matrix piksel yapısını temsil eder.

Bu desen → derece (°) simgesi oluşturur.


4️⃣ setup() Fonksiyonu

Wire.begin();

I2C iletişimi başlatılır.

lcd.init();

LCD başlatılır.

lcd.backlight();

Arka ışık açılır.

lcd.createChar(0, ozel);
  • 0 numaralı hafıza slotuna özel karakter yüklenir.

  • Artık (byte)0 ile çağrılabilir.

sensor.begin();

Sensör çalışmaya hazır hale getirilir.


🔁 loop() Çalışma Mantığı


🌫️ Nem Okuma

float nem = sensor.readHumidity();

Nem değeri % olarak okunur.


🌡️ Sıcaklık Okuma

float sicaklik = sensor.readTemperature();

Sıcaklık °C cinsinden okunur.


🖥️ LCD’ye Yazdırma


1️⃣ Nem Satırı

lcd.setCursor(0, 0);
lcd.print("Nem:");
  1. satıra başlık yazılır.

lcd.setCursor(5, 0);
lcd.print("%");

Nem birimi eklenir.

lcd.setCursor(6, 0);
lcd.print(nem);

Nem değeri yazdırılır.

LCD Görünüm

Nem:%45.3

2️⃣ Sıcaklık Satırı

lcd.setCursor(0, 1);
lcd.print("Sic:");
  1. satıra sıcaklık başlığı.

lcd.setCursor(5, 1);
lcd.print(sicaklik);

Sıcaklık değeri yazdırılır.


🌡️ Derece Sembolü Yazdırma

lcd.setCursor(10, 1);
lcd.write((byte)0);
  • 0 numaralı özel karakter çağrılır.

  • Bu → derece simgesi.

lcd.setCursor(11, 1);
lcd.print("C");

Santigrat birimi eklenir.


LCD Nihai Görünüm

Nem:%45.3
Sic:24.7°C

⏱️ Ölçüm Gecikmesi

delay(2000);
  • 2 saniyede bir ölçüm yapılır.

  • DHT11 için güvenli okuma aralığıdır.


🧠 Teknik Notlar


🔹 Özel Karakter Sınırı

  • LCD → max 8 karakter saklar.

  • Slotlar: 0–7


🔹 Derece İşareti Alternatif

Bazı LCD’lerde hazır vardır:

lcd.print((char)223);

yada kodda kullandığımız gibi özel karaktet tanımlanabilir.

Bunun için Lcd Custom Char sayfasını kullanabilirsiniz.


🚀 Geliştirme Fikirleri

Projeyi büyütmek için:

  • Min / Max sıcaklık kaydı

  • Fan röle kontrolü

  • SD karta veri kaydı

  • ESP32 ile web panel

  • Grafiksel bar gösterimi


🧾 Sonuç

Bu projede:

  • DHT11 ile ortam verisi okundu

  • I2C LCD’de gösterildi

  • Özel karakter ile derece simgesi üretildi

  • LCD koordinat yönetimi uygulandı

Bu yapı; gerçek zamanlı izleme sistemlerinin temelini oluşturur ve ileri seviye otomasyon projelerine kolayca entegre edilebilir.

 

Hızlı Paylaş

Yorumlar

0

Henüz kimse bir şey yazmamış.
İlk yorumu siz yapmak ister misiniz?

Fikrinizi Paylaşın

Düşünceleriniz bizim için değerli. E-posta adresiniz yayınlanmayacaktır.

Koza Akademi
Yazar

Koza Akademi

Teknoloji, yazılım ve tasarım dünyasından en güncel gelişmeleri paylaşıyorum.

Bültene Katılın