NodeRed – UYGULAMA 8: DHT11/DHT22 Sıcaklık Sensörünü Okumak

DHT11 ve DHT22 sensörleri sıcaklık ve nemi aynı anda okuyabilen sık kullanılan sensörlerdir. Bu uygulamamızda çevrim içi kütüphaneden yükleyeceğimiz DHT11/22 node’u ile sıcaklık ve nem bilgisini okuyarak, gösterge ve grafikler eşliğinde dashboard’da görüntüleyeceğiz. Yapacağımız çalışmanın dashboard görüntüsü aşağıda yer almaktadır.

Bu uygulamada dilerseniz DHT11, dilerseniz de DHT22 sensörünü kullanabilirsiniz. Dilerseniz önce çevrim içi kütüphaneden okumayı gerçekleştirecek olan node’u yükleyelim ve ardında sensörümüzü Raspberry Pi’ın GPIO port’una bağlantısını yapalım. Node’u yüklemek için ana menüden Manage palette seçeneğine tıklatarak sırasıyla Palette ve Install sekmelerine tıklatın. Arama kutusuna aşağıdaki gibi DHT11 yazarak node-red-contrib-dht-sensor adlı node’u yükleyin.

DHT11 ve DHT22 sensörlerinin bacak bağlantısı aşağıdaki gibidir. En sağdaki pin GND, en soldaki Vcc (+3.3v) ve onun yanındaki ise DATA pin’idir. DHT11’in okuma isteğine cevabı 1 sn. civarındadır. DHT22 ise 2 saniyede bir okuma yapabilir. Ayrıca sıcaklık ölçümünde DHT22 0.5 derece hata toleransına sahipken DHT11’de bu değer 2 derecedir. DHT11’in Data pin’i GPIO19/Fiziksel 12 pin’ine bağlıdır. DHT11’in Raspberry Pi’a bağlantısını aşağıdaki gibi yapalım:

Dilerseniz şimdi de akışımızı oluşturalım. Aşağıdaki akışı oluşturabilmemiz için, daha önce ayrı bir başlıkta anlatılan Dashboard bileşenlerinin yüklenmesi gerekir. Aşağıdaki akışı kısaca açıklamak gerekirse; Akış inject node ile belli zaman aralıklarıyla (5sn) başlatılarak dht11 node’unun başlatılması sağlanmaktadır. dht11 node da çıktısını function node aktarmakta, function node’da gelen mesaj içinden sıcaklık ve nem değerlerini ayırarak iki ayrı koldan birer Gauge ve Chart (grafik) node’unu beslemektedir.

Inject node tarafından tetiklenen DHT sensörü ve dashboard bileşenleri

Function node’un neden kullanıldığını açıklamak gerekirse; dht11 node’u sensörü okuduktan sonra çıktısını aşağıdaki yapıda vermektedir. Payload özelliğinde sıcaklık bilgisi humudity özelliğinde ise nem bilgisi yer almaktadır. Function node’un ardından gelen Gauge ve Chart ise görüntüleyecekleri değerleri sadece msg.payload özelliğinden okuyacak şekilde tasarlanmışlardır. Bu nedenle function node kullanarak iki ayrı mesaj üreterek Chart ve Gauge node’unu besledik.

Function node’un JavaScript kodu aşağıdaki gibidir.

Öncelikle Gauge ve Chart node’ların dashboard üzerindeki yerleşimlerini belirlemek için Ana menü>View>Dashboard seçeneğine tıklatın. Ekranın sağındaki panelde gözüken Layout sekmesine aşağıdaki gibi 1 adet Tab ve Tab’ın altına iki adet Group ekleyin.

Şimdi akışı oluşturmak için aşağıdaki adımları gerçekleştirin:

  1. İlgili node’ları paletten alarak çalışma alanı üzerinde yukarıdaki gibi birleştirin.
  2. Dht11 node’unun özellikler panelinden Sensor model’ini DHT11 (veya hangisini kullanıyorsanız) seçin. Pin numbering değerini Physical rev2 ve Pin number değerini de 12 olarak seçin.
  3. Function node’un özellikler panelindeki Function kutusuna yukarıda verilmiş olan JavaScrip kodunu yazın.
  4. Sıcaklık ve Nem değerlerini gösterecek olan her iki Gauge node’unun özellikler panelinden şu değişiklikleri yapın:
  1. Group: [Tab 1] Group 1
    1. Type: Gauge (Gösterge türü)
    1. Label: Sıcaklık (Göstergenin açıklaması)
    1. Units: ℃ veya % (Birim sembolü)
    1. Range Max: 50 (En yüksek sıcaklık/Nem)
  • Sıcaklık ve Nem değerlerinin değişimini gösterecek olan her iki Chart node’un özellikler panelinden uygun olan şu değişiklikleri yapın:
  1. Group: [Tab 1] Group 2
    1. Label: Sıcaklık Grafik/Nem Grafik
    1. Y-axis: 1-50 / 1-100
    1. Enlarge points: İşaretleyin
  • Gauge ve Chart’ın dashboard üzerindeki yerleşimlerini ayrı bir adımda belirleyeceğiz.

Node’larımızı yapılandırdıktan sonra Gauge ve Chart’ın dashboard üzerindeki boyut ve konumlarını ayarlamak için tekrar Ana menü>View>Dashboard seçeneğine tıklatın ve Tab 1’in düzenini görüntüleyin. Bunun için Tab 1’in sağ tarafındaki layout simgesine tıklatın. Aşağıdaki görselde gözüktüğü gibi Group 1’in genişliğini 6 birim Group 2’nin genişliğini de 12 birim olarak belirleyin. Gauge ve Chart’ların pozisyonunu fare ile sürükleyerek ayarlayabilirsiniz. Boyutlarını ayarlamak için, görselde ok işaretleri ile gösterilmiş köşelerindeki kilit işaretine tıklatarak kilidi açın ve istediğiniz boyutlandırmayı yaptıktan sonra Done düğmesine tıklatın. Artık, akışımız ve dashboard’umuz hazır olduğuna göre Deploy düğmesine tıklatarak hazırladığınız akışın işleme koyulmasını sağlayabiliriz.

Node-RED’in çevrim içi kütüphanesinde birçok farklı özellik ve görünüşte Chart ve Gauge node’unu bulmak mümkündür. Kütüphanenin sayfasını ziyaret ederek Chart ve Gauge anahtar kelimeleri ile arama yapabilirsiniz. Diğer node’ların da kullanımları benzerdir.

Dashboard’da kullandığımız Chart node aynı anda birden fazla grafiği çizebilir. Bunun için payload ile birlikte farklı topic değerleri gönderilmesi yeterlidir. Aşağıdaki akışı ve function node’una ait JavaScript kodunu inceleyin.

Yazar: Özgür Koca

Yazar - Tankado.com

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.