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”

NodeRed – Temel Node’lar

Node-RED paleti, temel yapı taşı olarak kullanılan bir grup node’dan (core nodes) oluşur. Bu başlıkta bu node’lar hakkında bilinmesi gereken temel bilgiler verilmiştir. Node’ları çalışma alanına sürükleyip seçtiğinizde kenar çubuğunda kısa açıklamaları gözükür.

Okumaya devam et “NodeRed – Temel Node’lar”

NodeRed – Dashboard’u Yüklemek ve Ayarlamak

Dilerseniz önümüzdeki uygulamalarda çokça kullanacağımız ve aşağıda ekran görüntüsünü yer alan kontrol panel bileşenlerini Node-RED kurulumumuza dâhil edelim. Bunun için internet bağlantısına ihtiyacımız olacak.

node-red-dashboard görsel bileşenleri

Okumaya devam et “NodeRed – Dashboard’u Yüklemek ve Ayarlamak”

NodeRED – Import ve Export

Daha öncede bahsettiğim gibi Node-RED sosyal bir uygulamadır ve hazırlanan akışların kolayca paylaşılabilmesine olanak tanır. Diyelim ki bir akışı farklı bir konuma yedeklemek ya da başka birisi ile paylaşmak istiyorsunuz. Bunun için yapmanız gereken sağ üstte yer alan ana menüden Export seçeneğine tıklatmak. Export’a tıklattığınızda aşağıdaki gibi akışımızın JSON kodunun yer aldığı bir pencere açılır. Pencerenin en üstünde yer alan selected nodes, current flow ve all flows seçenekleri neyin dışarı aktarılacağını seçmenizi sağlar. Bunlar sırasıyla akış düzenleyicisinde seçili olan node’ları, aktif akışın tamamını (ekranda gözüken) ve Node-RED’in içindeki tüm akışları dışarı aktarabileceğiniz seçeneklerdir.

Okumaya devam et “NodeRED – Import ve Export”

NodeRed Çalışma Alanı ve Akış Editörü

Node-RED geliştirme ortamının ekran tasarımı 4 bölümden oluşur. Bunlar node paleti (1), başlık (2), kenar çubuğu (3) ve çalışma alanıdır (4). Başlık Deploy düğmesi, ana menü ve eğer etkinleştirilmişse kullanıcı menüsünden oluşur. Ekranın solunda yer alan palet çeşitli kategoriler altına dağıtılmış şekilde akışlarda kullanılabilecek node’ları bulundurur. Orta kısım ise çalışma alanıdır, akışlar burada oluşturulur. Kenar çubuğu ise çok amaçlı bir kullanıma sahiptir, Node-RED’in ve akışların yapılandırma seçenekleri ve yardım dokümanları burada görüntülenir. Aşağıdaki görsel, tarif edilen yerleşimi göstermektedir.

Okumaya devam et “NodeRed Çalışma Alanı ve Akış Editörü”

NodeRed Kurulum ve Ayarlar

Kurulum ve Ayarlar

Node-RED’i kurmadan önce Raspbian’ın en son sürümüne sahip olduğunuzdan emin olun. Kitabın ilk konularında kullandığınız işletim sisteminin sürümünü öğrenmeyle ilgili bir başlık yer alıyordu. Node-RED’i Raspberry Pi’a kurmak için aşağıdaki komutu verebilirsiniz.

pi@raspberrypi:~ $ sudo apt-get install nodered

Node-RED, kurulum için yaklaşık olarak 100MB’lık disk alanına ihtiyaç duyar. Kurulumun tamamlanması biraz zaman alabilir, sabırla bekleyin. Kurulum tamamlandıktan sonra Node-RED’i çalıştırmak için aşağıdaki gibi node-red-pi komutunu verebilirsiniz.

Okumaya devam et “NodeRed Kurulum ve Ayarlar”

Node-RED Nedir?

Node-RED, donanım cihazlarını, API’ları ve çevrim içi hizmetleri yeni ve ilginç yollarla birbirine bağlamak için geliştirilmiş görsel bir programlama aracıdır. Ağa bağlı donanım nesnelerini, API’ları ve çeşitli çevrim içi hizmetleri IoT (Internet of Things) kapsamında bir araya getirilmesi için akış tabanlı görsel programlama ortamı sağlar. Elektronik kontrol otomasyonu senaryoları ve IOT uygulamalarının çok az ya da hiç kod yazmadan görsel bir arabirimle oluşturulabileceği Node-RED ortamı ile uygulamalar, web tabanlı olarak herhangi bir tarayıcı üzerinden kontrol edilebilir, canlı olarak izlenebilir.

Okumaya devam et “Node-RED Nedir?”

MEB’den Raspberry Pi Kursları

