Nem ve sıcaklık, çevresel koşulları ölçmek için ortak parametrelerdir. Bu Arduino tabanlı projede ortam sıcaklığını ve nemi ölçüp 16x2 LCD ekranda görüntüleyeceğiz. Bu Santigrat ölçekli termometre ve yüzde ölçeği nem ölçüm projesini geliştirmek için Arduino uno ile birlikte bir sıcaklık ve güvenlik sensörü DHT11 kullanılır. Önceki projemden birinde, LM35 sıcaklık sensörü kullanan bir dijital termometre de geliştirdim.
Bu proje üç bölümden oluşmaktadır - biri nem ve sıcaklık sensörü DHT11 kullanarak nem ve sıcaklığı algılar. İkinci bölüm DHTsensor modülünün çıktısını okur ve sıcaklık ve nem değerlerini yüzde ve Santigrat ölçeğinde uygun bir sayıya çıkarır. Sistemin üçüncü kısmı ise LCD'de nem ve sıcaklığı gösterir.
Bu projenin çalışması tek telli seri iletişime dayanmaktadır. Önce arduino DHT modülüne bir başlangıç sinyali gönderir ve ardından DHT sıcaklık ve nem verilerini içeren bir yanıt sinyali verir. Arduino, biri nem, ikincisi sıcaklık olmak üzere iki kısımda toplayıp ekstrakte ederek 16x2 LCD'ye gönderir.
İşte bu projede DHT11 adlı bir sensör modülü kullandık. Bu modül, kalibre edilmiş dijital sinyal çıkışlı bir nem ve sıcaklık kompleksine sahiptir, DHT11 sensör modülü, kalibre edilmiş bir dijital çıkış sinyali veren nem ve sıcaklığı algılamak için kombine bir modül olduğu anlamına gelir. DHT11 bize çok hassas nem ve sıcaklık değeri verir ve yüksek güvenilirlik ve uzun vadeli istikrar sağlar. Bu sensör, dirençli tipte bir nem ölçüm bileşenine ve dahili 8-bit mikro denetleyiciye sahip NTC tipi sıcaklık ölçüm bileşenine sahiptir.
DHT11 modülü seri iletişim, yani tek kablolu iletişim üzerinde çalışır. Bu modül, verileri belirli bir zaman aralığına ait darbe dizisi biçiminde gönderir. Arduino'ya veri göndermeden önce, bir zaman gecikmeli başlatma komutuna ihtiyaç duyar. Ve tüm işlem süresi yaklaşık 4 ms'dir. Tam bir veri iletimi 40 bittir ve bu işlemin veri formatı aşağıda verilmiştir:
8-bit integral RH verisi + 8-bit ondalık RH verisi + 8-bit integral T verisi + 8-bit ondalık T verisi + 8-bit kontrol toplamı.
İşlemi Tamamla
Öncelikle arduino, DHT'nin algılanmasını sağlamak için 18µs gecikmeli DHT11'e yüksekten düşüğe başlatma sinyali gönderir. Ve sonra arduino veri hattını çeker ve DHT'nin cevabı için 20-40µs bekleyin. DHT, başlatma sinyalini algıladığında, arduino'ya yaklaşık 80 µs'lik zaman gecikmeli düşük voltaj seviyesinde bir yanıt sinyali gönderecektir. Ve sonra DHT kontrolörü veri hattını yukarı çeker ve DHT'nin veri gönderme düzenlemesi için onu 80 µs tutar.
Veri yolu düşük voltaj seviyesindeyken bu, DHT11'in yanıt sinyali gönderdiği anlamına gelir. Bir kez yapıldığında DHT, veri aktarımını hazırlamak için tekrar 80µs'lik veri hattı yukarı çeker.
Her bit için DHT tarafından arduino'ya gönderilen veri formatı 50µs düşük voltaj seviyesiyle başlar ve yüksek voltaj seviyeli sinyalin uzunluğu data bitinin "0" veya "1" olup olmadığını belirler.
Önemli bir şey, direnç değerinin yukarı çekildiğinden emin olmaktır çünkü DHT sensörünü <20 metrelik mesafeye yerleştiriyorsak, 5k yukarı çekme direnci önerilir. DHT'yi 20 metreden daha uzun bir yere yerleştiriyorsanız, uygun değerde yukarı çekme direnci kullanın.
Devre Şeması ve Açıklama
4-bit modunda doğrudan arduino'ya bağlanan sıcaklık ve nemi görüntülemek için bir likit kristal ekran kullanılır. LCD'nin pimleri yani RS, EN, D4, D5, D6 ve D7 arduino dijital pinleri 2, 3, 4, 5, 6 ve 7'ye bağlanır ve ayrıca bir DHT11 sensör modülü de arduino'nun 12 numaralı dijital pinine bağlanır. 5k kaldırma direnci.
Programlama Açıklaması
Programlamada, DHT11 sensörü ve LCD ekran modülü için önceden oluşturulmuş kitaplıkları kullanacağız.
Ardından LCD ve DHT sensörü için pinler tanımladık ve kurulumdaki her şeyi başlattık. Sonra bir döngüde dht işlevini kullanarak DHT sensörünü okur ve ardından bazı dht işlevlerini kullanarak nem ve sıcaklığı alır ve bunları LCD'de görüntüleriz.
Burada derece sembolü, özel karakter yöntemi kullanılarak oluşturulur.