NodeRed hakkında daha fazla kaynak

Node-RED hakkında bilgi edinebileceğiniz en güncel ve doğru kaynağın adresi nodered.org olan web sitesidir. Sitedeki Documentations bağlantısı oldukça iyi organize edilmiş ve doyurucu bir kaynak sunar. Ayrıca nodered.org üzerinden ulaşabileceğiniz forum sistemi yardımlaşmayı seven Node-RED kullanıcıları ile doludur. Node-RED konusunda destek ve bilgi alabileceğiniz diğer kaynaklar şunlardır.

Okumaya devam et “NodeRed hakkında daha fazla kaynak”

NodeRed – UYGULAMA 11: Hava Durumunu Görüntülemek

Bu uygulamada yaşadığımız bölgenin hava durumunu, bir çevrim içi servisten çekerek grafiğe yansıtacağız. Hava durumu bilgilerini çekmek için kullanacağımız openweathermap.org (OWM) adresinde yer alıyor. OWM günlük 1000 isteğe kadar hava durumu verilerini XML veya JSON biçimlerinde ücretsiz olarak sağlıyor. OWM gibi birçok servis mevcut. Bu uygulamada bu tarz servislerden nasıl veri çekileceği ve grafiğe dönüştürüleceğini örneklendirilecektir.

Okumaya devam et “NodeRed – UYGULAMA 11: Hava Durumunu Görüntülemek”

NodeRed – UYGULAMA 10: Raspberry Pi İçin Sistem Monitörü Oluşturmak

Node-RED ile Raspberry Pi için bir sistem monitörü oluşturmak oldukça kolaydır. Oluşturacağımız sistem monitörü ile CPU, RAM ve Disk durumunu canlı olarak takip edeceğiz ve değişim grafiğini oluşturacağız. Bunun için ihtiyacımız olan node node-red-contrib-os adlı node’dur. Sahip olacağımız dashboard’un ekran görüntüsü aşağıda yer alıyor.

Okumaya devam et “NodeRed – UYGULAMA 10: Raspberry Pi İçin Sistem Monitörü Oluşturmak”

NodeRed – UYGULAMA 9: Sensör Değerlerini Veritabanına Kaydetmek

Uygulama 7’de DHT11 sensörünü okuyarak sıcaklık ve nem grafiği çizdirmiştik. Bu uygulamada ise grafiğini çizdirdiğimiz bu değerleri MariaDB (MySQL) veri tabanında depolayacağız.

Öncelikle kitabın ilgili bölümünde anlatıldığı gibi MariaDB veri tabanı sunucusunu Raspberry Pi’a kurun ve mariadb konsolunu aşağıdaki gibi çalıştırarak bir veri tabanı ve tablo oluşturun. Veritabanımızın adı sensorler, tablomuzun adı dht11 ve tablonun içindeki alanlar sırasıyla zaman, sensor, deger seklinde olacak.

Okumaya devam et “NodeRed – UYGULAMA 9: Sensör Değerlerini Veritabanına Kaydetmek”

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.

Okumaya devam et “NodeRed – UYGULAMA 8: DHT11/DHT22 Sıcaklık Sensörünü Okumak”

NodeRed – UYGULAMA 7: Eposta Mesajı Göndermek

Önceki uygulamamızda rölenin durum güncellemeleri Telegram sohbetine mesaj olarak geliyordu. Bu uygulamada, aynı işlevi e-posta göndererek gerçekleştireceğiz. Tasarladığımız akışın şeması aşağıda yer alıyor.

Okumaya devam et “NodeRed – UYGULAMA 7: Eposta Mesajı Göndermek”

NodeRed – UYGULAMA 6: Telegram Uygulamasına GPIO Durumunu Göndermek

Hatırlarsanız ikinci uygulamamız hem dashboard üzerinden hem de fiziksel anahtar ile bir rölenin kontrol edilmesini sağlıyordu. Yani, kullanıcı röleyi dilerse web panelinden (dashboard) dilerse de fiziksel anahtarı kullanarak etkinleştirebiliyordu ve bu ikisi etkileşimli olarak birbirinden haberdardı.

Bu uygulamayı bahsettim röle kontrol uygulaması üzerine inşa edeceğiz. Yapacağımız şey röle etkin olduğunda Telegram’a uygulamamıza rölenin etkinleştirildiğini veya rölenin etkisizleştirildiğini bildirmek olacak. Gerçekleştireceğimiz uygulamanın akış şeması aşağıdaki gibidir.

Okumaya devam et “NodeRed – UYGULAMA 6: Telegram Uygulamasına GPIO Durumunu Göndermek”

