Arduino ile DHT22 Sıcaklık Nem Sensörü Kullanımı

9 2.393

DHT sensörleri, kapasitif nem sensörü ve bir termistör olmak üzere iki parçadan oluşur. DHT11 ve DHT22 olan iki DHT modelini ele alalım. Görünüm ve pin yapısı olarak benzer görünmelerine rağmen farklı ölçüm hassasiyetlerine sahiptirler. Aşağıda iki modelin karşılaştırmasına bakalım.

                                              DHT11                                       DHT22

Çalışma Gerilimi  :           3-5v                                           3-5v

Maksimum Akım:           2.5mA                                         2.5mA

Sıcaklık Ölçümüı:      0-50°C  ± 2 ° C hassasiyet         -40 – 125°C  ±0.5°C hassasiyet

Nem Ölçümü :            % 5 doğrulukla % 20-80               2-5% doğrulukla 0-100%

Örnekleme Oranı :       1 Hz (1sn)                                           0.5 Hz (2sn)

Görüldüğü üzere DHT22 DHT11 modelinden biraz daha geniş aralıkta ve doğru ölçüm yapar.

Aşağıda DHT22 pinlerinin isimleri gösterilmiştir.

 

DHT Kütüphanesini buradan indirebilirsiniz >>  DHT Kütüphanesi

Arduino İle Örnek Uygulama:

Malzemeler:

  1. Arduino Uno
  2. DHT22
  3. I2C LCD 16 × 2 Ekran
  4. 4.7k Direnç

Devre Şeması:

Arduino Kodu:

//Robimek - Robotik Sistemler
//DHT22 SICAKLIK NEM
#include <Wire.h>
#include <dht.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
 
#define pin 2
 
dht DHT;
void setup() {
 Serial.begin(9600);
lcd.begin();
lcd.backlight();
lcd.clear();
}
void loop() {
 int readData = DHT.read22(pin);
 float t = DHT.temperature;
 float h = DHT.humidity;
 lcd.setCursor(0,0);
 lcd.print("Sicaklik: "); 
 lcd.setCursor(11,0);
 lcd.print(t); 
 lcd.print(" C");
 lcd.setCursor(0,1);
 lcd.print("Nem: ");
 lcd.setCursor(8,1);
 lcd.print(h);
 lcd.print(" %");
 delay(2000);
}

Kod kısmında DHT.read22(pin); yazan satırda read22, dht22 olduğunu söyler. Eğer dht11 kullanırsanız read11 olarak değiştirmeniz yeterlidir. Aynı kodu kullanabilirsiniz. Kütüphane örnek kodlarında diğer modelleri ile yapılmış örnekler de mevcut.

Bunları da beğenebilirsin

Cevap bırakın

E-posta hesabınız yayımlanmayacak.

