DHT22 Arduino Kullanımı
DHT22 Arduino Kullanımı Nasıl Yapılır?
Bu devremizde DHT22 Arduino Kullanımının nasıl yapıldığını anlatıyoruz. Arduino Uno ve DHT22 Sıcaklık ve Nem Ölçüm Sensörü ile örnek devre yapacağız.
Kullanacağımız malzemeler:
- Arduino Uno R3 Dip Klon
- DHT22 Sıcaklık ve Nem Sensörü
- Karakter 2×16 LCD Ekran Devresi – I2C
- Breadboard
- 10K Direnç
- Jumper Kablolar
Sıcaklık ve Nem Ölçüm Sensörü DHT22 Özellikleri
DHT22, temel, düşük maliyetli dijital sıcaklık ve nem sensörüdür. Ortamdaki havayı ölçmek için bir kapasitif nem sensörü ve bir termistör kullanır. Veri pini üzerinde dijital bir sinyal çıkarır(gerekli herhangi bir analog giriş pimi gerekmez). Kullanımı oldukça basittir, ancak verileri yakalamak için dikkatli bir zamanlama gerektirir. Bu sensörün tek gerçek dezavantajı, her 2 saniyede bir yeni veri alabilmenizdir, bu yüzden kütüphanemizi kullanırken, sensör okumaları 2 saniyeye kadar çıkabilir.
DHT22 Bağlantısı:
- VCC + 3.3V ~ 5V’ye
bağlanır - mikrodenetleyici IO bağlantı noktasına bağlı VERİ
- toprağa bağlı GND
DHT22 Teknik Özellikler
- Tür: AM2302.
- Doğruluk çözünürlüğü: 0.1.
- Nem aralığı: 0-100% RH.
- Sıcaklık aralığı: -40 ~ 80C
- Nem ölçüm hassasiyeti: ±% 2 RH.
- Sıcaklık ölçüm hassasiyeti: ± 0.5C
- 4 pimli paket.
- Ultra düşük güç.
- Ek bileşen yok.
- Mükemmel uzun süreli kararlılık.
- Tüm kalibrasyon, dijital çıkış.
- Tamamen değiştirilebilir.
- Uzun mesafe sinyal iletimi.
- Bağıl nem ve sıcaklık ölçümü.
Bağlantıları şemaya uygun yaptıktan sonra kodumuzu Arduino Uno kartımıza yükleyip test edebiliriz.
LCD bağlantıları
LCD – Arduino Uno
VCC -5V
GND -GND
RS – 12
RW -GND
EN – 11
D4 – 5
D5 – 4
D6 – 3
D7 – 2
Vo pini 10K potansın orta bacağına, potansın 1. Bacağı gnd bölümüne, 3. Bacağıda 5V bölümüne bağlanmalıdır.
Kütüphaneleri aşağıdaki linkten indirip Arduino programına kurabilirsiniz.
https://github.com/adafruit/DHT-sensor-library/archive/master.zip
DHT22 Arduino Kodu
#include
#include
// DHT22 PINI D7
#define DHTPIN 7
// LCD PINLERI RS-12 EN-11- D4-5,D5-4,D6-3,D7-2
LiquidCrystal LCD (12, 11, 5, 4, 3, 2);
#define DHTTYPE DHT22 DHT Sensor 22 (AM2302)
// DHT SENSORU TANIMLANIYOR
DHT DHT (DHTPIN, DHTTYPE);
// DERECE SEMBOLU
byte level [8] = {B00001100,
B00010010,
B00010010,
B00001100,
B00000000,
B00000000,
B00000000,
B00000000,
};
void setup ()
{
// LCD AYARI
lcd.begin (16, 2);
lcd.clear ();
// DERECE SECIMI
lcd.createChar (0, degree);
// DISPLAY 1. SATIRINA SICAKLIĞI YAZ
lcd.setCursor (0, 0);
lcd.print ("Temp. : ");
lcd.setCursor (13.0);
// DERECE SIMGESINI CIKART
lcd.write (byte (0));
lcd.print ("C");
// DISPLAY 2. SATIRINA NEM YAZ
lcd.setCursor (0.1);
lcd.print ("Umid. : ");
lcd.setCursor (14.1);
lcd.print ("%");
Serial.begin (9600);
// SENSORU BASLAT
dht.begin ();
}
void loop ()
{
// 2 SANIYE BEKLE
delay (2000);
// OLCUMU AL
dht.readHumidity float h = ();
// DERECEYI DEGISKENE ATA
t = dht.readTemperature float ();
if (isnan (h) || isnan (t))
{
Serial.println ("SENSOR ARIZASI !!!");
return;
}
// DISPLAY 1. SATIRINA SICAKLIĞI YAZ
Serial.print ("Temperature: ");
Serial.print (t);
lcd.setCursor (8.0);
lcd.print (t);
Serial.print (" C * ");
// DISPLAY 2. SATIRINA SICAKLIĞI YAZ
Serial.print ("humidity: ");
Serial.print (h);
Serial.println (" %");
lcd.setCursor (8.1);
lcd.print (h);
}
0 Yorumlar