NodeRed – UYGULAMA 5: Telegram Uygulamasına Bildirim Göndermek

Telegram hesabınız varsa ve telefon uygulamasını kullanıyorsanız, Node-RED’in Telegram uygulamanıza mesaj göndermesini sağlayabilirsiniz. Örneğin bir hareket sensörünün tespit ettiği hareketi veya sıcaklık sensörünün değerini Telegram uygulamanıza otomatik olarak gönderilmesini sağlayabilirsiniz. Node-RED ile kurmuş olduğunuz otomasyon sisteminde bir bilgilendirme kanalı olarak anlık mesajlaşma uygulamalarını kullanmak oldukça yaygındır. Aynı yöntemi Node-RED akışlarınıza mesajlaşma uygulaması üzerinden komut göndermek için de kullanabilirsiniz.

Okumaya devam et “NodeRed – UYGULAMA 5: Telegram Uygulamasına Bildirim Göndermek”

NodeRed – UYGULAMA 4: TTS ile Metni Sese Dönüştürmek

Önceki uygulamamızı biraz daha geliştirerek Röle kontrolüne ses özelliği ekleyeceğiz. Bu uygulamada röle enerjilendiğinde Audio output node’unu kullanarak “Röle açıldı” veya “Röle kapandı” sesli mesajlarının TTS (Text To Speach) özelliği ile hoparlörden seslendirilmesini sağlayacağız. Ses, tarayıcı üzerinden oluşturulacağından tarayıcıyı çalıştıran bilgisayarın ses ayarlarının etkin olduğundan emin olun. Dilerseniz önceki uygulamayı kütüphaneye kaydederek veya dışarı aktararak yedekleyebilirsiniz. Bu konu hakkında detaylı bilgi “Import ve Export” başlığında verilmiştir.

Okumaya devam et “NodeRed – UYGULAMA 4: TTS ile Metni Sese Dönüştürmek”

NodeRed hakkında daha fazla kaynak

Node-RED hakkında bilgi edinebileceğiniz en güncel ve doğru kaynağın adresi nodered.org olan web sitesidir. Sitedeki Documentations bağlantısı oldukça iyi organize edilmiş ve doyurucu bir kaynak sunar. Ayrıca nodered.org üzerinden ulaşabileceğiniz forum sistemi yardımlaşmayı seven Node-RED kullanıcıları ile doludur. Node-RED konusunda destek ve bilgi alabileceğiniz diğer kaynaklar şunlardır.

Okumaya devam et “NodeRed hakkında daha fazla kaynak”

NodeRed – UYGULAMA 3: Herhangi Bir Web İçeriğini Parsellemek

Önceki uygulamada bir çevrim içi servis tarafından sağlanan verileri projemizde kullanmıştık. Gelen veri JSON biçiminde olduğu için de bu konuda hiç zorlanmamıştık. Çünkü hangi verinin XML ağacı içindeki hangi etiketler arasında yer aldığı belliydi. Bu uygulamamız da ise web ortamında bulunan ve standart yollarla sunulmayan verilerin nasıl elde edileceğini (parselleneceğini) ve Node-RED ortamında kullanılacağını örnekleyeceğiz. Bunun için HTTP Request (HTTP isteği) ve HTML node’larından faydalanacağız. HTTP Request ile Doviz.com sitesindeki güncel altın bilgisini alarak Node-RED ortamına taşıyacağız. Node-RED ortamına taşıdıktan sonra dilerseniz veri tabanına kaydedebilir, bir bildirim oluşturabilir veya bir gösterge üzerinde görüntülenmesini sağlayabilirsiniz. Bu tamamen hayal gücünüze kalmış. Aşağıda döviz.com sitesinin ana sayfası gözüküyor.

doviz.com tesinin ana sayfasının ekran görüntüsü

Okumaya devam et “NodeRed – UYGULAMA 3: Herhangi Bir Web İçeriğini Parsellemek”

NodeRed – UYGULAMA 2: Dashboard Aracılığıyla Bir Röle’nin Kontrolü

Bu uygulamada, önceki uygulamamızı biraz daha geliştirerek Node-RED’in interaktif ve görsel dashboard’unu (kontrol paneli) kullanacağız. Dashboard’a yerleştireceğimiz bir anahtar ile rölenin tetiklenmesini sağlayacağız. Bu arada fiziksel bir anahtarımız daha olacak. Yani, dilersek hem bu anahtar aracılığıyla hem de web tabanlı dashboard üzerinden rölemizi kontrol edeceğiz. Bu uygulamayı uzaktan çalıştırmak istediğiniz cihazlar için kullanabilirsiniz. Örneğin uzaktan kombiyi çalıştırmak veya bahçeyi sulamak vb. Bu uygulama için “Çevrimiçi Kütüphane” başlığında anlatıldığı üzere node-red-dashboard adlı node’un yüklü olması gerekiyor. Kurmamız gereken devrenin bağlantı şeması aşağıdaki gibidir.


