Bu projede, DHT11 sıcaklık ve nem sensörü kullanarak çevremizdeki hava durumunu ölçüp I2C destekli 16×2 LCD ekran üzerinde göstereceğiz. Bu sayede, sıcaklık ve nem değerlerini gerçek zamanlı olarak takip edebileceksiniz.
DHT11 sensörü, düşük maliyetli ve kolay kullanımıyla bilinir. ±2°C sıcaklık hassasiyeti ve ±5% nem hassasiyetiyle temel ölçüm ihtiyaçları için idealdir. I2C LCD ekran ise daha az pin kullanarak veri gösterimi sağlamasıyla projelerde kablolama karmaşasını azaltır.
Proje İçin Gerekli Malzemeler:
- 1x Arduino (Uno, Nano, vb.)
- 1x Breadboard
- 1x DHT11 Sıcaklık ve Nem Sensörü
- 1x I2C 16×2 LCD Ekran
- Jumper Kablolar
Bağlantı Şeması:

- DHT11 Sıcaklık ve Nem Sensörü:
- VCC → Arduino 5V pinine
- GND → Arduino GND pinine
- DATA → Arduino D2 pinine
- I2C 16×2 LCD Ekran:
- VCC → Arduino 5V pinine
- GND → Arduino GND pinine
- SDA → Arduino A4 pinine
- SCL → Arduino A5 pinine
Kod:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | //-----------------------------------------------// //-------------------KODKAMPUSU------------------// //---Arduino | DHT11 ile Sıcaklık ve Nem Ölçme---// //-----------------------------------------------// #include <dht11.h> // DHT11 sensör verilerini okuyabilmek için gerekli kütüphane #include <Wire.h> //Arduino ile I2C LCD Ekranın haberleşmesi için Wire kütüphanesini tanımlıyoruz #include <LiquidCrystal_I2C.h> //I2C LCD Ekranımızın kütüphane tanımlamasını yapıyoruz int sicakliksensoru = 2; // DHT11 sensörünü Arduino'nun D2 pinine bağlıyoruz. dht11 DHT11_sensor; // Sensörü kullanmak için nesne oluşturuyoruz. LiquidCrystal_I2C lcd(0x27, 16, 2); // LCD ekranın I2C adresini ve boyutunu tanımlıyoruz (adres: 0x27). void setup() { lcd.init(); // LCD ekranı başlatıyoruz. lcd.backlight(); // LCD ekranın arka ışığını açıyoruz. } void loop() { int chk = DHT11_sensor.read(sicakliksensoru); // Sensörden sıcaklık ve nem verilerini okuyoruz. lcd.setCursor(0, 0); // LCD ekranın ilk satırına geçiyoruz. lcd.print("Sicaklik = "); lcd.print((double)DHT11_sensor.temperature, 2); // Sıcaklık değerini ekrana yazdırıyoruz. lcd.setCursor(0, 1); // LCD ekranın ikinci satırına geçiyoruz. lcd.print("Nem Orani = "); lcd.print((double)DHT11_sensor.humidity, 2); // Nem değerini ekrana yazdırıyoruz. delay(1000); // 1 saniye bekleme süresi ile verileri güncelliyoruz. } |
Açıklamalar ve Dikkat Edilmesi Gereken Noktalar:
- Kütüphaneler: DHT11 ve LiquidCrystal_I2C kütüphanelerini yüklediğinizden emin olun.
- I2C Adresi: LCD ekranın adresi 0x27 olarak tanımlı. Farklı LCD ekranlarda adres değişebilir.
- DHT11 Sensör Doğruluğu: DHT11 sensörü ±2°C sıcaklık ve ±5% nem doğruluğuna sahiptir, hassas projelerde bu değerler göz önünde bulundurulmalı.
Bağlantı ve kodlama sırasında karşılaştığınız hataları; aşağıda ki yorum bölümünden belirtebilirsiniz 🙂