Tüm Türkiye'ye Kargo 149,90₺

Proje #002 DHT11 Sıcaklık ve Nem Kontrolü

Tarih: 15.05.2026 16:02
Proje #002 DHT11 Sıcaklık ve Nem Kontrolü
Bu projede DHT11 sensörü kullanarak ortamın sıcaklığını ve nem oranını ölçeceğiz. Ölçülen değerler Serial Monitor (seri ekran) üzerinde görüntülenecek.
?️  Proje #002  —  Proje İçerikleri
DHT11 Sensör ile
Sıcaklık & Nem Ölçer
Seviye
★★☆☆☆  Kolay
Yaş grubu
8 – 10 yaş
Süre
45 – 60 dakika
Ön koşul
Proje #001 (LED)
 

Proje Tanımı

Bu projede DHT11 sensörü kullanarak ortamın sıcaklığını ve nem oranını ölçeceğiz. Ölçülen değerler Serial Monitor (seri ekran) üzerinde görüntülenecek. Basit ama güçlü bir proje — çünkü DHT11, hava istasyonundan tarım sistemine kadar gerçek hayatta kullanılan bir sensördür.
?  Bu projede öğrenilecekler
Sensör nedir, nasıl çalışır  •  DHT11'in yapısı  •  Kütüphane kurulumu  •  Serial Monitor kullanımı  •  Değişken ve veri tipi (float, int)  •  Gerçek dünya verisi okuma
 

Gerekli Malzemeler

AdetMalzemeDeğer / ModelSette var mı?
1Arduino Uno R3✅ Evet
1DHT11 Sıcaklık & Nem Sensörü3 veya 4 pinli modül✅ Evet
1BreadboardTam boy✅ Evet
3Jumper kabloErkek-erkek✅ Evet
1USB kabloTipo-B✅ Evet
DHT sensor kütüphanesiAdafruit DHT (ücretsiz)✅ IDE'den kurulur

Not: DHT11 modülü 3 pinli (VCC, DATA, GND) veya 4 pinli (VCC, DATA, NC, GND) olabilir. İkisi de aynı şekilde bağlanır, 3. pin (NC) kullanılmaz.
 

DHT11 Nedir?

DHT11, tek bir entegre içinde hem sıcaklık hem nem ölçen dijital bir sensördür. İçinde iki ayrı ölçüm elemanı vardır:
  • Termistör: Sıcaklık değişimlerine göre direnç değiştiren eleman. 0°C – 50°C aralığında ±2°C hassasiyetle ölçer.
  • Kapasitif nem sensörü: Havadaki su buharına göre kapasitans değiştiren eleman. %20 – %80 RH aralığında ±5% hassasiyetle ölçer.

Veriler dijital olarak iletilir — yani Arduino bu sensörden 0/1 sinyalleri alır, analog okuma gerekmez. Bu da bağlantı ve kod yazımını basitleştirir.
?  Gerçek hayatta DHT11 nerede kullanılır?
Akıllı ev sistemleri  •  Hava istasyonları  •  Seracılık ve tarım otomasyonu  •  HVAC (ısıtma-soğutma) sistemleri  •  Müze ve arşiv nem kontrolü
 
 

Bağlantı Şeması

DHT11 modülü sadece 3 kablo ile Arduino'ya bağlanır. Bu projenin en kolay tarafı budur.
DHT11 PiniArduino PiniAçıklama
VCC  (+)5VSensörü besleyen güç pini
DATA (S)Pin 2Sensör verisinin iletildiği dijital pin
GND  (−)GNDOrtak toprak
 
DEVRE DİYAGRAMI
    DHT11 Modülü          Arduino Uno
   ┌───────────┐
   │ VCC  (+) │──────────────── 5V
   │ DATA (S) │──────────────── Pin 2
   │ GND  (−) │──────────────── GND
   └───────────┘
 

Montaj adımları

1DHT11'i breadboard'a yerleştir
Sensörü breadboard'un ortasına koy. Her pin ayrı bir sıraya denk gelsin.
2VCC bağlantısı
DHT11'in VCC (+) pinini Arduino'nun 5V pinine bağla. Kırmızı kablo tercih et.
3DATA bağlantısı
DHT11'in DATA (S) pinini Arduino'nun dijital Pin 2'sine bağla. Sarı veya yeşil kablo.
4GND bağlantısı
DHT11'in GND (−) pinini Arduino'nun GND pinine bağla. Siyah kablo tercih et.
5USB bağla
Arduino'yu bilgisayara USB ile bağla. Bağlantı tamamlandı — kütüphane kurulumuna geç.
 
 

Kütüphane Kurulumu

