İSTANBUL İÇİ SAAT 16:00'A KADAR VERECEĞİNİZ 2500₺ ve ÜZERİ SİPARİŞLERİNİZ AYNI GÜN KAPINIZDA 🏍️
500 TL üzeri ücretsiz kargo
İSTANBUL İÇİ SAAT 16:00'A KADAR VERECEĞİNİZ 2500₺ ve ÜZERİ SİPARİŞLERİNİZ AYNI GÜN KAPINIZDA 🏍️
500 TL üzeri ücretsiz kargo
DHT11 Sıcaklık ve Nem Sensörü ile Arduino Dijital Termometre Projesi

DHT11 Sıcaklık ve Nem Sensörü ile Arduino Dijital Termometre Projesi

DHT11 Sıcaklık ve Nem Sensörü ile Arduino Dijital Termometre Projesi


DHT11 Nedir?


DHT11 sensörü, küçük çaplı uygulamalar için geliştirilmiş bir sıcaklık ve nem sensörüdür. 0°C ile 50°C arasında sıcaklık ve %20–90 arası bağıl nem ölçümü yapabilir. Sıcaklık hassasiyeti ±2°C, nem hassasiyeti ise ±5%’tir. Bu nedenle akıllı ev sistemleri ve hava durumu istasyonlarında sıklıkla tercih edilir.


Proje: Arduino ile Dijital Termometre


Bu projede DHT11 sıcaklık ve nem sensörü kullanarak ortam değerlerini ölçüp I2C arayüzlü LCD ekrana yazdıracağız. Böylece sıcaklık ve nem değerlerini anlık olarak görebileceğiz.


Gerekli Malzemeler


I2C Adres Kontrolü


LCD ekranı kullanmadan önce I2C adresini tespit etmemiz gerekir. Bunun için aşağıdaki kod çalıştırılır ve Seri Monitör’den adres okunur.


#include <Wire.h>

void setup() {
  Wire.begin();
  Serial.begin(9600);
  Serial.println("I2C adresleri taraniyor...");
}

void loop() {
  for (byte address = 1; address < 127; address++) {
    Wire.beginTransmission(address);
    if (Wire.endTransmission() == 0) {
      Serial.print("Aygit bulundu! Adres: 0x");
      Serial.println(address, HEX);
    }
  }
  Serial.println("Tarama tamamlandi.");
  delay(5000); 
}

Proje Devre Dizilim Görseli


Arduino Kodları


#include <Wire.h> //I2C haberleşme için gerekli kütüphane
#include <LiquidCrystal_I2C.h> //LCD ekran ve I2C modülü için gerekli kütüphane
#include <DHT.h> // Sıcaklık ve nem sensörü için gerekli kütüphane

LiquidCrystal_I2C lcd(0x27, 16 , 2); //(I2C adresi, kolon sayısı, satır sayısı)

#define DHTPIN 2 //Sensörün veri pini 2 numaralı dijital pinde
#define DHTTYPE DHT11 //Kullanılan sensör tipi DHT11
DHT dht(DHTPIN, DHTTYPE); //Sıcaklık ve nem verilerini okumak için dht nesnesi tanımlanıyor

void setup() {
lcd.init(); //LCD başlatılıyor
lcd.backlight(); //LCD arka ışıkları açılıyor
dht.begin(); //DHT11 başlatılıyor

lcd.setCursor(0, 0); //LCD imleci 1. satırın 1. kolonuna getiriliyor
lcd.print("Dijital");
lcd.setCursor(0, 1); //LCD imleci 2. satırın 1. kolonuna getiriliyor
lcd.print("Termometre");
delay(2000);
lcd.clear(); //LCD'de yazan her şeyi sil
}

void loop() {

float temp = dht.readTemperature(); // Sıcaklık değeri okunarak temp değişkenine ondalıklı olarak atanır 
float hum = dht.readHumidity(); // Nem değeri okunarak hum değişkenine ondalıklı olarak atanır

lcd.setCursor(0, 0); //LCD imleci 1. satırın 1. kolonuna getiriliyor
lcd.print("SICAKLIK: ");
lcd.print(temp,1); //temp değişkeni virgülden sonra bir basamak olacak şekilde ekrana yazdırılıyor
lcd.print((char)223); //LCD karakter setinde "°" işareti için gerekli karakter kodu gönderilerek işaret yazdırılıyor 
lcd.print("C");

lcd.setCursor(0,1); //LCD imleci 2. satırın 1. kolonuna getiriliyor
lcd.print("NEM ORANI: ");
lcd.print(hum,1); // hum değişkeni virgülden sonra bir basamak olacak şekilde ekrana yazdırılıyor
lcd.print("%");

delay(2000); //2000 milisaniyede bir ekrandaki değer güncellenecek
}

İpuçları


  • Ekrandaki yazılar görünmüyorsa, LCD üzerindeki mavi ayar vidasından kontrast ayarı yapın.
  • I2C adresi farklı çıkabilir, mutlaka kontrol edin.
  • DHT11 düşük maliyetli ama hassasiyeti sınırlıdır. Daha doğru ölçüm için DHT22 kullanılabilir.

İlgili Ürünler


Daha fazla sensör için Elektronik kategorisine, Arduino kartları için Arduino sayfamıza göz atabilirsiniz.


Hazırlayan: Kirpilab | Maker topluluğu için elektronik projeler