Arduino ile DHT11 Modülü
Bu sensör önceden kalibre edilmiştir ve ekstra bileşen gerektirmez, böylece hemen bağıl nem ve sıcaklığı ölçmeye başlayabilirsiniz.
DHT11 Sıcaklığı ve Nemi Nasıl Ölçer?
DHT11'in içinde, bir Termistör ile birlikte bir nem algılama bileşeni vardır.
Nem algılama bileşeni, aralarında sıkıştırılmış nem tutan alt tabakaya sahip iki elektrota sahiptir.
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.
DHt11 ayrıca sıcaklığı ölçmek için bir NTC / Termistör içerir. Bir termistör, direnci sıcaklıkla büyük ölçüde değişen bir termal dirençtir. "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 Modülü Donanımına Genel Bakış
Modülün merkezinde, AOSONG - DHT11 tarafından üretilen dijital sıcaklık ve nem sensörü bulunmaktadır.
DHT11 Sensörü
DHT11, 0 ° C ila 50 ° C arasındaki sıcaklığı ± 2.0 ° C doğrulukla ve% 20 ila% 80 arasındaki nemi% 5 doğrulukla ölçebilir.
DHT11'in örnekleme hızının 1Hz olduğunu, yani saniyede bir ondan yeni veriler alabileceğinizi unutmayın.
Destekleyen Devre
Modül, tüm temel destek devreleriyle birlikte gelir, bu nedenle herhangi bir ekstra bileşen olmadan çalışmaya hazır olmalıdır.
DHT11 sensörleri, sensör ve Arduino arasında uygun iletişim için genellikle VCC ve Out pimi arasında 10KΩ'luk harici çekme direnci gerektirir. Bununla birlikte, modülün yerleşik bir kaldırma direnci vardır, bu nedenle eklemenize gerek yoktur.
Modülde ayrıca güç kaynağı üzerindeki gürültüyü filtrelemek için bir dekuplaj kapasitörü vardır.
DHT11 Modülü Pinout
DHT11 modülünün bağlanması oldukça kolaydır. Yalnızca üç pimi vardır:
+ (VCC)pin sensör için güç sağlar. Besleme voltajı 3,3V ile 5,5V arasında değişmesine rağmen 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.
Dışarı pin, sensör ve Arduino arasındaki iletişim için kullanılır.
- (GND) Arduino'nun zeminine bağlanmalıdır.
DHT11 Modülünü Arduino ya Kablolama
DHT11 modülünü Arduino'ya bağlayalım.
Bağlantılar oldukça basit. + (VCC) pinini Arduino'daki 5V çıkışına bağlayarak başlayın ve - (GND) toprağa bağlayın. Son olarak, Çıkış pinini 8 numaralı dijital pime bağlayın.
Aşağıdaki şema, her şeyi nasıl bağlayacağınızı gösterir.
DHT kitaplığını yükleme
DHT11 sensörleri, verileri aktarmak için kendi tek kablolu protokollerine sahiptir. Bu protokol, kesin zamanlama gerektirir. Neyse ki, DHT Kitaplığı tüm karmaşıklıkları gizlemek için yazılmıştır, böylece sıcaklık ve nem verilerini okumak için basit komutlar verebiliriz.
Ö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.
Arduino Kodu - Temel Örnek
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ı:
Taslak, DHT kitaplığını dahil ederek ve sensörümüzün Out pininin bağlı olduğu Arduino pin numarasını tanımlayarak başlar. Daha sonra kütüphaneyle ilgili özel fonksiyonlara erişmek için bir DHT nesnesi oluşturuyoruz.
'Kurulum' fonksiyonunda; sonuçları yazdırmak için seri monitörü kullanacağımız için seri iletişimi başlatıyoruz.
'Döngü' fonksiyonunda; read11()
Verileri sensörden okuyan işlevi kullanacağız . Sensörün Data pin numarasını parametre olarak alır.
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 - Sonuçları LCD'de Görüntüleme
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 olacaktır. Bu örnekte, LCD'yi DHT11 modülüyle 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.
Aşağıda gösterildiği gibi LCD bağlantılarını yapın.
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.
Her şey yolundaysa, LCD'de aşağıdaki çıktıyı görmelisiniz.