5.00 / 1 oy

Arduino'da DHT11 Sıcaklık Sensörü Kullanma Kodları

DHT11 sıcaklık ve nem ölçmekte kullandığımız bir sensör, ben de DHT11 kullanımları ile ilgili gün içinde birkaç yazı halinde uygulamalar paylaşmayı düşünüyorum. Peki Arduino ve DHT11'i birlikte kullanarak neler yapabiliriz derseniz örneğin evimizdeki sıcaklığı ve nem derecesini ölçmenin ötesinde birden çok odada istasyonlar kurarak sıcaklık farklarını inceleyebilir, bluetooth ile evde telefon ile sıcaklık ve nem düzeylerini takip edebilir, daha da güzeli evde değilken de wi-fi modülü ile evdeki odalardaki sıcaklıkları telefonumuzdan kontrol edebiliriz. Sırayla başlayalım ve bu uygulamanın konusu sadece DHT11 ile sıcaklık değerini ölçmek olsun.

Sıcaklık ölçme aletine bildiğimiz gibi termometre adı veriliyor, biz de DHT11 modülünün sıcaklık sensörü özelliğini kullanarak Arduino ile bir termometre hazırlayacağız, henüz Arduino'ya ekran bağlamak gibi uygulamalar yapmadığımız için şimdilik sıcaklık değerlerini bilgisayarımızdaki terminal üzerinden görüntüleyeceğiz.

1. DHT11 modülünü kullanabilmek için Arduino'ya kütüphane yüklememiz gerekiyor. Bu işlem için Sketch > Include Library > Manage Libraries menüsünü açıyoruz

arduino manage libraries

2. Adafruit tarafından geliştirilen DHT sensor library kütüphanesini yüklüyoruz, ben bu yazıyı yazdığım tarihte güncel sürüm 1.3.9 olduğu için bu sürümü yüklüyorum.

dht sensor library arduino

3. Install ekranında dependency olan kütüphaneler ile ilgili bir uyarı alırsanız Install All seçeneğini seçerek gerekli ek kütüphaneleri de kurmuş olursunuz.

4. Kütüphane, kemdi içerisinde hazır örnek kodlarla yüklendiği için bu örnek kodlardan faydalanabiliriz. File > Examples > DHT Sensor Library > DHTtester örnek kodlarını açıyoruz.

dht sensor tester code

5. Çift slash (//) ile başlayan satırlar programlama dillerinde yorum olarak ifade edilirler ve iki amaçla kullanılırlar: bilgilendirme yapmak ve kodu pasit hale getirmek için. Benim kullandığım sıcaklık sensörü DHT11 olduğu için kodları DHT11'i aktive edecek şekilde güncelliyorum. Data pin'i olarak 2. pini kullanacağım için 2 olan DHTPIN değerini değiştirmedim. Nem değerlerini bu örnekte görmek istemediğim için de sadece sıcaklık (celsius olarak) değerlerini korudum.

#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  dht.begin();
}

void loop() {
  delay(5000);
  
  float t = dht.readTemperature();
  
  if (isnan(t)) {
    Serial.println(F("Sensor okuma hatası"));
    return;
  }

  Serial.print(F("Sıcaklık: "));
  Serial.print(t);
  Serial.println(F("°C "));

}

6. Gelelim bağlantılara. DHT11'in üç adet pini var. Bu pinlerden + ucu 5V beslemeye, - ucu GND toprak pinine, out pini de data hattına gidecek. Birer dişi-dişi jumper kablo ile erkek olan çıkışları dişiye dönüştürdükten sonra breadboard kullanmadan doğrudan Arduino Uno'ya bağlıyorum.

arduino dht11

7. Artık kodlarımızı upload ederek sıcaklık derecelerimizi ölçebiliriz. Serial monitor'ü açıyoruz ve sıcaklık sensörünü bulunduğu yerden bilgisayarın fan çıkışına doğru yaklaştırıyoruz ve sıcaklığın artıp artmadığını kontrol ediyoruz, her 5 saniyede bir sıcaklığın nasıl arttığını aşağıdaki sıcaklık değerlerinnden de görebilirsiniz.

arduino sıcaklık değerleri

8. Şimdi kodlarımızı aşağıdaki gibi güncelledikten sonra bir de Serial Plotter aracı ile sıcaklıkm grafiğini kontrol edelim.

#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  dht.begin();
}

void loop() {
  delay(1000);

  float t = dht.readTemperature();

  if (isnan(t)) {
    Serial.println(F("Sensor okuma hatası"));
    return;
  }

  Serial.println(t);
}

arduino sıcaklık grafiği

mr. faruk

26.05.2020 13:36

Bu soru 1 kez yanıtlandı.

  • 14 Eylül 2021 11:04
    6

    sensöre bağlı olarak her türlü otomasyonunu kendin kurabilmek büyük beceri, endüstriyel ürünlerde olduğu gibi kapalı kutu ürünlerin sunduklarına ikna olmak yerine hayalinde olan şeyi kendin yapıyorsun. çok iştah açıcı bir hobi ama ne zaman ne de motivasyon asla tam anlamıyla bu işlere başlayabilmek için yetmiyor

Bu soruya sadece kayıtlı kullanıcılar yanıt yazabilirler. Yanıt yazmak için lütfen giriş yapınız.

Reitix
Arduino'da DHT11 Sıcaklık Sensörü Kullanma Kodları

İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.