İlginizi Çekebilir
  1. Ana Sayfa
  2. Arduino
  3. Arduino Sıcaklık ve Nem Sensörü Kullanımı

Arduino Sıcaklık ve Nem Sensörü Kullanımı

featured

Bu yazımızda oldukça işlevsel olan sıcaklık ve nem sensörünün kullanımı inceleyecez. Lafı uzatmadan yazımıza başlayalım.

Sıcaklık ve Nem Sensörü Nedir ?

Arduino Sıcaklık ve Nem Sensörü, sıcaklık ve nem değerleri ölçmek amacıyla kalibre edilmiş olan bir sensördür. Bu sensör sıcaklık ve nem değerlerini iletir.

Nem ve Sıcaklık Sensörü
Nem ve Sıcaklık Sensörü (dht11)

Sıcaklık ve nem sensörü olarak piyasada sıkça satılan sensörler dht11 ve dht22’dir. Dht22 yapı olarak daha kaliteli ve yüksek fiyatlı sensör iken, dht11 ise daha uygun fiyatlı olup ölçüm değeri bakımından aralığı dardır. Örneğin dht11 0 ile 50 derece arasında ölçüm yaparken, dht22 ise -40 ile 80 derece arasında sıcaklıkları ölçmektedir.

DHT22 sensor
DHT22 Sıcaklık ve Nem Sensörü

Biz bu yazımızda Dht11 sıcaklık ve nem sensörünü kullanmayı tercih edecez.

Kullanacağımız sıcaklık ve nem sensörü olan dht11 toplamda 3 ayağı bulunmaktadır ve aşağıdaki şekildedir.

dht11 ayaklari
dht11 Ayakları

Şimdi ise sıcaklık ve nem sensörü anlattıktan sonra sıcaklık ve nem sensörü ile ilgili projelere başlayalım.

Proje 1

Bu projemizde sıcaklık ve nem sensörü ile serial ekranda sıcaklık ve nem değerlerini alacaz. Lafı uzatmadan malzemeleri listeleyerek başlayalım.

1 Adet Arduino Uno

1 Adet Sıcaklık ve nem sensörü (dht11)

1 Adet breadboard

Jumper kablolar

Gerekli  malzemeleri oluşturduğumuza göre şimdi ise kod satırlarını oluşturalım.

//omerfarukyildiz.com
#include <dht11.h> // Sıcaklık ve nem sensörü olan dht11 kütüphanesi ekliyoruz.
int sensor=8; // dht11 digital pinini belirliyoruz.
dht11 DHT11nesne; // DHT11_sensor adında bir DHT11 nesnesi oluşturduk.
void setup()
{
Serial.begin(9600); // Seri haberleşmeyi başlatıyoruz. 
}
void loop()
{
int chk = DHT11nesne.read(sensor); //pinden aldıgımız degeri nesneye tanımlıyoruz.
Serial.print("Sicaklik degeri: "); //Serial ekrana yazı yazdıyoruz.
Serial.print((float)DHT11nesne.temperature, 2);  //Pinden aldıgmız degeri kutuphanede tanımlı olan degere cevririp sicaklik degerini serial ekrana yazdırıyoruz.
Serial.print(" C"); //Serial ekrana yazı yazdırıyoruz. 
Serial.print("  ||  "); //Serial ekrana yazı yazdıyoruz.
Serial.print("Nem Orani: % "); //Serial ekrana yazı yazdıyoruz.
Serial.println((float)DHT11nesne.humidity, 2); //Pinden aldıgmız degeri kutuphanede tanımlı olan degere cevririp nem oranını serial ekrana yazdırıyoruz.
  delay(1000); //Bu işlemler 1 saniyede bir olsun.
}

Yukarıdaki kod satırlarında öncelikle dht11 kütüphanesini ekledik ve ardından pini tanımladık. Daha sonra serial haberleşmeyi açtıktan sonra pinden çektiğimiz verileri kütüphanedeki değişkenlerle derleyerek sıcaklık ve nem değerlerini elde ettik. Bu işlemlerinde 1 saniyede bir olacak şekilde sürekli hale getirdik.

Dikkat: Bu işlemleri yaparken dht11 kütüphanesini üst menüden Araçlar > Kütüphaneyi yönet kısmında dht11 yazıp arattığımızda önümüze çıkan dht11 sensörlünün kütüphanesini indirmemiz gerekmektedir. Yoksa oluşturduğumuz kod satırları çalışmayacaktır.

Şimdi ise devre şemasını oluşturmaya geçelim.

Proje 1 Png
Proje 1 Şeması

Yukarıda şekilde şemayı kurduğumuzda serial ekrandan sıcaklık ve nem değerleri şu şekilde gelecektir.

proje 1 ekran ciktisi
proje 1 Değerlerin Serial Monitöre Yansıması

Bu projeyi tamamladığımıza göre ikinci projemize geçelim.

Proje 2

