Ortam Sıcaklığını 8x8 LED Modülde Gösteren Arduino Projesi

in utopian-io •  7 years ago  (edited)

This is a Turkish tutorial of how to make a Arduino digital temperature meter which shows the current temperature using a DHT11 temperature and humidity sensor, on a 8x8 MAX7219 LED module. Throughout this tutorial I will give vital information about DHT11 temperature and humidity sensors, MAX7219 LED modules and how to use them.

Merhaba, bu yazıda size Arduino’muzla DHT11 ısı ve nem sensörü ve MAX7219 LED modülünü kullanarak anlık ortam sıcaklığını 8x8 LED ekranı üzerinde görüntüleyen bir proje yapmayı anlatacağım. Önceki yazılarımdaki bilgilerden de yararlanabileceğiniz bu projeyi gerçekleştirirken, kullanacağımız DHT11 ısı ve nem sensörü ve MAX7219 LED modülü hakkında bilgiler verip, bu parçaları nasıl kullanacağınızı anlatacağım.

proje.PNG
LED göstergeli Arduino dijital termometre.


DHT11 Sıcaklık ve Nem Sensörü Hakkında Bilgi ve Kütüphane Kurulumu

DHT11 sıcaklık ve nem sensörü, üzerinde bulunan NTC termistörü yardımıyla ortam sıcaklığını ölçer. Negative Temperature Coefficient (Negatif Isı Katsayısı) anlamına gelen NTC termistörlerde, ortam sıcaklığı arttıkça dirençleri düşer yani iletkenliği artar.

ntc.png
NTC termistör direnç-sıcaklık grafiği

Oluşan direnç farkını ölçerek ortam sıcaklığını tespit ederek çalışan DHT11 sıcaklık ve nem ölçerleri ucuz ve yaygın kullanılan bir sensor olduğundan bu projede kullanılmıştır. Daha kesin ölçüm almak için hata payı daha düşük olan sensörler tercih edilmelidir.

dht11.jpg
Piyasada olan iki DHT11 sensörü çıkışları.

DHT11 sıcaklık ve nem sensörünün özellikleri:
*Nem Ölçüm Aralığı : 20-90% RH
*Nem Ölçüm Hata Payı: ±5% RH
*Sıcaklık Ölçme Aralığı: 0-50 °C
*Sıcaklık Ölçüm Hata Payı: ±2% °C
*Çalışma Gerilimi: 3V - 5.5V

1. https://github.com/adafruit/DHT-sensor-library 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. DHT-sensor-library-master.zip dosyasını seçin ve Open'a tıklayın.


MAX7219 LED Modülü Hakkında Bilgi ve Kütüphane Kurulumu

MAX7219 LED modülü adından da belli olduğu gibi, MAX7219 mikrokontrolörü ile sürülen 8x8 bir LED matristir. “VCC”, “GND”, “DIN”, “CS” ve “CLK” olarak beş inputu bulunur. 4.7 ve 5.3V gerilim aralığında çalışan bu LED modül, 320mA akım çeker. Boyutları 50x32x15 mm’dir.

max.jpg
MAX7219 LED modülü.

Bu modüllerin Arduino’ya nasıl bağlandığını ve kütüphanesinin nasıl kurulduğunu daha önceki bir yazımda anlatmıştım. Yazıyı https://steemit.com/utopian-io/@drencolha/ledmatrix-arduino-library-kurulumu-ve-kullanimi-turkish-tutorial adresinde bulabilirsiniz. Bağlantı ve kütüphane kaynaklı bir sorununuz olursa lütfen yorumlarda sorun, elimden geldiğince yardımcı olmaya çalışırım.


** Kodlar ve Detaylı Anlatımı **

DHT11 Sıcaklık ve nem sensörünü Arduino'nuza aşağıdaki gibi bağlayın.

dht11_baglantı.png

MAX7219 LED modülünü Arduino'nuza aşağıdaki gibi bağlayın.

max_baglanti.png

1. Boş bir Arduino sketch’i açın ve “Ctrl+S” kısayolunu kullanarak, “Dijital_LED_Termometre” olarak kaydedin.

2. Öncelikle DHT11 sensörünün ve MAX7219 LED modülünün kütüphanelerini ekleyin.

1.PNG

