SimpleDHT Arduino Kütüphanesi Kurulumu ve Kullanımı - Turkish Tutorial

in #utopian-io7 years ago (edited)

Giriş / Introduction

This is a Turkish tutorial of an open source Arduino library, which lets you use DHT22 humidity and temperature sensor with Arduino microcontrollers, allowing to create a home weather station. I will show you how to install the library to Arduino IDE and make an example project with the library, throughout this tutorial while giving information humidity and temperature sensors and their working principle.

Merhaba, bu yazıda Arduino mikrokontrolörünüze, evler için “hava durumu istasyonu” yapmanıza olanak sağlayan DHT22 nem ve sıcaklık sensörünün kullanılabilmesini sağlayan, açık kaynak bir kütüphaneden bahsedeceğim. Yazı boyunca nem ve sıcaklık sensörlerinin ne olduğunu, nasıl çalıştığını, kullanım alanlarını, DHT22 kütüphanesinin kurulumunu ve ev tipi bir hava durumu istasyonu yapacağımız örnek bir proje kodlarını görebilirsiniz.

Neler Öğreneceğim?

Bu rehberde öğrenecekleriniz:
• Nem ve sıcaklık sensörleri hakkında genel bilgi (Nedir, nasıl çalışır).
• DHT22 (SimpleDHT) Arduino kütüphanesini Arduino IDE’sine yükleme.
• DHT22 (SimpleDHT) kütüphanesini, kütüphane fonksiyonları ile beraber kullanabilme.
• Nem ölçer projesini gerçekleştirebilme.

Gereksinimler

Bu rehberin gereksinimleri:
• Arduino UNO veya benzer bir mikrokontrolör
• Arduino IDE’si (Buradan indirebilirsiniz)
• DHT22 (SimpleDHT) Arduino kütüphanesi (Buradan indirebilirsiniz)
• DHT22 Nem ve sıcaklık sensörü, 3 jumper kablo, breadboard (opsiyonel)

Zorluk

Bu rehberin zorluğu:
• Basit



Rehber İçeriği

Nem ve Sıcaklık Sensörleri Nedir ve Nasıl Çalışırlar

Nem sensörleri havadaki nemi su oranını algılayan birimlerdir. Elektronik nem sensörleri kapasitif ve rezistif olarak ikiye ayrılır. DHT22 sensörü kapasitif bir nem sensörüdür. Kapasitif nem sensörlerinde iki elektrot arasında bulunan nem tutan bir malzeme, havadaki nemi tutar. Tuttuğu nem oranına bağlı olarak elektrik geçirgenliği değişeceğinden, elektrotlar arasındaki direnç değeri değişir. Dirençteki değişim mikrokontrolör tarafından hesaplanarak ortamın nem oranı bulunur.

im1.jpg
Havadaki yüksek nem oranından kaynaklanan yoğuşma. Görüntü kaynağı (royalty free)

Sıcaklık sensörleri adından da anlaşılabileceği üzere havanın anlık sıcaklığını ölçen birimlerdir. Sıcaklık sensörlerinin farklı türleri ve buna bağlı olarak farklı çalışma yöntemleri vardır. DHT22 sensörü bir NTC termistörüdür. Negative Temperature Coefficient (Negatif Isı Katsayısı) anlamına gelen NTC termistörlerde, ortam sıcaklığı arttıkça dirençleri düşer, böylece sıcaklık ölçümü yapılmış olur.

im2.jpg
Günümüzde kullanılan bir hava istasyonu. Görüntü kaynağı (royalty free)


DHT22 (SimpleDHT) Kütüphanesin Arduino IDE’sine Kurulumu

1. https://github.com/winlinvip/SimpleDHT adresinden kütüphaneyi indirin.

indir.png

2. Arduino programını açıp sırasıyla Sketch->Include Library->Add .ZIP Library seçeneklerini seçin.

ekle.png

3. SimpleDHT-master.zip dosyasını seçin ve Open'a tıklayın.


DHT22 (SimpleDHT) Kütüphanesi Kullanımı ve Örnek Proje

DHT22 (SimpleDHT) kütüphanesinin kullanımını basit bir örnek proje ile adım adım göstereceğim. Bu örnek projemizde DHT22 nem ve sıcaklık sensörü kullanarak ev tipi bir hava istasyonu yapacağız. Ev tipi hava istasyonumuz belirli zaman aralıklarında bulunduğu ortamın nem ve sıcaklık değerlerini ölçüp ekrana yansıtacak. DHT22 nem ve sıcaklık sensörünün Arduino’ya bağlantı şemasını aşağıda görebilirsiniz.

Kütüphanenin temellerini öğrendikten sonra başka projelerde kullanırsanız lütfen yorumlarda belirtin.

proje.jpg
DHT22 sensörü ve Arduino kullanarak yapılmış hava istasyonu projesi.

baglanti.png
DHT22 sensörünün Arduino'ya bağlantı şeması. Fritzing programında çizilmiştir.

1. Yeni bir sketch açın ve "Hava_Istasyonu" olarak kaydedin.

2. Öncelikle kütüphanemizi sketch’imize eklemek için, kodun en başına, #include <SimpleDHT.h> yazın.

1.PNG

3. Kütüphaneyi ekledikten sonra Arduino’da kullanacağınız sensörü tanımlayın ve bağlayacağınız “DATA” çıkışının pinini (Analog 2) belirleyin. Ardından kütüphane fonksiyonlarını tanımlayın.

2.PNG