Milli Eğitim Bakanlığı Yenilik ve Eğitim Teknolojileri Genel Müdürlüğü tarafından 2 yeni kurs yayınlandı. Öğretmen Bilişim Ağı üzerinden yayınlanmaya başlanan Raspberry Pi Uygulamaları ve Projelerle Raspberry Pi isimli kurslardan ÖBA’ya giriş yaparak yararlanabilirsiniz. Kursların başlangıç ve orta seviye için oldukça iyi kurgulanmış ve üretilmiş olduğunu belirtmek isterim. Raspberry Pi’a ilgi duyanlar, hobi ve proje amaçlı ilgilenenler ile başlangıç yapmak isteyen öğretmenler için biçilmiş kaftan.

Okumaya devam et “MEB’den Raspberry Pi Kursları”

Temel Elektronik Bileşenler

Raspberry Pi gibi bir teknoloji harikasının yeni bir devrimi körüklediğini söyleyebiliriz. Bu devrim isteyen herkesin (en azından meraklı olan) yüksek teknolojiye erişebilmesini ve bu teknolojiyi kullanarak hayallerini gerçekleştirebilmesinin önünü açıyor. Peki, Raspberry Pi nasıl ve neden imal edilmiştir. Bunun basit bir cevabı vardır, kumdan. Bildiğiniz kumsal kumu. Kum silikonun ana maddesidir. İşte bu silikon, Raspberry Pi’ı ve diğer modern platformları, hatta elektronik biliminin kendisini var eden temel maddedir. Bir elektronik devre ağırlıklı olarak silikon kullanılarak üretilen bazı temel bileşenlerden oluşur. Bu başlıkta elektroniği ve Raspberry Pi’ı var eden elektronik bileşenlerin çalışma biçimi ve teknik özellikleri hakkında çok fazla detaya girmeden temel bilgiler vereceğim. Aynı zamanda bu başlıktaki bilgiler Raspberry Pi’ı dış dünya ile konuştururken de bize ışık tutacak. Eğer temel elektrik kanunlarını öğrenebildiyseniz elektronik karmaşık değildir, “güzeldir”, temelleri iyi anlaşıldığında da hızlı bir şekilde ilerleyerek uygulayabilmenize imkân sağlar.

Okumaya devam et “Temel Elektronik Bileşenler”

Temel Elektrik Kanunları

Bu başlıkta, elektrik biliminin nicel özellikleri olan direnç, akım ve gerilim kavramları tanıtılarak bu kavramlardan türetilen güç ve enerji kavramları hakkında temel bilgiler verilecek, elektronik bir cihaz olan Raspberry Pi’ın tükettiği elektrik enerjisi temel elektrik kanunları açısından irdelenecektir. Eğer bu kavramlar hakkında bilginiz olduğunu düşüyorsanız bu konuyu atlayabilirsiniz.

Okumaya devam et “Temel Elektrik Kanunları”

Raspberry Pi’ı Bir Kablosuz Ağ Erişim Noktasına Dönüştürmek

Dâhili kablosuz ağ adaptörünü kullanarak Raspberry Pi’ı bir kablosuz erişim noktası haline getirebilirsiniz. Bu sayede etraftaki mobil (kablosuz) cihazlarınızdan hem Raspberry Pi’ın kendisine erişebilir hem de Raspberry Pi’ın kablolu ağ bağlantısını internete girmek için kullanabilirsiniz. Raspberry Pi’a kablosuz erişim noktası işlevini kazandırmak için, haricen bir program yüklemeye gerek yoktur. SystemD ile ilgili bölümde de açıklandığı üzere; güncel Linux dağıtımlarında (Raspberry Pi OS dâhil) initd mekanizması yerine SystemD mekanisması tercih edilmeye başlanmıştır. İleride initd tamamen ortadan kalkacak. Raspbian, halen (2019) kısmi olarak initd alt yapısını kullanmaya devam etmektedir. Bu başlıkta SystemD altyapısının iki önemli parçası olan systemd-networkd ve wpa_supplicant servislerini kullanarak Raspberry Pi’ımızı bir kablosuz erişim noktasına dönüştüreceğiz.

Okumaya devam et “Raspberry Pi’ı Bir Kablosuz Ağ Erişim Noktasına Dönüştürmek”

Kablosuz Ağ Cihazlarını Verimli Şekilde Konumlandırmak

En iyi kablosuz sinyal kalitesi için Raspberry Pi veya kablosuz erişim noktasının yerini ayarlamak istiyorsanız anlık olarak link bilgilerini görüntüleyebileceğiniz şöyle bir komut kullanabilirsiniz. Cihazların fiziksel yeri kadar etraflarındaki eşyaları da bir radyo frekans engeli olarak düşünmeli, varsa cihazların antenlerinin yönünü de hesaba katmalısınız:

Okumaya devam et “Kablosuz Ağ Cihazlarını Verimli Şekilde Konumlandırmak”