3. Yatay ve dikey konumda kullanmak istediğiniz MAX7219 LED modül sayısını tanımlayan kodu yazın. Bu projede 1 adet LED modül kullanılmıştır. Daha fazla LED modül kullanmayı arzularsanız, tanımlanan sayı değerlerini değiştirmeniz gerekir (Örneğin yatay sırada 2, dikey sırada 1 adet LED modül kullanmak isterseniz, const byte DISP_ROWS = 2; const byte DISP_COLS = 1; şeklinde tanımlamanız gerekir). Ardından LED modül pin bağlantılarını tanımlayın. Not: LED modül bağlantılarını aşağıdaki gibi bağlamamanız durumunda mevcut kütüphane sorun vermekte. Eğer sorun alırsanız ilk olarak bağlantılarınızı kontrol edin.

2.PNG

4. DHT11 Sıcaklık ve nem sensörünün bağlantı pinini tanımlayın ve sensörü tanımlayın.

3.PNG

5.Operasyon başladığında kullandığınız LED modülde herhangi bir LED’in yanar durumda olmaması adına modülü sıfırlamaya yarayan aşağıdaki kodu ekleyin.

4.PNG

6. void setup() fonksiyonunun içine, seri haberleşmeyi başlatan kodu ve DHT11 sıcaklık ve nem sensörünün ölçüm işlemini başlatan komutları yazın.

5.PNG

7. void loop() fonksiyonunun içine, bir integer tanımlayın. Tanımladığınız integer değerine sensördeki sıcaklık ölçümünü atayın. Daha sonra LED modülde göstermek üzere iki elemanlı bir Char Array tanımlayın. Tanımladığınız integer değerini karaktere çeviren fonksiyonu yazın ve çevrilen karakteri LED modülde gösteren komutu ekleyin. Tüm bu işlemlerin sonuna bir 5 sanıyelik delay komutu ekleyerek, 5 saniyede bir LED göstergenin ve sıcaklık ölçümünün yinelenmesini sağlayın (Sıcaklık ölçümü sürekli alınır, fakat LED ekrana 5 saniyede bir yansıtılır).

6.PNG

8.Önce “Verify”, sonra “Upload” butonlarına basarak, kodunuzu compile edip, Arduino’nuza yükleyin.

upload.png


Bu yazımda Arduino mikrokontrolörünü kullanarak ve eski yazılarımdaki bilgilerden öğrendiklerimizi kullanarak 8x8 LED modül üzerinde ortam sıcaklığını gösteren bir dijital termometre projesi yaptık. Umuyorum ki vermiş olduğum bilgileri ve projeyi beğenirsiniz, okuduğunuz için teşekkürler. Başka yazılarda görüşmek dileğiyle.

GitHub: https://github.com/arduino/arduino

Kodun tamamı:

#include <LedMatrixSPI.h>
#include <DHT.h>

const byte DISP_ROWS = 1;            // Yatay konumdaki 8x8 LED modül sayısı.
const byte DISP_COLS = 1;            // Dikey konumdaki 8x8 LED modül sayısı.

int DIN = 11;   // MAX7219 LED modülünün DIN pini bağlantısı.
int CLK = 10;   // MAX7219 LED modülünün CLK pini bağlantısı.
int CS = 13;    // MAX7219 LED modülünün CS pini bağlantısı

#define DHTPIN 7  // DHT11 sensörünün pini.
DHT dht;          // DHT11 sensörünü tanımlayan kod.

void clearScreen(){}    // LED modül ekranını temizleyen kütüphane fonksiyonu.

void setup(){
  
  Serial.begin(9600);    // 9600 baud rate'de seri haberleşmeyi başlatır.
  dht.begin();           // DHT11 sensörünün ölçümünü başlatan komut.
}


void loop(){
  
  int t = dht.readTemperature();  // Sensörden sıcaklık ölçümünü alır.

  
  char temp[2];                 // LED modülde gösterilecek karakter için 
                                // iki elemanlı array atıyoruz.
                                 
  itoa(t,temp,10);              // Integer değerini karaktere çevirir.
  
  drawChar(temp);
  delay(5000);                  // 5sn'de bir ölçüm yapılıyor.
  }



Posted on Utopian.io - Rewarding Open Source Contributors

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Thank you for the contribution. It has been approved.

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

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!
  • This is your first accepted contribution here in Utopian. Welcome!

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