9 Yorum

  1. hakan

    calışmadı . lcd üst ekran kutucukları doldu. yazı falan yok ekran böyle oluyor google.com.tr/search?q=arduino+lcd+ekran&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjjjeHykPLUAhWFWxQKHcTSC8QQ_AUIBigB&biw=1152&bih=709#imgrc=MX_eLQ0VkS5yaM:

  2. recep balta

    merhabalar yapmak istediğmiz,her saat başı 15 sn ses kaydı (aynı ses kaydı),sıcaklık,nem bilgisini okuması ve bunu yapar iken ses kaydı başlamadan 1 sn evvel 12v röle çekecek.biz bunu bir telsiz üzerinden bulunduğumuz bölgede kullanacaz.onun için röle telsizin manadalını kısa devre yaparak 1 sn sonra bigileri aktarıp sonrası röleyi bırakacak.nasıl bir yol izelnmesi lazım.saygılar.

  3. Ertug_TR

    Selamlar;
    DHT22 2×16 LCD ekran uygulamsını yapmaya çalışıyorum. I2C modulu yok.Fakat ne yaptıysam,include DHT.h hatasını gideremedim.Library’e hangi DHT eklediysemde kabul etmedi.Tşk.

    1. Sezgin GÜL

      Yukarıda kütüphane linki var oradan indirebilirsiniz.

      1. Ertug_TR

        Arduino:1.6.8 (Windows XP), Kart:”Arduino/Genuino Uno”

        UYARI : DHT kütüphanesi çalışmak için [atmelavr] mimarisine ihtiyaç duyuyor ve [avr] mimarisini kullanan devreniz için uyumsuz olabilir.
        C:DOCUME~1ERTURU~1LOCALS~1Temparduino_modified_sketch_585648sketch_feb14a.ino: In function ‘void setup()’:

        sketch_feb14a:13: error: no matching function for call to ‘LiquidCrystal_I2C::begin()’

        lcd.begin();

        ^

        C:DOCUME~1ERTURU~1LOCALS~1Temparduino_modified_sketch_585648sketch_feb14a.ino:13:11: note: candidate is:

        In file included from C:DOCUME~1ERTURU~1LOCALS~1Temparduino_modified_sketch_585648sketch_feb14a.ino:5:0:

        C:Documents and SettingsErtuğrulBelgelerimArduinolibrariesLiquidCrystal_I2C/LiquidCrystal_I2C.h:58:8: note: void LiquidCrystal_I2C::begin(uint8_t, uint8_t, uint8_t)

        void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS );

        ^

        C:Documents and SettingsErtuğrulBelgelerimArduinolibrariesLiquidCrystal_I2C/LiquidCrystal_I2C.h:58:8: note: candidate expects 3 arguments, 0 provided

        exit status 1
        no matching function for call to ‘LiquidCrystal_I2C::begin()’

        This report would have more information with
        “Show verbose output during compilation”
        option enabled in File -> Preferences.
        Arduino:1.6.8 (Windows XP), Kart:”Arduino/Genuino Uno”

        UYARI : DHT kütüphanesi çalışmak için [atmelavr] mimarisine ihtiyaç duyuyor ve [avr] mimarisini kullanan devreniz için uyumsuz olabilir.
        C:DOCUME~1ERTURU~1LOCALS~1Temparduino_modified_sketch_585648sketch_feb14a.ino: In function ‘void setup()’:

        sketch_feb14a:13: error: no matching function for call to ‘LiquidCrystal_I2C::begin()’

        lcd.begin();

        ^

        C:DOCUME~1ERTURU~1LOCALS~1Temparduino_modified_sketch_585648sketch_feb14a.ino:13:11: note: candidate is:

        In file included from C:DOCUME~1ERTURU~1LOCALS~1Temparduino_modified_sketch_585648sketch_feb14a.ino:5:0:

        C:Documents and SettingsErtuğrulBelgelerimArduinolibrariesLiquidCrystal_I2C/LiquidCrystal_I2C.h:58:8: note: void LiquidCrystal_I2C::begin(uint8_t, uint8_t, uint8_t)

        void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS );

        ^

        C:Documents and SettingsErtuğrulBelgelerimArduinolibrariesLiquidCrystal_I2C/LiquidCrystal_I2C.h:58:8: note: candidate expects 3 arguments, 0 provided

        exit status 1
        no matching function for call to ‘LiquidCrystal_I2C::begin()’

        This report would have more information with
        “Show verbose output during compilation”
        option enabled in File -> Preferences.
        // I2c lcd kütüphanesini kurdum,linkteki dht kütüphanesini kurdum kodu yağıştırdım.Sonuç hatalar.Anlamıyorum neden hata geliyor.1.6.8 sürümlede denedim olmadı.Tşk.

        1. Sezgin GÜL

          kütüphaneleri doğru yere ve doğru şekilde attığınızdan emin olun. Hata kütüphaneleri yanlış yere yüklemenizden kaynaklı olabilir veya donanımsal sorun olabilir.

          1. Ertug_TR

            Kütüphaneye .zip olarak yükle dedim,kendisi yükledi.dhtlib diye görünüyor.Baktığım zaman belgelerim–arduino—library dosyasına gönderiyor,Örneklerde de dhtlib görünüyor.Burada dht’de büyük küçük harf önemli mi,verdiğin örnekte dht ufak harfle yazılmış ben büyük harf yazınca harfler kırmızı oluyor.Her türlü denedim.Bilemiyorum nerede hata var.

          2. Sezgin GÜL

            arduinonun kurulu olduğu konumu açın. orada libraries klasörü var kütüphaneleri zipten çıkarıp oraya atın. Belgelerime attığınız kütüphaneleri silin.

          3. Ertug_TR

            Yok kardeş öylede denemiştim bir türlü olmuyor.Hata veriyor.Kesinlikle kütüphaneyle ilgili ama verdiğin linkide kuruyoru,onlinde kütüphaneyi güncelliyorum yinede hata veriyor.1.8.1 ‘de denedim sürüm 1.6.8’de ikisinde de hata veriyor.