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”Ay: Kasım 2023
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”MotionEyeOS ile Raspberry Pi’ı Güvenlik Kamerası Gözetim Çözümüne Dönüştürmek
MotionEyeOS[1] (MEOS) adındaki dağıtım Raspberry Pi’ı bir kamera gözetim sistemine dönüştürmek için hazırlanmıştır. Raspberry Pi gibi diğer popüler kart bilgisayarlar için de farklı imajlara sahip olan MotionEyeOS, Raspberry Pi’ın tüm sürümlerini desteklemektedir. MotionEyeOS’u indirme sayfası olan https://github.com/ccrisan/motioneyeos/releases adresinden indirdikten sonra bir SD karta yazın ve Raspberry Pi’ı başlatın. MEOS ilk defa başlarken disk bölümünü SD kartın tamamını kullanacak şekilde biçimleyecektir.
Okumaya devam et “MotionEyeOS ile Raspberry Pi’ı Güvenlik Kamerası Gözetim Çözümüne Dönüştürmek”RPCWI ile CSI Kamerayı Paylaşmak
RPCWI kurulumunu önceki başlıkta anlatıldığı gibi gerçekleştirdikten sonra, birden fazla Raspberry Pi kamerasını tek bir noktadan nasıl izleyeceğimize, kayıt edebileceğimize ve mobil cihazlarımızdan nasıl takip edebileceğimize bakalım.
Okumaya devam et “RPCWI ile CSI Kamerayı Paylaşmak”RPCWI ile CSI Kamerayı Web Üzerinden İzlemek
RPCWI (RPi Cam Web Interface) uygulaması[1], Raspberry Pi Kamera modülü için bir web arayüzüdür. Arayüz güvenlik kamerası, video ve time-lapse görüntüler kaydetmek için kullanılabilir. Arabirimi herhangi bir mobil cihazdan bir web tarayıcısı ile açarak kullanabilirsiniz. Uygulamanın bazı özellikleri aşağıdaki gibidir:
Okumaya devam et “RPCWI ile CSI Kamerayı Web Üzerinden İzlemek”Motion’ın Disk Alanı Kullanımını Sınırlandırmak
Eğer dâhili SD karta kayıt yapıyorsanız, yapılandırma ayarlarınıza bağlı olarak kartın kısa sürede dolması mümkündür. Disk dolduğunda Raspberry Pi çalışamaz duruma gelir. Bunun için harici bir diske veya uzak dosya sistemine de (Samba/NFS) kayıt yapmak çözüm gibi gözükse de aylarca yıllarca çalışacak bir sistem için farklı çözümlere ihtiyaç vardır. Disk er ya da geç dolacaktır. Bu sorunu çözmek için kullanılan yaklaşımlardan birisi en eski dosyadan başlayarak silme işlemi gerçekleştirmek ve diskte boş alan açmaktır.
Okumaya devam et “Motion’ın Disk Alanı Kullanımını Sınırlandırmak”Motion Aracı ile Harekete Duyarlı Güvenlik Sistemi Kurmak
Raspberry Pi’ın CSI arayüzünden bağladığınız kamerayı ve USB webcam’leri kullanarak harekete duyarlı bir alarm sistemi gerçekleştirebilirsiniz. Eğer kamera görüntülerinde ayarladığınız eşiği aşan miktarda bir hareketlenme olursa kayıt başlatabilir ya da bir programı çalıştırabilir, GPIO üzerinden alarmı tetikletebilir ya da sms/mail göndertebilirsiniz. Bu özellikle tatile gittiğinizde bahçenizde ya da evinizde neler olup bittiğinden anında haberdar olmak için çok kullanışlıdır. Benzer şekilde evcil hayvanlarınızı ya da vahşi doğadaki hayvanları takip etmek için de kullanılabilir.
motion daemon’ın çalışma şekli
Okumaya devam et “Motion Aracı ile Harekete Duyarlı Güvenlik Sistemi Kurmak”Kamera ile Ağ Üzerinden MJPEG Biçimli Görüntü Akışı Yapmak
cvlc aracı kamera görüntüsünü h.264 biçiminde sıkıştırarak ağ ile paylaşır. Ağ üzerinden görüntü akış biçimi olarak MJPEG oldukça yaygın ve eski bir görüntü akış biçimidir. Elinizde bu formatı destekleyen bir yazılım ya da donanım varsa bu başlık size hitap ediyor olabilir.
Raspberry Pi’ın grafik çipinin donanımsal olarak desteklediği MJPEG biçimi, görüntü karelerini TCP/IP üzerinden aktarmak için kullanılan eski bir akış biçimidir ve daha çok CPU/RAM kaynakları düşük gömülü sistemler üzerinde tercih edilir.
Okumaya devam et “Kamera ile Ağ Üzerinden MJPEG Biçimli Görüntü Akışı Yapmak”USB Web Kamerasını Kullanmak
Sıradan USB web kameralarını (web cam) uzaktan izleme ve kayıt amaçlı kullanabilirsiniz. Farklı markalar tarafında üretilmiş çok sayıda USB web kamerası vardır. Raspberry Pi bu kameraların büyük çoğunluğu ile kullanılabilir. Eğer yeni bir web kamerası satın alacaksanız elinux.org[1] sayfasından Raspberry Pi’ın sorunsuz bir şekilde çalışabileceği kamera marka/modellerini kontrol edebilirsiniz. Eğer hâlihazırda elinizde bir USB webcam varsa Raspberry Pi tarafından desteklenip desteklenmediğini kolayca öğrenebilirsiniz. Webcam’i Raspberry Pi’ın USB girişlerinden birisine bağlayın ve terminal ortamında lsusb komutunu çalıştırın:
Okumaya devam et “USB Web Kamerasını Kullanmak”CSI Kamera ile Ağ Üzerinden h.264 Görüntü Akışı Yapmak
Kamera modülünün yakaladığı görüntüyü ağ üzerinden başka bilgisayarlara ya da merkezi bir kayıt sunucusuna aktarmak için bir video akışı oluşturmak gerekir. Bu şekilde yakaladığı görüntüyü ağ üzerinden akıtma (stream) desteği olan kameralar IP kamera (IP Cam) adıyla da bilinir. Raspberry Pi kamera modülünün görüntüsünü ağ üzerinden akıtmak için açık kaynak bir proje olan VideoLAN’ın bir parçası olan VLC/VLC Player (Visible Light Communication) araçlarını kullanacağız. Bu araçlardan biri olan cvlc’yi ile kamera görüntüsünü TCP/IP üzerinden paylaşacağız. TCP/IP işin içine girdiğinde ise bir IP adresi ve port numarası söz konusu olur. cvlc’nin kullanımına geçmeden önce ilgili araçları yüklemek için aşağıdaki komutları girin:
1 2 3 |
pi@raspberry:~ $ sudo apt update pi@raspberry:~ $ sudo apt install vlc -y |