DHT11 DHT22 Sensörleri Arduino ile Nasıl Çalışır ?
AOSONG'un ucuz DHT11 veya DHT22 Dijital Sıcaklık ve Nem Sensörü ile bir sonraki Arduino projenize etrafındaki dünyayı algılama yeteneği verin.
Bu sensörler önceden kalibre edilmiştir ve ekstra bileşen gerektirmez, böylece hemen bağıl nem ve sıcaklığı ölçmeye başlayabilirsiniz.
Sağladıkları en büyük özelliklerden biri, hem sıcaklığın hem de nemin en yakın onda birine kadar ölçülmesidir; yani, bir ondalık basamağa. Bu sensörün tek dezavantajı, saniyede bir veya iki kez yeni veriler alabilmenizdir. Ancak performansı ve fiyatı düşünüldüğünde şikayet edemezsiniz.
DHT11 Vs DHT22 / AM2302
DHTxx sensör serisinin iki versiyonuna sahibiz. Biraz benzer görünüyorlar ve aynı bağlantıya sahipler, ancak farklı özelliklere sahipler. İşte detaylar:
DHT22, açıkça daha iyi özelliklere sahip olan daha pahalı bir versiyondur. Sıcaklık ölçüm aralığı + -0,5 derece doğrulukla -40 ° C ila + 125 ° C iken, DHT11 sıcaklık aralığı + -2 derece doğrulukla 0 ° C ila 50 ° C arasındadır. Ayrıca DHT22 sensörü,% 2-5 doğrulukla% 0 ila% 100 arasında daha iyi nem ölçüm aralığına sahipken, DHT11 nem aralığı% 5 doğrulukla% 20 ila% 80 arasındadır.
DHT22 daha hassas, daha doğru ve daha geniş bir sıcaklık ve nem aralığında çalışsa da; DHT11'in DHT22'yi geride bıraktığı üç şey var. Daha ucuzdur, daha küçüktür ve daha yüksek örnekleme oranına sahiptir. DHT11'in örnekleme hızı 1Hz'dir, yani saniyede bir okuma, DHT22'nin örnekleme hızı ise 0.5Hz'dir, yani her iki saniyede bir okuma.
Bununla birlikte, her iki sensörün çalışma voltajı 3 ila 5 volt arasında iken, dönüştürme sırasında (veri talep edilirken) kullanılan maksimum akım 2,5 mA'dır. Ve en iyisi, DHT11 ve DHT22 sensörlerinin 'değiştirilebilir' olmasıdır - yani, projenizi biriyle oluşturuyorsanız, sadece fişini çekip bir başkasını kullanabilirsiniz. Kodunuzun biraz ayarlanması gerekebilir ama en azından kablolama aynıdır!
Donanıma Genel Bakış
Şimdi ilginç şeylere geçelim. Hem DHT11 hem de DHT22 sensörlerini söküp içeride ne olduğunu görelim.
Kasa iki parçadan oluşuyor, bu yüzden içine girmek için sadece keskin bir bıçak alıp kasayı bölmek yeterli. Kasanın içinde, algılama tarafında, bir NTC sıcaklık sensörü (veya termistör) ile birlikte bir nem algılama bileşeni vardır.
Nemi ölçmek için elbette nem algılama bileşeni kullanılır; bu bileşen, aralarına sıkıştırılmış nem tutma substratı (genellikle bir tuz veya iletken plastik polimer) bulunan iki elektrot içerir. Su buharı tarafından emildiği için iyonlar substrat tarafından salınır ve bu da elektrotlar arasındaki iletkenliği artırır. İki elektrot arasındaki direnç değişikliği bağıl nem ile orantılıdır. Daha yüksek bağıl nem elektrotlar arasındaki direnci azaltırken, daha düşük bağıl nem elektrotlar arasındaki direnci artırır.
Ayrıca, sıcaklığı ölçmek için bir NTC sıcaklık sensörü / Termistörden oluşurlar. Bir termistör, bir termal dirençtir - direncini sıcaklıkla değiştiren bir direnç. Teknik olarak, tüm dirençler termistördür - dirençleri sıcaklıkla biraz değişir - ancak değişim genellikle çok küçüktür ve ölçülmesi zordur.
Termistörler, direnç sıcaklıkla büyük ölçüde değişecek şekilde yapılmıştır, böylece derece başına 100 ohm veya daha fazla değişiklik olabilir! "NTC" terimi, "Negatif Sıcaklık Katsayısı" anlamına gelir, bu da sıcaklık arttıkça direncin azaldığı anlamına gelir.
Diğer tarafta, 8 bitlik SOIC-14 paketlenmiş IC'ye sahip küçük bir PCB var. Bu IC, depolanan kalibrasyon katsayılarıyla analog sinyali ölçer ve işler, analogdan dijitale dönüştürme yapar ve sıcaklık ve nem ile dijital bir sinyal verir.
DHT11 ve DHT22 Pin Çıkışı
DHT11 ve DHT22 sensörlerinin bağlanması oldukça kolaydır. Dört pimleri var:
VCCpin sensör için güç sağlar. Besleme voltajı 3,3V ile 5,5V arasında değişse de, 5V besleme önerilir. 5V güç kaynağı olması durumunda, sensörü 20 metreye kadar tutabilirsiniz. Ancak 3.3V besleme geriliminde kablo uzunluğu 1 metreden fazla olmayacaktır. Aksi takdirde, hat voltajı düşüşü ölçümde hatalara yol açacaktır.
Veri pin, sensör ve mikro denetleyici arasındaki iletişim için kullanılır.
NC Bağlı değil
GND Arduino'nun zeminine bağlanmalıdır.
Kablolama - DHT11 ve DHT22'yi Arduino UNO'ya bağlama
Artık DHT sensörlerinin nasıl çalıştığını tam olarak anladığımıza göre, onu Arduino'muza bağlamaya başlayabiliriz!
Neyse ki, DHT11, DHT22 sensörlerini Arduino ya bağlamak önemsizdir. Oldukça uzun 0,1 p-aralıklı pimleri vardır, böylece bunları herhangi bir devre tahtasına kolayca takabilirsiniz. Sensöre 5V ile güç verin ve toprağa bağlayın. Son olarak, Veri pinini 2 numaralı dijital pime bağlayın.
Ayrıca sensör ve MCU arasında düzgün iletişim için YÜKSEK tutmak için VCC ile veri hattı arasına 10KΩ'luk bir çekme direnci yerleştirmemiz gerekir. Sensörün bir koparma panosuna sahipseniz, herhangi bir dış çekme eklemenize gerek yoktur. Yerleşik bir kaldırma direnci ile birlikte gelir.
Bununla, artık bir kod yüklemeye ve çalıştırmaya hazırsınız.
Arduino Kodu - Seri Monitörde değerleri yazdırma
DHT11 ve DHT22 sensörlerinin, verileri aktarmak için kullanılan kendi tek kablolu protokolleri vardır. Bu protokol, kesin zamanlama gerektirir. Neyse ki, bununla ilgili fazla endişelenmemize gerek yok çünkü neredeyse her şeyi halleden DHT kütüphanesini kullanacağız .
Önce kütüphaneyi, GitHub deposunu ziyaret ederek indirin veya zip dosyasını indirmek için bu düğmeye tıklayın:
Kurmak için Arduino IDE'yi açın, Sketch> Include Library> Add .ZIP Library'ye gidin ve ardından indirdiğiniz DHTlib ZIP dosyasını seçin. Bir kitaplık kurma konusunda daha fazla ayrıntıya ihtiyacınız varsa, bu Arduino Kitaplığı Kurma öğreticisini ziyaret edin .
Kitaplığı kurduktan sonra, bu çizimi Arduino IDE'ye kopyalayabilirsiniz. Aşağıdaki test taslağı, seri monitördeki sıcaklık ve bağıl nem değerlerini yazdıracaktır. Krokiyi deneyin; ve sonra onu biraz detaylı olarak açıklayacağız.
Çizim yüklendikten sonra, Arduino'dan çıktıyı görmek için bir Seri Monitör penceresi açın.
Kod Açıklaması:
Çizim, DHT kitaplığını dahil ederek başlar. Ardından, sensörümüzün Data pininin bağlı olduğu Arduino pin numarasını tanımlamamız ve bir DHT nesnesi oluşturmamız gerekiyor. Böylece kütüphane ile ilgili özel fonksiyonlara erişebiliriz.
'Kurulum' fonksiyonunda; Sonuçları yazdırmak için seri monitörü kullanacağımız için seri iletişimi başlatmamız gerekir.
'Döngü' fonksiyonunda; read22()
DHT22'den verileri okuyan işlevi kullanacağız . Sensörün Data pin numarasını parametre olarak alır. DHT11 ile uğraşıyorsanız, read11()
işlevi kullanmanız gerekir . Bunu ikinci satırın açıklamasını kaldırarak yapabilirsiniz.
Nem ve sıcaklık değerleri hesaplandıktan sonra bunlara şu şekilde erişebiliriz:
DHT nesnesi, Santigrat (° C) cinsinden sıcaklık değerini döndürür. Basit bir formül kullanarak Fahrenheit'e (° F) dönüştürülebilir:
T (° F) = T (° C) × 9/5 + 32
Arduino Kodu - LCD ile DHT11 ve DHT22
Bazen DIY inkübatörünüzde sıcaklık ve nem seviyelerini izlemek istediğiniz bir fikir bulursunuz. O halde, inkübatörünüzde seri monitör yerine geçerli koşulları görüntülemek için muhtemelen 16 × 2 karakter LCD'ye ihtiyacınız olacak. Dolayısıyla, bu örnekte, LCD'yi DHT11 ve DHT22 sensörleriyle birlikte Arduino'ya bağlayacağız.
16 × 2 karakter LCD'lere aşina değilseniz, eğitimin altındaki okumayı (en azından gözden geçirmeyi) düşünün.
Daha sonra, aşağıda gösterildiği gibi LCD'ye bağlantı yapmamız gerekiyor.
Aşağıdaki çizim, 16 × 2 karakter LCD'de sıcaklık ve bağıl nem değerlerini yazdıracaktır. LCD'de değerleri yazdırmamız dışında aynı kodu kullanır.
Hiç yorum yok:
Yorum Gönder
Yorum yazdığınız ve üye olduğunuz için Size teşekkür ederim.Burada olduğunuza göre hepimizin ilgi alanı Elektronik ve Programlama sonsuz bir dünyadayız.Hepimize Başarılar...
Not: Yalnızca bu blogun üyesi yorum gönderebilir.