現在有越來越多非專業背景但有創造熱誠的Maker,想要進入物聯網領域大展身手,但常常苦于無法撰寫艱深難懂的程序代碼,以及想要連接各種硬件與時下最流行的社群軟件,卻不知道如何使用開放給開發者應用的API的窘境。
沒關系!IBM發行了一套開源可視化界面開發工具- Node-RED,嗯?是不是有點眼熟?怎么跟著名的程序語言Node.js有些相似?不用擔心,即使完全不懂怎么撰寫Node.js,也能學會使用Node-RED。接下來就讓我們一起看看如何運用Node-RED吧!
大家可能會好奇,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跟這兩大視覺開發工具相比,又有什么樣的優勢呢?
Node-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官網)
Node-RED提供各式的API,包括因特網服務,例如推特與查詢天氣、呼叫使用各式的通訊協議,例如MQTT、TCP、UDP等;在嵌入式系統上,Node-RED提供控制GPIO的功能,并使用MQTT或是HTTP等協議與云端做溝通,架構IOT產品。
讓Node-RED流行于各大網絡社群的理由,在于它擁有以下諸多的優點:
1.相較于撰寫程序代碼,使用圖形化界面可更快速開發。
2.適合作為概念性應用驗證的開發工具。
3.淺顯易懂,每個API都有文字說明可供查詢。
4.具有高度擴充性,已有大量的Library、Flow、Node供人下載。
如何啟用Node-RED
想在Raspberry Pi上使用Node-RED,需先安裝Node.js運行環境,如果是使用FRED,或是IBM Bluemix使用Node-RED,則不須安裝。
安裝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的帳號密碼
進入編輯頁面了
實作范例
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的瀏覽器。
作者:何信昱
-
IBM
+關注
關注
3文章
1821瀏覽量
75812 -
應用軟件
+關注
關注
0文章
53瀏覽量
9283
發布評論請先 登錄
物聯網+低代碼:解鎖高效開發,縱橫智控Node-RED平臺引領新范式

AI開發工具分類與功能
【教程】Node-RED中Chirpstack節點使用指南

Node-RED賦能ARMxy嵌入式計算機:開發者的首選

Node-RED + 鋇錸技術ARMxy工控機實現Modbus轉IEC-61850

教程:ARMxy工業計算機上Node-RED連接本地MySQL的方法

ARM控制器與Node-Red:獲取氣象網站數據

Node-Red可視化編程:簡化開發的創新之選

ARMxy ARM 物聯網邊緣計算網關支持 Node-RED 用于工業控制

ARMxy ARM物聯網邊緣計算網關支持Node-RED用于云邊端一體化

ARMxy ARM嵌入式計算機支持Node-Red應用于Ubuntu系統訂閱消息

利用ARMxy邊緣計算機BL340與Node-Red實現LED設備的開閉控制

使用Node-RED實現ModBus TCP到RTU的轉換

評論