- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
Giriş
Bu bölümde, önceki bölümde hazırladığımız Raspberry Pi cihazımızı kullanarak Node-Red kurulumunu yapacağız.
Edge Computing ve IOT ara yüzü olarak kullanacağımız bu SBC (Single Board Computer) yani tek kart bilgisayarımızda, Node-Red, temel programlama bilgimiz ile kolayca hazırlayacağımız programların çalıştırılmasında önemli bir araçtır. Bu bölümde temel olarak güvenlik fonksiyonlarını da devreye almayı göstereceğim.
Kurulum anlatım videosu Youtube kanalımdan görüntülenebilir.
Node-Red Kurulumu
Öncelikle Node-Red’in web sitesinden, dökümantasyon sekmesine geliyoruz.
Buradan “Getting Started” yani başlanıç hazırlığı bölümüne tıklıyoruz.
Görebileceğimiz gibi başka ortamlarda yani bildiğimiz x86 mimarisi bilgisayarlar, Raspberry Pi cihazı, Docker veya bulut ortamları kullanan sistemler gibi ortamlarda da bu sistemi kurmak ve çalıştırmak mümkün ve kurulum tarifleri bulunmakta. Biz ARM işlemcili ve Debian tabanlı Linux işletim sistemi olan Raspberry OS kullanan Raspberry Pi cihazımıza kurulum yapacağımız için Node-Red Raspberry Pi kurulumu kısmına giriyoruz.
Kurulum işlemini gerçekleştirmek için, Raspberry Pi cihazımızla SSH bağlantısını gerçekleştirelim. Önceki bölümde hazırladığımız Raspberry Pi cihazımızın bağlantısını hatırlamak amacıyla tekrar komut olarak belirtiyorum.
ssh pi@kontaktorpiveya
ssh pi@192.168.10.100
Daha sonra home klasörümüzde iken Node-Red kurulum sayfasındaki kodu kopyalayıp, terminale faremizin sağ tuşu ile tıklayarak kurulum işlemini başlatıyoruz. Her zaman için Node-Red sayfamızdaki kodu kullanmamız önemlidir. Ben kodun ne şekilde olduğunu göstermek için buraya da yazıyorum. Ancak güncel kalmak için bu kodu değil o sayfadaki kodu kullanmanızı tavsiye ediyorum.
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)Kurulum işlemi için internet bağlantısı gerekmektedir ve cihazımızda internet bağlantı kalitesine göre belirli bir süre tutacaktır. Benim yaptığım kurulum 2 dakika sürmüştür. Bütün işlemler bittiği zaman, “All done” diye başlayan bir yazı çıkacaktır.
Otomatik başlatma ve güvenlik ayarları
Kurulum işlemi bitti ancak Node-Red sistemi şu anda çalışır halde değil. Bilgisayarımız açıldığı zaman herhangi bir müdahale olmadan sistemin otomatik olarak başlaması için servis listesine eklememiz gerekmektedir. Bunun için aşağıdaki komutu yazıyoruz.
sudo systemctl enable nodered.serviceArtık Node-Red, bilgisayarımız çalıştığı zaman otomatik olarak başlayıp, yazdığımız programları çalıştıracaktır. Ancak bunu istemiyorsanız ve yaptığımız bu işlemi geri almak istiyorsak aşağıdaki komutu yazarak servis olarak başlatmayı kapatabiliriz.
sudo systemctl disable nodered.serviceİşlemin devreye girmesi için Raspberry Pi’nin yeniden başlaması gerekmektedir. Çalıştığından emin olmak için aşağıdaki komutu yazıp yeniden başlatıyoruz.
sudo rebootRaspberry Pi cihazımız yeniden başladıktan sonra çalıştığını görmek için kullandığımız bilgisayarda bir tarayıcı açıp adres satırına aşağıdaki adresi yazıyoruz:
http://kontaktorpi:1880Ayrıca benim sistemimdeki IP adresi ile çalıştırmak için aşağıdaki adresi de yazabiliriz:
http://192.168.10.100:1880Gördüğünüz gibi iki adres de aynı sayfayı açmaktadır. Daha başka bir işlem yapmadan, güvenlik amacıyla, bu ara yüze kullanıcı adı ve şifre ile girmek için tekrar SSH bağlantısı ile bağlanıyoruz. SSH bağlantısını yaptıktan sonra şifre bölümlerini etkinleştirmeden önce, kullanacağımız şifreyi “hash”lemek için aşağıdaki komutu yazıyoruz
node-red admin hash-pwBunu yazdıp klavyemizdeki enter tuşuna bastıktan sonra bize şifremizi soracaktır. Şifremizi yazdıktan sonra çıkan $ ile başlayan yazıyı daha sonra kullanmak için kopyalıyoruz. Kopyalamak için seçmemiz ve sağ tuş ile tıklamamız yeterlidir. Örnek olarak bende aşağıdaki kod çıktı. Dikkat ettiyseniz sonundaki noktalama işareti de bu veriye dahil. Bu sayede şifremizi de şifrelemiş oluyoruz.
$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.Kullanıcı adı ve şifre girişini etkinleştirmek için aşağıdaki kodu yazarak, Node Red sisteminin ayar dosyasında değişikliklerimizi yapacağız. Bizim kullanıcı adımız “pi”. Dolayısıyla aşağıdaki kodu yazarken kendi kullanıcı adınız ile yazmanız gerekmektedir.
nano /home/pi/.nodered/settings.jsBurada “Nano” uygulaması ile settings.js dosyasının içinde değişikliklerimizi yapacağız. “Nano” uygulamasını Windows’taki Not Defteri uygulaması gibi düşünebiliriz.
Bu içeriği oldukça fazla olan dosyada ayarlama yapacağımız yeri bulmak için klavyemizin yön tuşları ile satırlar arasında gezebilir veya daha hızlı bir sonuç için arama yapabiliriz. Arama yapmak için “CTRL+W” tuşlarına basarak arama kısmını açıyoruz ve bu kısma “adminAuth” yazıyoruz. Bu da bize aşağıdaki resimdeki gibi gözüken yere getiriyor. Bu bölümdeki kodlar aslında yazılmış ancak etkinleştirilmemek için “//” kullanılarak yorum haline getirilmiş. Biz de her satır başındaki “//” silerek bu kısmı aktifleştiriyoruz ve kullanıcı adını admin olarak bırakıp şifre kısmını önce tek tek silip daha sonra tırnak işaretlerini silmeden daha önceden aldığımız şifremizi yapıştırıyoruz. Değişikliğimizi yaptıktan sonra “CTRL+X” tuşlarına basıp çıkıyoruz. Burada standart onaylamayı Y yazarak onaylayıp ve isimlendirme değişikliği yapmadan nano uygulamasından çıkıyoruz.
Artık temel güvenlik fonksiyonunu da devreye almış bulunmaktayız. Ancak değişikliklerin devreye girmesi için Node-Red sisteminin yeniden başlatılması gerekmektedir. Bunun için Raspberry Pi cihazını yeniden başlatıyoruz. Raspberry Pi yeniden başladıktan sonra kullandığımız bilgisayarın tarayıcısını kullanarak Node Red ara yüzüne erişiyoruz.
http://kontaktorpi:1880veya
http://192.168.10.100:1880Bu adreste bu şekilde bir login ekranı geliyorsa yaptığımız işlem başarılı olmuş demektir. Kullanıcı adımızı “admin” olarak belirlemiştik. Belirlediğimiz şifreyi de girerek önceden görüntülediğimiz Node Red ara yüzüne erişiyoruz.
Yazılım ortamını tanımak
Node Red yazılım ortamı, web tabanlıdır ve görsellik ön plandadır. Yazılım parçaları olan kutular, ekranın sol kısmında gruplandırılmış şekilde bulunmaktadır. Bu program parçalarına “node” denir. (Yazmada kolaylık olsun diye bundan sonra “nod” olarak bahsedeceğim). Bu yazılım parçaları faremizin sol tuşuna basılı tutarak “flow” sayfalarına sürüklenerek kullanılırlar.
Flow sayfası aslında program yazdığımız yerdir. Sürüklenip bırakılan nodlar bu sayfada birbirlerine sağlarında ve sollarında bulunan noktalar farenin sol tuşuna basılı tutularak bağlanırlar. Her nodun sol tarafındaki bağlantı noktaları giriş, sağ tarafındaki noktalar ise çıkıştır. Bunu matematiksel fonksiyonlara benzetebiliriz. Aynı matematikte veya endüstriyel PLC’lerde kullandığımız fonksiyonlar gibi, buradaki nodların birden fazla girişi ve çıkışı olabilir.
Ekranın sağ üst tarafında ise giriş yaptığımız kullanıcı ve sistem menüsünü açan düğmeler bulunmaktadır. Bunların altında sistem menüleri bulunmaktadır. Debug ekranı, dashboard ayarları, nodlarla ilgili kullanım ayarları burada bulunur. Bunların kullanımını örneklerde göreceğiz.
Node Red, tetikleme usulü çalışan bir uygulama sistemidir. Yani bu ortamda oluşturacağımız herhangi bir yazılım veya işlemi çalıştırmak için bir olayın bu işlemi tetiklemesi gerekmektedir. Bu örnek olarak “Inject“ nodunun yanında bulunan düğme veya inject nodunun zamanlaması ile de olabilir veya dashboard sistemine eklediğimiz bir buton da olabilir. Yapılan her değişiklik sağ üst bölümde bulunan “Deploy” düğmesine basılarak devreye alınır.
Her yazılım ortamı için yapılan örnek uygulama olan bir “HELLO WORLD” uygulaması yapacağız. Öncelikle sağ taraftaki menüden “inject” ve debug nodlarını şekilde gözüktüğü gibi flow sayfamıza ekleyip birbirine bağlıyoruz. Dikkat ettiyseniz, eklediğimiz nodların sağ üst köşelerinde mavi bir daire çıkmaktadır. Bu dairenin anlamı bu nodla ilgili değişikliklerin kaydedilmediğini yani "Deploy" edilmediğini belirtmektir.
Daha sonra inject nodumuzu çift tıklayarak açılan penceredeki “msg.payload” yazan kısma gelip, “timestamp” yazılı olan kısma faremizin sol tuşu ile tıklayarak text dosyası olarak değişmesini sağlıyoruz. Çıkan boş kutucuğa da HELLO WORLD yazıyoruz. Açılan penceredeki sağ üst kısımdaki save yazan kısma tıklayarak yaptığımız değişikliğin deploy etmeye hazır olarak kaydedilmesini sağlıyoruz. Penceremizin sağ üst köşesindeki deploy düğmesine basarak programımızın devreye girmesini sağlıyoruz.
Yazdığımız program, inject nodunun solunda bulunan düğmeye tıklayarak debug ekranından HELLO WORLD yazını okumamızı sağlayacaktır. Sağ menüdeki debug sayfasına, bug (böcek) düğmesine basarak geldikten sonra inject nodumuzun sol tarafındaki düğmeye basıyoruz. Bu sayede debug ekranında HELLO WORLD yazısını görüntülüyoruz.
Sonraki bölümümüzde, daha gelişmiş bir örnek daha yapacağız.
Bu bölümümüzde, bağımsız yazılımların çalıştırıldığı ve bunun yanında otomasyon sistemleri ile çalışabilen bir yazılım olan Node-Red kurulumunu ve ilk örnek programımızı yaptık.




















Yorumlar
Yorum Gönder