Arduino ile DHT11 Sıcaklık ve Nem Alarmı Nasıl Yapılır?
Bu projede Arduino Uno, DHT11 sıcaklık ve nem sensörü ve buzzer kullanarak ortam sıcaklığı ve nem değerlerini takip eden basit bir alarm sistemi yapacağız. Belirlenen sıcaklık veya nem sınırı aşıldığında buzzer sesli uyarı verecek, değerler ise Arduino IDE üzerindeki Seri Monitör ekranında görüntülenecektir.
DHT11 sensörü, başlangıç seviyesi Arduino projelerinde sıcaklık ve nem ölçümü yapmak için en çok kullanılan sensörlerden biridir. Bu proje sayesinde hem sensör okuma mantığını hem de eşik değerine göre alarm oluşturmayı öğrenebilirsiniz.
Projenin Amacı
Bu projenin amacı, ortam sıcaklığı ve nem oranını DHT11 sensörü ile ölçmek ve belirlenen limitler aşıldığında buzzer üzerinden sesli uyarı vermektir. Örneğin sıcaklık 30°C üzerine çıktığında veya nem oranı %70 seviyesine ulaştığında buzzer çalışır.
Kullanılan Malzemeler
| Malzeme | Açıklama / Ürün Linki |
|---|---|
| Arduino Uno | Arduino Uno R3 Klon + USB Kablo |
| DHT11 Sıcaklık ve Nem Sensörü | DHT11 Sıcaklık ve Nem Sensörü |
| Buzzer | Buzzer |
| Breadboard | Büyük Breadboard 830 Pin |
| Jumper Kablo | 40 Adet Erkek-Dişi Jumper Kablo 20cm |
DHT11 Sensörü Nedir?
DHT11, ortam sıcaklığı ve bağıl nem değerini ölçebilen dijital çıkışlı bir sensördür. Arduino ile tek bir dijital pin üzerinden haberleşir. Bu nedenle bağlantısı oldukça kolaydır.
DHT11 yüksek hassasiyet gerektirmeyen eğitim, hobi ve başlangıç seviyesi çevresel ölçüm projeleri için uygundur. Hava durumu istasyonu, sera takip sistemi, oda sıcaklık izleme ve alarm projelerinde sıkça kullanılır.
Proje Uygulama Videosu
Devre bağlantısı, kod yükleme ve Seri Monitör üzerinden sıcaklık-nem değerlerini takip etme adımlarını aşağıdaki video alanına ekleyebilirsiniz.
Devre Bağlantıları
Bu projede DHT11 sensörünün veri pini Arduino’nun D2 pinine, buzzer ise D8 pinine bağlanır.
| Bileşen | Arduino Bağlantısı |
|---|---|
| DHT11 VCC | 5V |
| DHT11 DATA | D2 |
| DHT11 GND | GND |
| Buzzer + | D8 |
| Buzzer - | GND |
Gerekli Arduino Kütüphanesi
Bu projede DHT11 sensöründen veri okuyabilmek için DHT sensor library kütüphanesi kullanılır. Arduino IDE üzerinden aşağıdaki adımlarla yükleyebilirsiniz:
- Arduino IDE’yi açın.
- Araçlar / Tools menüsünden Kütüphane Yöneticisi / Library Manager bölümüne girin.
- Arama kısmına DHT sensor library yazın.
- Adafruit tarafından yayınlanan DHT kütüphanesini yükleyin.
- Gerekirse Adafruit Unified Sensor kütüphanesini de yükleyin.
Arduino DHT11 Sıcaklık ve Nem Alarmı Kodu
Aşağıdaki kod, DHT11 sensöründen sıcaklık ve nem değerlerini okur. Sıcaklık 30°C veya nem %70 değerine ulaştığında buzzer sesli uyarı verir.
/*
Proje: DHT11 Sıcaklık ve Nem Alarmı
Platform: Arduino Uno
Hazırlayan: Robomer
Web: https://robomer.com
Bağlantılar:
DHT11 VCC -> 5V
DHT11 DATA -> D2
DHT11 GND -> GND
Buzzer + -> D8
Buzzer - -> GND
*/
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11
const int buzzerPin = 8;
const float temperatureLimit = 30.0;
const float humidityLimit = 70.0;
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
pinMode(buzzerPin, OUTPUT);
dht.begin();
}
void loop() {
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
if (isnan(humidity) || isnan(temperature)) {
Serial.println("DHT11 verisi okunamadi");
delay(2000);
return;
}
Serial.print("Sicaklik: ");
Serial.print(temperature);
Serial.print(" C | Nem: ");
Serial.print(humidity);
Serial.println(" %");
if (temperature >= temperatureLimit || humidity >= humidityLimit) {
tone(buzzerPin, 1000);
}
else {
noTone(buzzerPin);
}
delay(2000);
}
tone() fonksiyonu ile belirli frekansta ses üretilebilir.
Aktif buzzer kullanıyorsanız tone() yerine digitalWrite() kullanmanız daha doğru olur.
Aktif Buzzer Kullanılırsa Kod Nasıl Değişir?
Aktif buzzer kendi içinde ses üreten osilatör devresine sahiptir. Bu nedenle Arduino’dan yalnızca HIGH veya LOW sinyali verilmesi yeterlidir. Eğer pasif buzzer yerine aktif buzzer kullanacaksanız alarm kısmını aşağıdaki gibi değiştirebilirsiniz:
if (temperature >= temperatureLimit || humidity >= humidityLimit) {
digitalWrite(buzzerPin, HIGH);
}
else {
digitalWrite(buzzerPin, LOW);
}
Kod Nasıl Çalışır?
Kodda önce DHT kütüphanesi projeye eklenir. DHT11 sensörünün veri pini D2 olarak, buzzer pini ise D8 olarak tanımlanır. Daha sonra sıcaklık ve nem sınırları belirlenir. Bu projede sıcaklık sınırı 30°C, nem sınırı ise %70 olarak ayarlanmıştır.
Arduino her 2 saniyede bir DHT11 sensöründen sıcaklık ve nem değerlerini okur. Okunan değerlerden biri belirlenen sınırı aşarsa buzzer çalışır. Değerler normal seviyedeyse buzzer kapatılır.
Seri Monitör Çıktısı Nasıl Görünür?
Sicaklik: 26.00 C | Nem: 54.00 %
Sicaklik: 27.00 C | Nem: 56.00 %
Sicaklik: 31.00 C | Nem: 58.00 %
Sicaklik: 29.00 C | Nem: 72.00 %
Bu örnekte sıcaklık 31°C olduğunda veya nem %72 olduğunda buzzer alarmı devreye girer.
Alarm Limitleri Nasıl Değiştirilir?
Alarm sınırlarını değiştirmek için kodun başındaki aşağıdaki değerleri düzenleyebilirsiniz:
const float temperatureLimit = 30.0;
const float humidityLimit = 70.0;
Örneğin sıcaklık alarmının 28°C’de çalışmasını istiyorsanız 30.0 değerini 28.0 yapabilirsiniz.
Nem alarmının %80’de çalışmasını istiyorsanız 70.0 değerini 80.0 olarak değiştirebilirsiniz.
Sık Karşılaşılan Hatalar
- DHT11 verisi okunamadı: DATA pininin D2’ye bağlı olduğundan ve kodda
#define DHTPIN 2yazdığından emin olun. - Kütüphane hatası alınıyor: Arduino IDE Library Manager üzerinden DHT sensor library ve Adafruit Unified Sensor kütüphanelerini yükleyin.
- Buzzer sürekli ötüyor: Ortam sıcaklığı veya nem değeri belirlenen sınırların üzerinde olabilir. Seri Monitör’den değerleri kontrol edin.
- Buzzer hiç ötmüyor: Buzzer bağlantı yönünü, D8 pinini ve alarm limitlerini kontrol edin.
- Değerler kararsız: DHT11 sensörünü çok sık okumayın. Bu örnekte 2 saniyelik bekleme süresi kullanılmıştır.
Bu Proje Nerelerde Kullanılabilir?
- Oda sıcaklık ve nem takibi
- Sera ortamı izleme
- Depo veya kutu içi nem alarmı
- Basit hava durumu istasyonu
- Fan veya röle kontrollü iklimlendirme projeleri
- Arduino eğitim ve atölye uygulamaları
DHT11 Sıcaklık ve Nem Alarmı Kaynak Kodları
Proje kodlarını, bağlantı notlarını ve geliştirme fikirlerini GitHub deposu üzerinden paylaşabilirsiniz.
Robomer’de Bulabileceğiniz İlgili Ürünler
DHT11 Sıcaklık ve Nem Sensörü
Ortam sıcaklığı ve nem değerini Arduino ile okumak için kullanılan başlangıç seviyesi sensör modülüdür.
Ürünü İncele
Arduino UNO R3 Klon + USB Kablo
DHT11 sensöründen gelen verileri okuyup buzzer alarmını kontrol etmek için kullanılan geliştirme kartıdır.
Ürünü İncele
Buzzer
Sıcaklık veya nem değeri belirlenen sınırı aştığında sesli uyarı vermek için kullanılır.
Ürünü İnceleSonuç
Arduino ile DHT11 sıcaklık ve nem alarmı projesi, sensör okuma ve eşik değerine göre alarm oluşturma mantığını öğrenmek için oldukça iyi bir başlangıç projesidir. Bu proje ile DHT11 sensöründen sıcaklık ve nem verisi alabilir, bu verileri Seri Monitör’de izleyebilir ve belirli sınırlar aşıldığında buzzer ile sesli uyarı oluşturabilirsiniz.
Projeyi daha ileri seviyeye taşımak için LCD ekran ekleyebilir, röle modülü ile fan kontrolü yapabilir veya ESP8266/ESP32 kullanarak sıcaklık ve nem değerlerini Wi-Fi üzerinden takip edebilirsiniz.
Arduino Sensör Projelerinizi Robomer ile Geliştirin
Arduino kartları, DHT11 sıcaklık ve nem sensörü, buzzer, breadboard, jumper kablo ve proje setlerini Robomer üzerinden inceleyebilirsiniz.
Robomer Sensörler Kategorisini İncele