Bu rehberde, projelerinizde ortamın sıcaklık ve nemini ölçmek için en çok kullanılan sensörlerden biri olan DHT11 sensörünü inceleyeceğiz. Sensörden aldığımız anlık nem ve sıcaklık değerlerini, bilgisayara ihtiyaç duymadan doğrudan 16x2 I2C LCD ekranımız üzerinde dinamik olarak görüntüleyeceğiz.
Hem ekranın hem de sensörün besleme (VCC ve GND) pinlerini Arduino'ya ortak bağlayabilirsiniz. Bağlantılarınızı yaparken aşağıdaki pin tablosunu referans alabilirsiniz:
| Bileşen ve Pini | Arduino Uno Pini |
|---|---|
| DHT11 VCC ve LCD VCC | 5V (Breadboard yardımıyla ortak) |
| DHT11 GND ve LCD GND | GND (Breadboard yardımıyla ortak) |
| DHT11 Data (Sinyal) | Pin 2 |
| LCD SDA | A4 |
| LCD SCL | A5 |
Not: Eğer 4 pinli çıplak bir DHT11 sensörü kullanıyorsanız, VCC ile Data pini arasına 10k Ohm değerinde bir direnç (pull-up) bağlamanız gerekebilir. Eğer 3 pinli hazır modül halindeki DHT11 kullanıyorsanız, bu direnç modül üzerinde zaten mevcuttur ve doğrudan bağlayabilirsiniz.

Bu projenin çalışması için bilgisayarınızda iki adet kütüphanenin kurulu olması gerekir:
Aşağıdaki kodu doğrudan kopyalayıp Arduino editörünüze yapıştırabilirsiniz. Pin tanımlamaları istekleriniz doğrultusunda (DHT=2, I2C=A4/A5) entegre edilmiştir.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
// DHT Sensör Ayarları
#define DHTPIN 2 // DHT11 veri pini Arduino Pin 2'ye bağlı
#define DHTTYPE DHT11 // Sensör tipimizi DHT11 olarak seçiyoruz
DHT dht(DHTPIN, DHTTYPE);
// I2C LCD Ekran Ayarları (Adres: 0x27, 16 Sütun, 2 Satır)
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
// LCD ekranı ve DHT sensörünü başlatıyoruz
lcd.init();
lcd.backlight();
dht.begin();
// Ekrana hoş geldiniz yazısı (isteğe bağlı)
lcd.setCursor(0, 0);
lcd.print("Sistem Aciliyor.");
delay(1500);
lcd.clear();
}
void loop() {
// Sensörden nem ve sıcaklık değerlerini okuyoruz
float nem = dht.readHumidity();
float sicaklik = dht.readTemperature();
// Okuma hatası olup olmadığını kontrol ediyoruz
if (isnan(nem) || isnan(sicaklik)) {
lcd.setCursor(0, 0);
lcd.print("Sensor Hatasi! ");
return;
}
// 1. Satıra Sıcaklık Değerini Yazdırma
lcd.setCursor(0, 0);
lcd.print("Sicaklik: ");
lcd.print((int)sicaklik); // Tam sayı olarak göstermek için (int) kullandık
lcd.print(" C ");
// 2. Satıra Nem Değerini Yazdırma
lcd.setCursor(0, 1);
lcd.print("Nem: %");
lcd.print((int)nem);
lcd.print(" "); // Eski karakter kalıntılarını temizlemek için boşluk bıraktık
delay(2000); // DHT11 sensörü her 2 saniyede bir yeni veri üretebilir
}
Eğer ekranda sürekli "Sensor Hatasi!" yazısını görüyorsanız, DHT11 sensörünün veri (data) kablosunun tam olarak 2 numaralı pine temas ettiğinden emin olun. Ayrıca DHT11 sensörleri çok hızlı veri okumayı sevmez; bu nedenle delay(2000); komutundaki süreyi daha da düşürmemeye dikkat edin.
Henüz yorum yapılmamış. İlk yorumu siz yapın!