DHT11 sensörü okumak için Adafruit'in DHT kütüphanesi gereklidir. Bu, Arduino IDE'nin kütüphane yöneticisinden ücretsiz kurulur.
1Arduino IDE'yi aç
Menüden Araçlar → Kütüphane Yöneticisi'ne tıkla (veya Ctrl+Shift+I).
2DHT'yi ara
Arama kutusuna "DHT" yaz. "DHT sensor library by Adafruit" çıkacak.
3Kütüphaneyi kur
"Kur" (Install) butonuna tıkla. Birkaç saniye içinde kurulum tamamlanır.
4Adafruit Unified Sensor
Sistem "Adafruit Unified Sensor" kütüphanesini de kurmak isteyecek — "Tümünü Kur" (Install All) de.
 
?  Kütüphane nedir?
Kütüphane, başkalarının yazdığı hazır kod paketidir. DHT11 sensörü okumak için onlarca satır karmaşık kod yerine, kütüphane bunu tek bir komuta indirger. Mühendisler tekerleği yeniden icat etmez — kütüphane kullanır.
 
 

Kodlama — mBlock (Blok Kodlama)

mBlock ile DHT11 okumak için ek bir eklenti gerekebilir. Ancak mBlock'un son sürümlerinde DHT11 blokları "Arduino Uno" cihazı altında hazır gelir.
mBLOCK — Blok Kodlama Yapısı
┌──────────────────────────────────────────────┐
│  Başlat (Bayrak tıklandığında)               │
└──────────────────┬───────────────────────────┘
┌──────────────────────────────────────────────┐
│  Sonsuza Kadar Tekrarla                      │
│  ┌────────────────────────────────────────┐  │
│  │  Seri porta yaz:                       │  │
│  │    "Sıcaklık: " + DHT11 sıcaklık (Pin2)│  │  ← DHT bloğu
│  │  Seri porta yaz:                       │  │
│  │    "Nem: " + DHT11 nem (Pin2)          │  │  ← DHT bloğu
│  │  2000 milisaniye bekle                │  │  ← Her 2 saniyede bir ölç
│  └────────────────────────────────────────┘  │
└──────────────────────────────────────────────┘

Kodu yükledikten sonra Araçlar → Seri Port Monitörü'nü aç (baud rate: 9600). Sıcaklık ve nem değerleri her 2 saniyede bir ekranda görünecek.
 

Kodlama — Arduino IDE (Metin Kodlama)

Aşağıdaki kod, DHT11'den sıcaklık ve nem verisi okuyup Serial Monitor'de gösterir. Her 2 saniyede bir ölçüm alır.
ARDUINO IDE — C++ Kodu
// ═══════════════════════════════════════════════
// ALPGEN Robotics — Proje #002
// DHT11 ile Sıcaklık & Nem Ölçer
// alpgenrobotics.com
// ═══════════════════════════════════════════════
#include <DHT.h>          // DHT kütüphanesini dahil et

// Pin ve sensör tipi tanımla
#define DHT_PIN  2        // DATA pini → Arduino Pin 2
#define DHT_TIP  DHT11    // Sensör tipi: DHT11
DHT dht(DHT_PIN, DHT_TIP); // DHT nesnesini oluştur
// ───────────────────────────────────────────────
void setup() {
  Serial.begin(9600);      // Seri haberleşmeyi başlat
  dht.begin();             // DHT sensörünü başlat
  Serial.println("DHT11 Sıcaklık & Nem Ölçer");
  Serial.println("ALPGEN Robotics — alpgenrobotics.com");
  Serial.println("─────────────────────────────────");
}
// ───────────────────────────────────────────────
void loop() {
  delay(2000);             // DHT11 en az 2sn'de bir ölçer
  // Sensörden veri oku
  float nem        = dht.readHumidity();
  float sicaklik_C = dht.readTemperature();     // Celsius
  float sicaklik_F = dht.readTemperature(true); // Fahrenheit
  // Okuma başarılı mı? Kontrol et
  if (isnan(nem) || isnan(sicaklik_C)) {
    Serial.println("HATA: Sensör okunamadı!");
    return;
  }
  // Isı indeksi hesapla (gerçek hissedilen sıcaklık)
  float hissedilen = dht.computeHeatIndex(sicaklik_C, nem, false);
  // Serial Monitor'e yaz
  Serial.print("? Sıcaklık : ");
  Serial.print(sicaklik_C);
  Serial.print(" °C  |  ");
  Serial.print(sicaklik_F);
  Serial.println(" °F");
  Serial.print("? Nem      : ");
  Serial.print(nem);
  Serial.println(" %");
  Serial.print("? Hissedilen: ");
  Serial.print(hissedilen);
  Serial.println(" °C");
  Serial.println("─────────────────────────────────");
}
// ───────────────────────────────────────────────
 

Kodun satır satır açıklaması

KodNe yapar?
#include <DHT.h>DHT kütüphanesini projeye dahil eder. Kütüphane olmadan sensör okunamaz.
DHT dht(DHT_PIN, DHT_TIP);"dht" adında bir sensör nesnesi oluşturur. Hangi pine bağlı, hangi model olduğunu tanımlar.
Serial.begin(9600);Bilgisayar ile Arduino arasındaki iletişimi 9600 baud hızında başlatır.
float nem = dht.readHumidity();Nem değeri
Yükleniyor...