- Ön koşullar
- Gerekli Bileşenler
- Raspberry Pi'ye Node-RED kurulumu
- Raspberry Pi'de Node-RED'in Başlatılması
- Node-RED arayüzünü anlama
- Şemalar
- Node-RED'de Akış Oluşturma
- Raspberry Pi ile Node-RED arayüzüne Basma Düğmesi / Anahtar Ekleme
Kod yazmak için günler harcamak zorunda kalmadan veya kodlamadan pratik gelişmiş projeler inşa etmek zorunda kalmadan IoT çözümlerinin basit prototiplerini yapmanın bir yolu olup olmadığını merak ettiniz mi ? Evet, bu Node-Red Platform ile mümkündür. IBM tarafından geliştirilen Node-RED, donanım aygıtlarını, API'leri ve çevrimiçi hizmetleri yeni ve ilginç bir şekilde birbirine bağlamak için açık kaynaklı bir programlama aracıdır. Tek bir tıklamayla çalışma zamanına yerleştirilebilen, paletteki çok çeşitli düğümleri kullanarak ' akışları' birbirine bağlamayı kolaylaştıran tarayıcı tabanlı bir düzenleyici sağlar.
Node-RED, programlama bileşenini basitleştirmek amacıyla Nesnelerin İnterneti (IoT) uygulamaları oluşturmak için güçlü bir araçtır.
Bir görevi gerçekleştirmek için düğümler olarak bilinen kod bloklarını birbirine bağlamanıza izin veren görsel programlama kullanır. Bugünün öğreticisi için, Node-RED kullanarak ahududu pi'de basit projeleri nasıl dağıtabileceğinizi inceleyeceğiz. Ahududu pi düğüm-kırmızı öğretici kapsayacaktır;
- Raspberry Pi'ye Node-RED kurulumu.
- Node-RED kullanıcı arayüzüne giriş
- Node-RED akışları nasıl kurulur
- Raspberry Pi GPIO pinlerini Node-RED ile kontrol etme
- Düğüm-KIRMIZI girişler, çıkışlar ve anahtarları kullanarak başka türlü karar verme
Ön koşullar
Bu eğitimde Raspbian streç OS dayalı olacak ve size aşina üstlenecek Ahududu Pi kurma onunla ve Pi içine SSH için macun gibi bir terminal yazılımı kullanarak biliyorum. Bunlardan herhangi biriyle ilgili sorunlarınız varsa, bu web sitesinde yardımcı olabilecek tonlarca Raspberry Pi Öğreticisi var.
Öğreticiyi kolayca tamamlamak için, ahududu pi'ye bağlı bir monitör kullanmanızı veya VNC Viewer yazılımını kullanmanızı tavsiye edeceğim. Bir Monitörünüz yoksa ve Pi ile yeni bir başlangıç yaparsanız, bu eğiticiye devam etmek için bu Headless Raspberry Pi kurulumunu okuyabilirsiniz. Node-Red bir web tarayıcısından çalışır ve Pi'nin Pi'nin IP adresi aracılığıyla bağlı olduğu PC'nizden erişilebilir olsa da, VNC / monitör deneyiminin size daha iyi bir asılma sağlayacağına inanıyorum.
Node-Red'in nasıl çalıştığını göstermek için bir demo olarak , Raspberry Pi'yi GPIO'suna bağlı bir LED'i kontrol etmek için programlamak için Node-RED'i kullanacağız ve daha sonra LED'in Pi'lere bağlı dokunsal bir butondan kontrol edilmesini sağlamak için programı değiştireceğiz. GPIO.
Gerekli Bileşenler
Bu projeyi oluşturmak için aşağıdaki bileşenler gereklidir;
- Raspbian Stretch Önceden Yüklenmiş SD kartlı Raspberry Pi 3
- 100 ohm direnç (1)
- LED (1)
- Breadboard (1)
- Erkek-dişi atlama telleri
- Dokunsal basmalı düğme (1)
Raspberry Pi'ye Node-RED kurulumu
Node-Red, Raspbian Stretch OS'ye önceden yüklenmiş olarak gelirken, en yeni özelliklerinden bazılarının keyfini çıkarabilmemiz için önce onu yükseltmemiz gerekiyor. Düğüm-Kırmızı Yükseltme irade
- Mevcut kullanıcıyı LTS 8.x veya 10.x Node.js ve en son Node-RED'e yükseltin
- Mevcut global olarak kurulu düğümleri ~ /.node-red kullanıcı alanına taşıyın, böylece palet yöneticisi aracılığıyla yönetilebilirler, kullanıcı tarafından yüklenmiş mevcut düğümleri GÜNCELLEMEZ. Bu, kullanıcı tarafından manuel olarak yapılmalıdır (aşağıya bakın).
- İsteğe bağlı olarak, tam bir Raspbian Pi görüntüsüne önceden yüklenmiş ekstra düğümleri (yeniden) kurun.
Bununla birlikte, Node-Red'i yükseltme süreci yenisini yüklemeye benzer, bu nedenle bu eğitimin iyiliği için onu yeni bir kurulum gibi ele alacağız, böylece diğer işletim sistemi sürümlerini kullanan insanlar da takip edebilir.
Raspberry Pi'nize Node-RED'i Kurmak / Yükseltmek için aşağıdaki adımları izleyin.
Biz yükseltme başlayacak ve pi güncellenmesi o tarih ve önlemek uyumluluk sorunları kalmıştır üzerine, her şeyi sağlamak için. Bunu bir terminal açarak veya ssh aracılığıyla yapın ve çalıştırın;
Sudo apt-get güncellemesi
bunu takiben
sudo apt-get yükseltme
Bunu yaptıktan sonra, terminalde aşağıdaki bash betiğini çalıştırın;
bash <(curl -sL
Bash komut dosyası aşağıdaki şeyler yapacak
- Ekstra Pi düğümlerini (yeniden) yüklemek isteyip istemediğinizi sorun
- / Usr / lib / node_modules konumunda bulunan, küresel olarak kurulu tüm kırmızı düğümlerin bir listesini kaydedin
- apt-get mevcut Düğüm Kırmızısını kaldırın
- / usr / bin ve / usr / local / bin dizinlerinden tüm düğüm kırmızısı ikili dosyaları kaldırın
- / Usr / lib / node_modules ve / usr / local / lib / node_modules'deki tüm düğüm kırmızı modülleri kaldırın
- Node.js'nin Node.js paketinden mi yoksa Debian'dan mı yüklendiğini tespit edin
- V8 veya daha yeni değilse - uygun şekilde kaldırın ve en son v8 veya v10 LTS'yi (apt kullanmadan) yükleyin.
- Kodun önceki sürümlerini kaldırmak için npm önbelleğini ve.node-gyp önbelleğini temizleyin
- Node-RED'in son sürümünü yükleyin
- Daha önce global olarak kurulmuş olan tüm düğümleri kullanıcı hesabı altında yeniden kurun
- Gerekirse ekstra Pi düğümlerini yeniden kurun
- Tüm düğümleri yeniden oluşturun - herhangi bir ikili dosyayı en son Node.js sürümüyle eşleşecek şekilde yeniden derlemek için
- / Usr / bin dizinine node-red-start, node-red-stop ve node-red-log komutlarını ekleyin
- Menü kısayolu ve simgesi ekle
- Sistem komut dosyası ekleyin ve kullanıcıyı ayarlayın
- Pi'de bir CPU sıcaklığı ekleyin -> IoT örneği
Yukarıdaki bash betiği sudo olarak birçok komutu çalıştırır ve mevcut Node.js ile çekirdek Node-RED dizinlerini siler. Pi üzerinde sahip olduğunuz herhangi bir projeyi etkilemeyeceğinden emin olmak için çalıştırmadan önce bu GitHub sayfasındaki komut dosyasının içeriğini kontrol edebilirsiniz.
Kurulum tamamlandığında, şimdi menünüzün programlama uygulamaları listesinin altında Düğüm-Kırmızı simgesini görmelisiniz.
Raspberry Pi'de Node-RED'in Başlatılması
Node-Red, ahududu pi'nizin masaüstünden menü bölümü yoluyla, terminal aracılığıyla veya ssh üzerinden başlatılabilir.
Ahududu pi'nin masaüstünde başlatmak için, Raspberry simgesine tıklayın, farenizi Programlama üzerine getirin ve başlatmak için Node- RED'e (Menü> Programlama> NodeRed) tıklayın.
Ayrıca çalıştırılarak ssh veya terminalden başlatılabilir;
düğüm kırmızı başlangıç
Masaüstünde düğümün kırmızı başlatmasını gösteren aşağıdaki gibi bir pencere görmelisiniz.
Bunu gördüğünüzde menu-> internet'e gidin ve chromium web tarayıcısını başlatın . Raspberry pi'nizin Node-Red'i çalıştırmak için internete ihtiyacı olmasa da, arayüzü olarak bir tarayıcı kullanır.
Chromium başlatıldığında adres çubuğuna localhost: 1880 yazın ve ardından enter tuşuna basın. 1880, Node-Red'in iletişim kurmak için önceden ayarlandığı ahududu pi üzerindeki bağlantı noktasıdır. Bu, aşağıdaki resimde gösterildiği gibi Düğüm Kırmızısı arayüzünü göstermelidir.
Node-RED arayüzünü anlama
Düğüm-Kırmızı arayüzü arasında içerir akış panel, düğümler paleti, ayıklama konsolu ve bilgileri konsol yukarıdaki resimde belirtildiği gibi.
Akış paneli düğümleri Düğüm-Red akışı adlandırılan bir programı oluşturmak için birleştirilir burada da, bir düğüm paleti cihazlarla ilişkili özellikleri, donanım, protokoller ve yazılım temsil eden nesnelerin içerir. IoT için MQTT gibi protokolleri ve ahududu pi gibi kartlar için GPIO çıkışı ve giriş modlarını içerir. Bilgileri konsol vurgulanan / seçili nesneler hakkında bilgi sağlarken ayıklama konsolunatıpkı Arduino Seri monitör gibi çalışır ve akış çalışırken geri bildirim sağlayabilir. Dağıt düğmesi, akışı hedef donanıma yüklemek için kullanılır. Menü düğmesi, projenizden en iyi şekilde yararlanmanıza yardımcı olacak farklı yükleme türleri içerir. Node-Red çalışır durumda ve şimdi demo projesini oluşturmaya devam edebiliriz.
Şemalar
Girişte belirtildiği gibi, bugünkü demo projemiz , Raspberry Pi'nin GPIO'sunu Node-RED akışı kullanarak kontrol etmek olacak. GPIO'nun durumundaki farklılığı göstermek için, GPIO'ya bir LED bağlayacağız, böylece söz konusu GPIO pini açıldığında LED yanar ve bunun tersi de geçerlidir.
LED'i aşağıdaki şemalarda gösterildiği gibi Raspberry PI'ye bağlayın.
Aynı şeyi bir devre tahtası, LED, direnç ve bazı bağlantı kabloları kullanarak donanımımda da oluşturuyorum. Bağlantılar yapıldıktan sonra donanım kurulumum böyle bir şeye benziyor.
Bu proje kolayca bir Ev otomasyon projesine dönüştürülebilir , sadece LED'i bir röle ve herhangi bir AC cihazla değiştirerek, çeşitli Ev Otomasyon Projelerinden geçerek bunu nasıl yapacağınızı öğrenin.
Node-RED'de Akış Oluşturma
LED bağlandığında, akışı geliştirmeye devam edebiliriz. NodeRed'deki programlar, tıpkı Arduino IDE'nin taslak olarak adlandırdığı gibi akış olarak adlandırılır. Akışlar, düğümlerin bir kombinasyonu kullanılarak oluşturulur. Hepsi aynı anda çalışabilen birden fazla akış oluşturabilirsiniz, ancak bu eğitim için LED'i açmak / kapatmak için tek bir akış oluşturacağız.
Başlamak için Düğümler paletinin en altına kaydırın, rpigpio etiketli iki düğümle sona doğru ahududu pi düğümleri bölümünü göreceksiniz. Bu düğümler, ahududu pi'nin GPIO'su ile iletişim kurmak için kullanılır. Düğümlerden biri girdi için, diğeri ise ahududu pi'nin logosunun konumuna göre farklılaştırılmış çıktı içindir. İçin giriş düğümü için ise, logo, metin önce gelir düğüm çıkış logosu metninin sonra gelir, aşağıdaki resimde gösterildiği gibi.
Bu eğitim için çıktı düğümünü kullanacağız, onu arayüzün akış bölümüne sürükleyeceğiz. Bu adım, pinMode () komutunu kullanarak Arduino'nuzun belirli bir pinini Çıkış olarak bildirmeye benzer. Çıktı düğümüne çift tıklayın ve düğümün özelliklerini düzenlemenize izin vermek için aşağıda gösterildiği gibi bir açılır pencere açılacaktır.
Pin özelliği bölümü altında, GPIO17'yi (pin 11) seçin. Daha sonra type özelliğini " dijital Çıkış " olarak ayarlayın ve " Pim durumu başlatılsın mı?" " ilk pin seviyesi " seçeneğini düşük (0) olarak bırakarak onay kutusunu işaretleyin. Düğüme istediğiniz adı verin ve tamam düğmesini tıklayın.
Düğümün adı, özellikler ayarı altında girdiğinizle otomatik olarak değişmelidir. Örneğin ben LED olarak adlandırdım ve dolayısıyla düğüm adı da aşağıda gösterildiği gibi LED olarak değiştirildi.
LED'i açmak / kapatmak için, eylemi yürütecek bir giriş, bir şey kullanmamız gerekir. Bir basma düğmesi kullanabilsek de, bunu Node-RED'de mesajların akışlara enjeksiyonuna izin veren özelliği sunmak için kullanmak istiyorum. Bu özelliğe enjekte Düğümü denir. İki enjeksiyon düğümü kullanacağız. Biri LED'i açarken diğeri onu kapatmak olacaktır.
Düğüm paletine gidin ve enjekte düğümünü akışa sürükleyin. Paletteki oklu ilk düğümdür, enjekte düğümü aşağıdaki resimde vurgulanmıştır.
Özelliklerini düzenlemek için üzerine çift tıklayın. Yükün önündeki açılır menüyü tıklayarak veri türünü dizeye değiştirin ve Yük kutusuna 1 girin. Yük kutusundaki değer, düğüme basıldığında akışa enjekte edilecek olan şeydir. Düğümün adını "AÇIK" olarak ayarlayın Kaydetmek için "Bitti" düğmesine basın.
Yukarıda gösterildiği gibi yük değerini "0" ve adını "kapalı" olarak ayarlayarak ikinci düğüm için yukarıdakini tekrarlayın.
Özellikleri fonksiyonu altında, tekrar açılır enjeksiyonu otomatik hale getirmek için kullanılabilecek düğmeler aralıklarla basıldığında bu yüzden. Bu, göz kırpma efekti oluşturmak için kullanılabilir. Akışı oluşturmak için düğümlerden birindeki gri noktayı diğerine sürükleyerek aşağıda gösterildiği gibi düğümleri birleştirin.
Bununla birlikte, ilk Düğüm-Kırmızı Akışımızı tamamlamış olduk.
Bir sonraki adım, akışı ahududu pi'ye dağıtmaktır. Kırmızı dağıt düğmesini tıklayın. Aşağıda gösterildiği gibi ekranın üst kısmında "başarıyla yerleştirildi" flaşını görmelisiniz.
Düğümlerin her birini etkinleştirmek için enjeksiyon düğümlerinin arkasındaki gri düğmeyi tıklayın.
"Açık" enjeksiyon düğümüne tıkladığınızda, başarıyla enjekte edildiğini "açık" görüntülendiğini ve LED'in yandığını görmelisiniz. "Kapalı" enjekte düğümü tıklandığında LED sönmelidir.
Bu kadar. Bu kurulumun tam çalışması, bu sayfanın alt kısmında bağlantısı verilen videoda bulunabilir.
Raspberry Pi ile Node-RED arayüzüne Basma Düğmesi / Anahtar Ekleme
Akışınıza bir giriş elemanını nasıl bağlayacağınızı / ekleyeceğinizi açıklamak için, enjeksiyon düğümlerini değiştirmek için bir buton ekleyerek yukarıdaki akışı daha ileriye taşıyacağız.
Basmalı düğmeyi ahududu pi'ye bağlayın, böylece aşağıdaki şemalarda gösterildiği gibi, basma düğmesinin bir ayağı toprağa, diğeri de ahududu pi'nin GPIO pimi 4'e (pim 11) bağlanır.
Bunu yaptıktan sonra, Node-Red'e geri dönün ve daha önce kullandığımız iki enjekte düğümünü, düğümlere tıklayıp klavyenizdeki sil'e basarak veya düğümlere çift tıklayıp açılır pencerede sil'e basarak silin. Bunu yaptıktan sonra, düğüm paletini ahududu pi bölümüne kaydırın ve giriş düğümünü seçin. Düğümün adının önünde, solda ahududu pi simgesi olanıdır.
Düğümü akışa sürükleyin ve özellikleri düzenlemek için üzerine çift tıklayın. Pimi GPIO 4'e (pim 11) ayarlayın ve direncin önündeki açılır menüyü yukarı çekmek için ayarlayın. Bu, GPIO 4'ü YÜKSEK konuma "çekecektir". Özellikleri ayarladıktan sonra tamam düğmesine tıklayın.
GPIO4'ü toprağa kısa devre yapmak yerine, anahtara basıldığında mantıklı kararlar almamıza izin vermek için, anahtar düğümünü kullanacağız. Düğüm paletinde, işlev bölümünün altında arayın ve akışa sürükleyin.
Anahtar düğümü, "if" ifadelerine benzer şekilde kararlar almanıza olanak tanır. Giriş değerine bağlı olarak farklı çıkışlara sahip olacak şekilde ayarlanabilir. Bu öğretici için, msg.payload özelliği 1'e eşit olduğunda (anahtara basılmadığında) ilk yolu izlemeli ve başka bir giriş varsa ikinci bir yol izlenecek şekilde iki çıkış yolu ile yapılandıracağız. girişte 1'den farklı gözleniyor (anahtara basılır). Yollar, "+ ekle" düğmesi kullanılarak eklenir. Düğüme çift tıklayın ve yukarıda açıklandığı gibi yapılandırın. Bittiğinde bitti'yi tıklayın.
Bitti düğmesine bastığınız anda, iki yolun artık çıkışta iki bağlantı noktası olacağı için anahtar düğümünün görünümüne yansıdığını görmelisiniz.
Daha sonra, bir "değişim" düğümü getirmemiz gerekiyor. Değişim düğümü, argüman düğümünün sonucuna göre LED'in durumunu ayarlamak için kullanılacaktır.
Değişim düğümlerinden ikisini kullanacağız. İlkinin yükü, aşağıdaki resimde gösterildiği gibi 0'a ve ikincisinin yükü bire ayarlanacaktır. Her ikisi için de özellikleri düzenledikten sonra tamam'ı tıklayın.
Daha iyi açıklamak için, çekme direncini kullandığımızı hatırlıyor musunuz? Bu nedenle, butona basılmadığında, bu pindeki çıkış YÜKSEK (1) olacaktır, yani anahtar düğümünden geçersek, LED "yanacaktır", çünkü böyle olmaması gerekir, biz DÜŞÜK (0) olarak ayarlamak için “değiştir” düğümünü kullanın. İkinci "değiştirme" düğümü, değeri, GPIO pin 4'ün YÜKSEK durumu dışında herhangi bir şey algılandığında, düğmeye basıldığı anlamına geleceği için LED'i "açık" duruma getirecek şekilde ayarlamak için kullanılır. Aşağıdaki resimde gösterildiği gibi değişim düğümlerini ve geri kalan düğümleri birbirine bağlayın.
Bu bittiğinde, artık projeyi dağıtmaya hazırız. Her şeyin olması gerektiği gibi olduğundan emin olmak için bağlantının üzerinden geçin, ardından dağıt düğmesini tıklayın. Her zamanki gibi, başarılı olursa, başarılı bir açılır pencereyi görmeli ve artık anahtarı kullanarak led'i kontrol edebilmelisiniz.
Node-Red, kod hakkında endişelenmeden yapınızın prototipini oluşturmanızı kolay ve hızlı hale getirirken, özellikle program üzerinde esneklik ve kontrol isteyen deneyimli geliştiriciler için aslında en uygun seçenek olmayabilir. Yine de, dakikalar içinde prototip oluşturmanıza izin veren harika bir araçtır.
Bir dahaki sefere kadar!