Devrenin bağlantı şeması

Okumaya devam et “NodeRed – UYGULAMA 2: Dashboard Aracılığıyla Bir Röle’nin Kontrolü”

NodeRed – UYGULAMA 1: Buton ile LED’in Kontrolü

Node-RED’i kullanarak gerçekleştireceğimiz bu ilk uygulamada, Raspberry Pi’a bağlı bir butona basılıp basılmadığını algılatarak bir LED’i yakacağız. Raspberry Pi’ın GPIO.14 pin’ine bir buton, GPIO.23 pin’ine de bir LED bağlanmıştır. Bağlantı şemasını aşağıda görebilirsiniz.

 
Uygulama devremizin bağlantı şeması

Okumaya devam et “NodeRed – UYGULAMA 1: Buton ile LED’in Kontrolü”

NodeRed – İkinci Akışımızı Oluşturalım

Bu akışımızda Node-RED kullanarak internetten canlı veri çekeceğiz. Örnek olarak Türkiye Cumhuriyeti Merkez Bankasının XML biçiminde sunmuş olduğu döviz kurlarını kullanarak seçeceğimiz bir dövizin satış bilgisini debug panelinden görüntüleyeceğiz. Merkez bankası döviz kurları ile ilgili verileri aşağıdaki adresten sunmaktadır. Öncelikle bu sayfayı bir web tarayıcısı ile ziyaret ederek inceleyin.

https://www.tcmb.gov.tr/kurlar/today.xml

Okumaya devam et “NodeRed – İkinci Akışımızı Oluşturalım”

NodeRed – İlk Akışımızı Oluşturalım

İlk akışımız bir Inject node tarafından gönderilen mesajın debug node aracılığı ile alınarak debug panel de görüntülenmesi olacaktır. Daha önce bahsedildiği gibi inject node genellikle akış kolunun başına yerleştirilerek akışın kullanıcı tarafından başlatılabilmesini sağlar. Inject node seyahatine başlayacak olan mesaj nesnesinin payload özelliğine istediğimiz veriyi koyabilir. Bu veri o anki zaman bilgisi olabileceği gibi sayı veya herhangi bir metin de olabilir. Debug node ise kendine ulaşan mesaj (msg) nesnesinin içeriğini detaylı şekilde görebilmemizi sağlar. Şimdi aşağıdaki akışı gerçekleştirmek üzere inject ve debug node’ları çalışma alanına sürükleyerek birleştirin.

Inject ve debug node’lardan oluşan ilk akışımız

Okumaya devam et “NodeRed – İlk Akışımızı Oluşturalım”

NodeRed – Hataları Yakalamak

Projenizde kullandığınız node sayısı ve akışlar aracılığıyla kurulan etkileşimler arttıkça hata çıkma olasılıkları da artar. Bu nedenle hataları yakalayacak yöntemleri bilmeli ve kullanmayı alışkanlık haline getirmelisiniz.

Her programlama dilinde olduğu gibi, Node-RED de akışlardaki hataların tespit edilebilmesi/yakalanabilmesi için çeşitli yollar vardır. Bunlardan ilki ve en çok kullanılanı debug paneldir. Diğeri ise konsol günlüğüdür. Bu günlüğün görüntülenebilmesi için Node-RED ile birlikte gelen node-red-log aracı kullanılır. Bu  şekilde günlüğe yazılan hatalar sadece onları görmek açısından faydalıdır. Akışın çalışması sırasında onları kontrol ederek farklı bir aksiyon alabilmeniz için bir fayda sağlamaz.

Okumaya devam et “NodeRed – Hataları Yakalamak”

NodeRed – Gömülü Olarak Kullanmak

Node-RED’i, NodeJS uygulamanız içerisinden doğrudan çalıştırabilirsiniz. Bu genellikle Node-RED’in akış editörünü daha büyük bir uygulama içinde sanki onun bir parçasıymış gibi kullanmak gerektiğinde yapılır. Port çakışması olmaması için Node-RED servisini durdurmalı ve devre dışı bırakmalısınız. Ardından aşağıdaki kodu NodeJS uygulamanıza dâhil ederek Node-RED’i uygulamanız içinden kullanabilirsiniz.

Okumaya devam et “NodeRed – Gömülü Olarak Kullanmak”