4. void setup() fonksiyonunun içine 115200 baud rate'de seri haberleşmeyi başlatacak komutu ekleyin. Her zaman kullanılan 9600 baud rate seri haberleşmeyi kullanmamızın nedeni sensörün en doğru 115200 baud rate’de çalışmasındandır.

3.PNG

5. void loop() fonksiyonunun içine, nem ve sıcaklık değeri okumaları için iki farklı float değişken tanımlayın. Ardından sensördeki olası hataların ekrana yansıtılması için bir hata değişkeni tanımlayın ve kütüphanenin hata fonksiyonuna eşitleyin.

4.PNG

6. Sensörden veri okuma sırasında oluşacak bir hatada çalışan bir if komutu tanımlayın. Hatanın nedenini ekrana yansıtacak ve 5 saniye sonra işlemi sonlandıracak komutları ekleyin.

5.PNG

7. Ardından önce yüzde bağıl nem oranını float cinsinden ve virgülden sonra 1 basamak olacak şekilde ekrana yansıtacak komutu ekleyin. Aynı işlemi santigrat sıcaklık değeri için de yapın, okumalar arasında 5 saniye olması adına bir delay komutu ekleyin ve void loop() fonksiyonunu kapatın.

6.PNG

8. Kodu önce Arduino IDE’sindeki “Verify” butonuna basarak compile edin, ardından “Upload” butonuna basarak Arduino’nuza yükleyin. Aşağıdakine benzer (değerler farklı olabilir) bir ölçüm ekranı (Serial monitor) almanız gerekmektedir.

upload.png

cikti.png
Ekrana yazılan yüzde bağıl nem ve sıcaklık çıktıları.


Sonuç/Özet

Bu yazımda Arduino mikrokontrolörü için " winlinvip" adlı GitHub kullanıcısı tarafından yazılmış "SimpleDHT" kütüphanesinin kurulumu, nem ve sıcaklık sensörleri hakkında bir giriş yaparak ev tipi bir hava durumu istasyonu örneği yaparak kütüphanenin kullanımını gösterdim. Umuyorum ki vermiş olduğum bilgileri beğenirsiniz, okuduğunuz için teşekkürler. Başka yazılarda görüşmek dileğiyle.

Kütüphane hakkında daha fazla bilgi ve kaynak için aşağıdaki linki kullanabilirsiniz.

Github: https://github.com/winlinvip/SimpleDHT



Kodlar

#include <SimpleDHT.h>    // Kütüphaneyi ekler.

int sensor = 2;    // Sensör "DATA" pinimizi tanımlayıp belirliyoruz.
SimpleDHT22 dht22; // Kütüphane fonksiyonlarını tanımlar.

void setup() {
  
  Serial.begin(115200); // 115200 baud rate'de seri haberleşmeyi başlatır.
}

void loop() {
  
  float nem = 0;        // Nem ve sıcaklık değerleri için ayrı değişkenler tanımlıyoruz.
  float sicaklik = 0;
  
  int hata = SimpleDHTErrSuccess;
  
  if ((hata = dht22.read2(sensor, &sicaklik, &nem, NULL)) != SimpleDHTErrSuccess) {  // Sensör okumada hata olduğunda
    Serial.print("DHT22 sensörünü okurken bir hata meydana geldi");                  // hata nedenini ekrana yansıtır
    Serial.println(hata);                                                            // ve 5 sn içinde işlemi sonlandırır.
    delay(5000);
    return;
  }


  Serial.print("(%) Bağıl Nem: "); // Okunan nem değerini ekrana yansıtır.
  Serial.println((float)nem,1);    
       
  Serial.print("(C) Sıcaklık: ");  // Okunan sıcaklık değerini ekrana yansıtır.
  Serial.println((float)sicaklik,1);    
  Serial.println();

  delay(5000);                      // Okumalar arası 5 saniye ara.
  
}



Posted on Utopian.io - Rewarding Open Source Contributors

Sort:  

Thank you for the contribution. It has been approved.

You can contact us on Discord.
[utopian-moderator]

Hey @sedatyildiz, I just gave you a tip for your hard work on moderation. Upvote this comment to support the utopian moderators and increase your future rewards!

Yazınızı okuyunca AliExpress >> DHT22 sensörü enter & Sepete ekle deyip buraya döndüm ☺️☺️ elinize sağlık güzel içerikleriniz var 😊

Çok teşekkür ederim, projelerinizde kolay gelsin ve iyi eğlenceler :)

The @OriginalWorks bot has determined this post by @drencolha to be original material and upvoted it!

ezgif.com-resize.gif

To call @OriginalWorks, simply reply to any post with @originalworks or !originalworks in your message!

Please note that this is a BETA version. Feel free to leave a reply if you feel this is an error to help improve accuracy.

Hey @drencolha I am @utopian-io. I have just upvoted you!

Achievements

  • You have less than 500 followers. Just gave you a gift to help you succeed!
  • Seems like you contribute quite often. AMAZING!

Suggestions

  • Contribute more often to get higher and higher rewards. I wish to see you often!
  • Work on your followers to increase the votes/rewards. I follow what humans do and my vote is mainly based on that. Good luck!

Get Noticed!

  • Did you know project owners can manually vote with their own voting power or by voting power delegated to their projects? Ask the project owner to review your contributions!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x

Coin Marketplace

STEEM 0.17
TRX 0.15
JST 0.028
BTC 57198.53
ETH 2362.64
USDT 1.00
SBD 2.40