快速上手IOT視覺化開發工具Node-RED

做者:何信昱node

如今有愈來愈多非專業背景但有創造熱誠的Maker,想要進入物聯網領域大展身手,但經常苦於沒法撰寫艱深難懂的程序代碼,以及想要鏈接各類硬件與時下最流行的社羣軟件,殊不知道如何使用開放給開發者應用的API的窘境。web

不要緊!IBM發行了一套開源可視化界面開發工具- Node-RED,嗯?是否是有點眼熟?怎麼跟著名的程序語言Node.js有些類似?不用擔憂,即便徹底不懂怎麼撰寫Node.js,也能學會使用Node-RED。接下來就讓咱們一塊兒看看如何運用Node-RED吧!npm

你們可能會好奇,Node-RED跟Node.js怎麼名字會這麼像?是否是有某種關聯存在?這邊就要先從Node.js開始介紹了。Node.js是一個讀取Javascript的運行環境,可用於開發網頁後端程序,可是Node.js的指令是一行一行寫出來的,爲了免去呼叫程序代碼麻煩,IBM的工程師開發了Node-RED來更容易地完成工做。後端

具體來講,每當啓動Node-RED時,背景程序便會創造一個服務器來處理咱們輸入的指令,這時只要使用瀏覽器登入指定的IP便可進入Node-RED的編輯畫面,設定好想要的流程後,背景程序會將流程轉換成程序代碼交給Node.js環境運行。瀏覽器

其實在Maker圈,可視化界面開發工具已經至關流行,特別是MIT開發的Scratch,以及Google開發的Blockly。那麼,Node-RED跟這兩大視覺開發工具相比,又有什麼樣的優點呢?服務器

ode-RED特點網絡

Node-RED起源於2013年IBM’s EmergingTechnology Services group的一個計劃的副產物,工程師Nick O’Leary和Dave Conway-Jones想用可視化界面來概念性驗證一套MQTT應用,讓Node-RED所以孕育而生。架構

Node-RED很快成爲更加全面性的開發工具,並於2013年9月成爲OpenSource,於2016年10月加入JS Foundation。(以上說明節錄自Node-RED官網)app

Node-RED提供各式的API,包括因特網服務,例如推特與查詢天氣、呼叫使用各式的通信協議,例如MQTT、TCP、UDP等;在嵌入式系統上,Node-RED提供控制GPIO的功能,並使用MQTT或是HTTP等協議與雲端作溝通,架構IOT產品。ide

讓Node-RED流行於各大網絡社羣的理由,在於它擁有如下諸多的優勢:

1.相較於撰寫程序代碼,使用圖形化界面可更快速開發。

2.適合做爲概念性應用驗證的開發工具。

3.淺顯易懂,每一個API都有文字說明可供查詢。

4.具備高度擴充性,已有大量的Library、Flow、Node供人下載。

如何啓用Node-RED

想在Raspberry Pi上使用Node-RED,需先安裝Node.js運行環境,若是是使用FRED,或是IBM Bluemix使用Node-RED,則不須安裝。

  1. 安裝Node-RED:在Raspberry pi的Bash輸入「sudo npm install -g node-red」

2. 啓動Node-RED:

(1) 在Bash輸入「node-red」

(2) 在計算機上使用遠程桌面聯機(Pi須安裝xrdp),打開Linux的瀏覽器進入http://localhost:1880,便可進入Node-RED編輯頁面,這裏跟Bash登入畫面同樣,輸入Pi的賬號密碼

進入編輯頁面了

實做範例

  1. Hello Node-RED

http://noderedguide.com/node-red-lecture-2-building-your-first-flows-15/

接下來,讓咱們來學習如何使用Node-RED的基本單位:Node,並使用Nodes來傳送字符串「Hello Node-Red!」來跟Node-RED打聲招呼吧!

•使用左側的inject與debug接成如下的流程:

•Inject node:咱們使用這個Node來輸入各式的數值,舉凡變量、數字、字符串、時間常數均可以,Inject一般都是一個Flow的開頭。

•Debug node:這個Node就像是示波器的探棒,會將流入此點的對象信息於右邊的Debug字段顯示出來,咱們使用這個Node檢視結果是否符合預期的結果。

•實做結果:左側node按下藍色的按鈕後,右側的debug欄接收到input的訊息。

2. LED燈開關

Node-RED有個很大的特點,就是能夠方便地控制RaspberryPi,在這以前,呼叫GPIO都是使用Python、C語言、Java等等;而如今只要設定Node-RED就能夠達到相同的效果,在這個流程輸入開或關的訊息,判斷式處理完後,會將1或0傳入Rpi Pin node。

(RPi node預設只有RPi的Node-RED纔有)

•Inject Node:咱們這邊設定將」On"字符串輸入給Switch function。

Function Node:咱們使用這個Node做爲撰寫自定義函式的地方,使用的語法爲Javascript,這•邊先寫一個簡單的判斷函式確認是ON或是OFF,最後將msg對象往下傳。

•RPi Pin node:咱們使用這個Node來設定RPi的腳位輸出,可分爲數字輸出與PWM;本次作數字輸出,選擇GPIO17腳位。

•Raspberry Pi3腳位圖:

•實做結果:

可能遇到的錯誤

1.沒法使用npm指令?

Raspberry Pi還沒有安裝Node.js,需先安裝Node.js才能使用npm。

2.進入0.01:1880沒法顯示網頁?

需先在Raspberry Pi的terminal輸入node-red,啓動服務器才能登入頁面。

3.Function Node沒法輸入程序代碼?

GNU/Linux內建瀏覽器的Bug,建議使用FireFox的瀏覽器。

 

原文參考

https://mp.weixin.qq.com/s?__biz=MzU0MTg0ODIzNA==&mid=2247485188&idx=2&sn=615be89aafa52f4ef2077c34b189d81a&chksm=fb22e0c1cc5569d7a8693201128c7f88e1a925611188961bbe811546503eaa937a72d2409eee#rd

相關文章
相關標籤/搜索