dht11-devre-semasi

Bu projemizde dht11 sensörüne değineceğiz. Dht.11 Nedir? hakkında detaylı bilgi almak ve hata kontrol kodlarına bakmak istiyorsanız, yazımıza ilgili linki tıklayarak gidebilirsiniz.

Projemize geçecek olursak, basitçe sıcaklık ölçümü şeklinde tanımlanabilir. Dijital bir sensör olan dht11’imiz dijital olmasının verdiği bir kaç artıya sahip. Şöyle ki dijital olması bize sıcaklık bilgisini istediğimiz şekilde direkt olarak verme imkanı sağlıyor. Bu da bizim için avantaj demek. Sıcaklık değerini ister celcius, ister fahreneit, ister kelvin olarak sensörümüzden isteyebiliriz. Diğer bir artısı da ortamın nemini de bize sunması. Zaten sensörümüzü nedir? kısmında detaylıca inceledik.

Eksilerine gelecek olursak, analog sensörlerden menşei(dengi) bulunmaması bize tam karşılaştırma fırsatı sunmasa da, ne bir lm35 kadar az akım çeker. Ne de gene lm35 kadar hassas ölçüm sunabilir bize. Ne de piyasada rakip analog nem sensörlerinin hassasiyetine ulaşabilir.

Kısaca hassasiyet, tepki süresi, fiyat, güç tüketiminden kısıp bize kullanım kolaylığı sağlar. Seçim sizin tabi bize sadece olanı elimizden geldiği gibi sunmak düşüyor. Açıklama biraz uzun oldu kusuruma bakmayın. İyi eğlenceler..

Malzemeler
  • 1x Arduino
  • 1xDht11 veya Dht22
  • Çokça jumper
Arduino kısmı
// DHT11 sensör kütüphanesi
#include "DHT.h" // kütüphanemizi ekledik.
#include "DHT_U.h"

//Sensörümüzü bağladığımız pin
#define DHTPIN 2 
//DHT sensör çeşidimiz
#define DHTTYPE DHT11
//#define DHTTYPE DHT22
//Global Değişkenler
float humidity=0.00;
float temperature=0.00;

//Nesnemizi çağırdık ve constructor ı ( nesne çağırılınca çalışan fonksiyon) değer alan bir fonksiyon olduğundan değerlerini gönderdik.
DHT dht(DHTPIN, DHTTYPE);

void setup () {
dht.begin(); //dht11 sensörümüzden gelen değerleri hesaplamaya başladık
Serial.begin(9600); //seri haberleşmeyi başlattık.
}

void loop () {
  //Her ölçüm ve hesaplama için 2 saniye beliyoruz
  delay(2000);
  float humidity = dht.readHumidity();
  // Celsius cinsinden değeri aldık. Fahrenheit almak için readTemperature(true) yapabiliriz.
  float temperature = dht.readTemperature();
  
  // Okumaların başarısız olup olmadığını kontrol edip hata alırsak döngüden çıkıyoruz
  if (isnan(humidity) || isnan(temperature)) {
    Serial.println("Sensör hesaplama hatası");
    return;
  }

  Serial.print("Nem: ");
  Serial.print(humidity);
  Serial.print("%\nSıcaklık: ");
  Serial.print(temperature);
}

Aşağıdaki linkten programda kullanılan kütüphaneyi indirebilirsiniz.

Bu sensörle alakalı kodları ve malzemeleri paylaştıktan sonra ileriki projemizle alakalı kısa bir dipnot geçelim. Akıllı Termostat Devresi yeni Bir Adım Ötesi projemiz. İnternette bulurken zorlanacağınız ve akıllı ev sistemleri ile ilgilenler için güzel bi proje oldu. Herkese iyi çalışmalar…

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz