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.
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.
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.
2. Arduino programını açıp sırasıyla Sketch->Include Library->Add .ZIP Library seçeneklerini seçin.
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.
DHT22 sensörü ve Arduino kullanarak yapılmış hava istasyonu projesi.
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.
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.
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.
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.
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.
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.
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.
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
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 :)
@originalworks
The @OriginalWorks bot has determined this post by @drencolha to be original material and upvoted it!
To call @OriginalWorks, simply reply to any post with @originalworks or !originalworks in your message!
Hey @drencolha I am @utopian-io. I have just upvoted you!
Achievements
Suggestions
Get Noticed!
Community-Driven Witness!
I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!
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