Proje ne yapıyor?
Odanın sıcaklığını ve nem oranını ölçüp 16×2 LCD ekranda gösteren küçük bir hava istasyonu yapıyoruz. DHT11 sensörü her iki saniyede bir ölçüm yapar; değerler ekranda ve bilgisayardaki Seri Port Ekranı’nda görünür.
- Yaş grubu: 11 yaş ve üzeri
- Seviye: Başlangıç / orta
- Süre: Yaklaşık 45 dakika
- Bu projede öğrenecekleriniz: Kütüphane kurmak, dijital sensör okumak, I2C LCD ekrana yazı yazmak
Malzeme listesi
| Malzeme | Adet |
|---|---|
| Arduino Uno (veya muadili) | 1 |
| DHT11 sıcaklık ve nem sensörü (3 pinli modül) | 1 |
| 16×2 LCD ekran (I2C modüllü) | 1 |
| Breadboard | 1 |
| Erkek-erkek ve erkek-dişi jumper kablo | ~10 |
| USB kablo | 1 |
Devre bağlantıları

| Bileşen | Bileşen pini | Arduino pini |
|---|---|---|
| DHT11 | VCC (+) | 5V |
| DHT11 | DATA (OUT) | D2 |
| DHT11 | GND (–) | GND |
| I2C LCD | VCC | 5V |
| I2C LCD | GND | GND |
| I2C LCD | SDA | A4 |
| I2C LCD | SCL | A5 |
Gerekli kütüphaneler
Arduino IDE’de Araçlar → Kütüphaneleri Yönet menüsünü açıp şu iki kütüphaneyi aratın ve kurun:
- DHT sensor library (Adafruit) – kurarken “Adafruit Unified Sensor” kütüphanesini de kurmayı kabul edin.
- LiquidCrystal I2C (Frank de Brabander)
Kodlar
// Arduino Sıcaklık ve Nem Ölçer - ozandamci.com
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2); // ekran çalışmazsa 0x3F deneyin
void setup() {
Serial.begin(9600);
dht.begin();
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Olcum basliyor");
delay(2000);
}
void loop() {
float nem = dht.readHumidity();
float sicaklik = dht.readTemperature();
lcd.clear();
if (isnan(nem) || isnan(sicaklik)) {
lcd.setCursor(0, 0);
lcd.print("Sensor hatasi!");
Serial.println("DHT11 okunamadi");
} else {
lcd.setCursor(0, 0);
lcd.print("Sicaklik: ");
lcd.print(sicaklik, 1);
lcd.print((char)223); // derece işareti
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Nem: %");
lcd.print(nem, 0);
Serial.print("Sicaklik: ");
Serial.print(sicaklik);
Serial.print(" C Nem: %");
Serial.println(nem);
}
delay(2000); // DHT11 en fazla 2 saniyede bir ölçüm yapabilir
}
Adım adım yapılışı
- Kütüphaneleri kurun. Yukarıdaki iki kütüphaneyi Arduino IDE’ye yükleyin.
- DHT11’i bağlayın. Modülün + pinini 5V’a, – pinini GND’ye, OUT/DATA pinini D2’ye bağlayın.
- LCD’yi bağlayın. Ekranın arkasındaki I2C modülünün VCC’sini 5V’a, GND’sini GND’ye, SDA’sını A4’e, SCL’sini A5’e bağlayın. 5V ve GND’yi breadboard’un güç hatları üzerinden paylaştırabilirsiniz.
- Kodu yükleyin. Kartınızı ve portu seçip Yükle‘ye basın.
- Kontrastı ayarlayın. Ekran yanıyor ama yazı görünmüyorsa I2C modülünün üzerindeki mavi potansiyometreyi küçük bir tornavidayla çevirin.
- Test edin. Sensöre hafifçe nefes verin; nem değerinin yükseldiğini görmelisiniz.
Sorun giderme
- Ekranda sadece kareler var veya hiçbir şey yok: Kodda
0x27yerine0x3Fyazıp tekrar deneyin. Yine olmazsa SDA ve SCL kablolarını kontrol edin. - “Sensor hatasi!” yazıyor: DHT11’in DATA pininin D2’ye bağlı olduğundan emin olun. 4 pinli çıplak sensör kullanıyorsanız DATA ile 5V arasına 10 kΩ direnç gerekir.
- Türkçe karakterler bozuk çıkıyor: LCD ekranlar Türkçe karakterleri desteklemez; ı, ş, ğ yerine i, s, g kullanın.
Kendiniz deneyin
- Sıcaklık 28 °C’yi geçince yanan bir kırmızı LED ve uyarı sesi ekleyin.
- Ekranda en yüksek ve en düşük sıcaklığı da gösterin.
Daha fazla proje için: Bu ve benzeri projeleri adım adım anlattığım Arduino Projeleri kitabıma göz atabilirsiniz.