Bu projemizde ise dht11 sıcaklık ve nem sensöründen aldığımız değerleri 2×16 boyutlarında lcd ekrana yazdıracaz. Lafı uzatmadan malzemelere gecelim.

  • 1 Adet Arduino Uno
  • 1 Adet Sıcaklık ve nem sensörü (dht11)
  • 1 Adet lcd ekran(2×16)
  • 1 Adet breadboard
  • 1 Adet lcd ekran(2×16)
  • Jumper kablolar

Yukarıda malzemeleri listelediğimize göre şimdi ise kod satırlarını oluşturmaya başlayalım.

//omerfarukyildiz.com
#include <dht11.h> // Sıcaklık ve nem sensörü olan dht11 kütüphanesi ekliyoruz.
#include <LiquidCrystal_I2C_AvrI2C.h>
int sensor=2; // dht11 digital pinini belirliyoruz.
dht11 DHT11nesne; // DHT11_sensor adında bir DHT11 nesnesi oluşturduk.
LiquidCrystal_I2C_AvrI2C lcd(0x27,16,2);  //ÖNEMLİ
void setup()
{
Serial.begin(9600); // Seri haberleşmeyi başlatıyoruz.
  lcd.begin(); //Ekranın boyutlarını kütüphane vasıtasıyla ayarlar.
  lcd.backlight(); //lcd arka ışığını açar.
}
void loop()
{
int chk = DHT11nesne.read(sensor); //pinden aldıgımız degeri nesneye tanımlıyoruz.
Serial.print("Sicaklik degeri: "); //Serial ekrana yazı yazdıyoruz.
Serial.print((float)DHT11nesne.temperature, 2);  //Pinden aldıgmız degeri kutuphanede tanımlı olan degere cevririp sicaklik degerini serial ekrana yazdırıyoruz.
Serial.print(" C"); //Serial ekrana yazı yazdırıyoruz. 
Serial.print("  ||  "); //Serial ekrana yazı yazdıyoruz.
Serial.print("Nem Orani: % "); //Serial ekrana yazı yazdıyoruz.
Serial.println((float)DHT11nesne.humidity, 2); //Pinden aldıgmız degeri kutuphanede tanımlı olan degere cevririp nem oranını serial ekrana yazdırıyoruz.
  lcd.clear(); //Ekrandaki tüm verileri siler.
    lcd.setCursor(0,0); //Yazının satır ve sutun yerini belirtiliyor.
  lcd.print("Sicaklik"); //Ekrana yazı yazdırıyoruz.
    lcd.setCursor(9,0);  //Yazının satır ve sutun yerini belirtiliyor.
  lcd.print(":"); //Ekrana yazı yazdırıyoruz.
  lcd.setCursor(10,0);  //Yazının satır ve sütun yerini belirtiliyor.
  lcd.print((float)DHT11nesne.temperature, 2); //Ekrana sıcaklık değerini yazdırıyoruz.
 lcd.setCursor(0,1); //Yazının satır ve sutun yerini belirtiliyor.
  lcd.print("Nem Orani:"); //Ekrana yazı yazdırıyoruz.
  lcd.setCursor(10,1); //Yazının satır ve sutun yerini belirtiliyor.
  lcd.print((float)DHT11nesne.humidity, 2);  //Ekrana nem değerini yazdırıyoruz.
  delay(1000); //Bu işlemler 1 saniyede bir olsun.
}

Bu projede proje 1 de kullandığımız kodları modifiyeli ederek kullandık. Proje1 den farklı olarak lcd ekran için kütüphane ekledik. Bu kütüphane sayesinde gelen fonksiyonlarla ekrana yazı yazdırdık ve bu yazı nem ve sıcaklık değerlerini dht11 alarak yaptık. Bu işlemleri ise 1 saniyede bir tekrarlayacak şekilde gerçekleştirdik.

Dikkat: Lcd ekran ve dht11 kütüphane eklediğiniz emin olunuz.

Proje 2 Semasi
Proje 2 Şeması

Projemizi yukarıda şekilde oluşturduğumuz da çalışacaktı ve serial monitörde değerler bir saniyede bir düşecektir. Eğer ekrana görüntü gelmezse bu ÖNEMLİ yazan satırdaki 0 x 27 değiştirmeniz gereklidir. Mesela bende bulunan ekranda 0 x 3f şekillindedir. Bu konu ile ilgili ayrıntılı yazı yakında gelecektir. Takipte kalın.

Diğer Arduino yazılarımıza ulaşmak için Tıklayın.

Java programlama dili derslerimiz için Tıklayın.

Bize yorum yaparak ve sosyal medya adreslerimizden takip ederek destek olabilirsiniz.

Yorum Yap

Yazar Hakkında

Ben Ömer Faruk. Konya'da Yönetim Bilişim Sistemlerinde öğrenim görmekteyim. Yazılım ve Arduino ilgi duymaktayım.

Yorum Yap

Yorumlar (1)

  1. 6 ay önce

    Ömer abi, yazını oldukça yararlı buldum. Nem ve sıcaklık konusunda babamın fındık tarlasında bir proje yapmak istiyorum o yüzden iletişim sayfasından seninle iletişime geçtim umarım görür ve bana geri dönüşte bulunursun.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir