DHT11 Arduino ile Sıcaklık ve Nem Ölçümü Nasıl Yapılır?
Bu projemizde DHT11, Arduino Uno ve LCD Ekran kullanımı yaparak Nem ve Sıcaklık Ölçümünü sağlayacağız.
Arduino ile Nem ve Sıcaklığı LCD’de göstermek için gerekli malzemeler:
- Arduino Uno R3 Dip Model (Klon)
- DHT11 Nem ve Sıcaklık Sensörü
- 16×2 Karakter LCD Ekran I2C
- LCD Seri Arayüz Kartı
DHT11 Sıcaklık ve Nem Sensörü Özellikleri
Her DHT11, nem kalibrasyonu konusunda son derece hassas olan laboratuvarda kesinlikle kalibre edilir. Kalibrasyon katsayıları, sensörün dahili sinyal algılama işlemi tarafından kullanılan OTP belleğindeki programlar olarak saklanır. Tek telli seri arabirim, sistem entegrasyonunu hızlı ve kolay hale getirir. Küçük boyutu, düşük güç tüketimi ve 20 metreye kadar sinyal iletimi, en zorluları da içeren çeşitli uygulamalar için en iyi seçimdir. Bileşen 4 iğneli tek sıralı pin paketidir.
DHT11 Arduino Pin 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
Veri iletimi doğruysa, kontrol toplamı 8bit integral RH verisi + 8bit ondalık RH verisi + 8bit integral T data + 8bit ondalık T data ”sonucunun 8 bit oranına eşit olmalıdır.
DHT11 Teknik Özellikleri
- Güç Kaynağı: 3.3 ~ 5.5V DC
- Çıkış: 4 pin tek sıra
- Ölçüm Aralığı: Nem 20-90% RH , Sıcaklık 0 ~ 50 ℃
- Doğruluk: Nem + -5% RH , Sıcaklık + -2 ℃
- Çözünürlük: Nem% 1 RH , Sıcaklık 1 ℃
- Uzun Süreli Stabilite: <±% 1 Bağıl Nem / yıl
Arduino DHT11 Bağlantısı
MCU ve DHT11 sensörü arasındaki iletişim ve senkronizasyon için tek veri yolu veri formatı kullanılır. Her iletişim süreci yaklaşık 4ms sürecek.
Veriler bu formatta iletilir:
- 8bit dahili RH veri +
- 8bit ondalık RH veri +
- 8bit integral T veri +
- 8bit ondalık T veri +
- 8bit kontrol toplamı.
Veri iletimi doğruysa, kontrol toplamı 8bit integral RH verisi + 8bit ondalık RH verisi + 8bit integral T data + 8bit ondalık T data ”sonucunun 8 bit oranına eşit olmalıdır.
Bağlantıları şemaya uygun yaptıktan sonra kodumuzu Arduino Uno kartımıza yükleyip test edebiliriz. Arduino kartımız üzerinde I2C iletişimi için bulunan A4 pini SDA, A5 pini SCL pinidir. LCD Seri Arayüz Kartımızdaki SDA ve SCL bacakları bu pinler bağlanmalıdır.
VCC pini 5V ye, GND pini GND ye bağlanır.
Modül kullandığımız için aradaki dirence ihtiyacımız yok. O direnç modül devresi üzerinde mevcuttur.
Kütüphaneleri aşağıdaki linklerden indirip Arduino programına kurabilirsiniz.
DHT11 Arduino Kodu
#include <DHT11.h>
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
// LCD ARAYUZ AKRTI AYARLARI YAPILIYOR
LiquidCrystal_I2C lcd(0x27, 4, 5, 6, 0, 1, 2, 3, 7, POSITIVE);
// Addr, En, Rw, Rs, d4, d5, d6, d7, backlighpin, polarity
int pin = A0;
DHT11 dht11(pin);
void setup() {
// LCD AYARLARI YAPILIYOR
lcd.begin(16, 2);
lcd.backlight();
lcd.clear();
lcd.print("SICAKLIK VE NEM ");
delay(3000);
lcd.clear();
lcd.print("AYARLANIYOR.....");
delay(3000);
}
void loop() {
int err;
float temp, humi;
// EGER HATA YOKSA SICAKLIK VE NEMI OKUYUP EKRANA YAZ
if ((err = dht11.read(humi, temp)) == 0)
{
lcd.clear();
delay(500);
lcd.setCursor(0, 0); // KURSORU LCD 1. SATIR 1. SUTUNUNA AL
lcd.print("SICAKLIK");
lcd.setCursor(0, 1);// KURSORU LCD 2. SATIR 1. SUTUNUNA AL
lcd.print("NEM");
lcd.setCursor(9, 0);
lcd.print(temp,1);// SICAKLIK YAZ
lcd.print(" C");
lcd.setCursor(9, 1);
lcd.print(humi);// NEM YAZ
lcd.print(" %");
delay(1000);
}
else
{
// EGER HATA AVRSA HATA NUMARASINI VER
lcd.println();
lcd.print("HATA No :");
lcd.print(err);
lcd.println();
}
}
DHT11 Arduino projemizi bu anlatıma uygun olarak çalıştırabiliriz. Sorularınızı yorum olarak gönderebilirsiniz. Arduino Modellerini ve Arduino Eğitim Setlerini Türkiye’nin Elektronik Marketi‘nde bulabilirsiniz.
merhaba ben ekrana sıcaklık ve nem değerleri yerine sıcaklığa bağlı olarak yazı yazmak istiyorum nasıl yapabilirim?