Arduino ile DHT22 Sıcaklık Nem Sensörü Kullanımı
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:
- Arduino Uno
- DHT22
- I2C LCD 16 × 2 Ekran
- 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); }
Bunu alıp dc-06 bluetoot ile yapmak istiyorum ayrıca eklenmesi gereken kodlar nedir acaba
kulucka mak için kullandım ama dht içine nem birkmesi olmus nasıl giderebilirim
dht 22 den çok sayıda kullanmam gerek.Her sensör için Arduino Uno mı kullanmam gerekir
teşekkürler
Yazılım kısmını biz mi atıyoruz anlamadım
dcl ve sda dediğinizi lcd de nereye takıcam ?
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:
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.
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.
Yukarıda kütüphane linki var oradan indirebilirsiniz.
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.
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.
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.
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.
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.