現(xiàn)在有越來(lái)越多非專業(yè)背景但有創(chuàng)造熱誠(chéng)的Maker,想要進(jìn)入物聯(lián)網(wǎng)領(lǐng)域大展身手,但常常苦于無(wú)法撰寫(xiě)艱深難懂的程序代碼,以及想要連接各種硬件與時(shí)下最流行的社群軟件,卻不知道如何使用開(kāi)放給開(kāi)發(fā)者應(yīng)用的API的窘境。
沒(méi)關(guān)系!IBM發(fā)行了一套開(kāi)源可視化界面開(kāi)發(fā)工具- Node-RED,嗯?是不是有點(diǎn)眼熟?怎么跟著名的程序語(yǔ)言Node.js有些相似?不用擔(dān)心,即使完全不懂怎么撰寫(xiě)Node.js,也能學(xué)會(huì)使用Node-RED。接下來(lái)就讓我們一起看看如何運(yùn)用Node-RED吧!
大家可能會(huì)好奇,Node-RED跟Node.js怎么名字會(huì)這么像?是不是有某種關(guān)聯(lián)存在?這邊就要先從Node.js開(kāi)始介紹了。Node.js是一個(gè)讀取Javascript的運(yùn)行環(huán)境,可用于開(kāi)發(fā)網(wǎng)頁(yè)后端程序,但是Node.js的指令是一行一行寫(xiě)出來(lái)的,為了免去呼叫程序代碼麻煩,IBM的工程師開(kāi)發(fā)了Node-RED來(lái)更容易地完成工作。
具體來(lái)說(shuō),每當(dāng)啟動(dòng)Node-RED時(shí),背景程序便會(huì)創(chuàng)造一個(gè)服務(wù)器來(lái)處理我們輸入的指令,這時(shí)只要使用瀏覽器登入指定的IP即可進(jìn)入Node-RED的編輯畫(huà)面,設(shè)定好想要的流程后,背景程序會(huì)將流程轉(zhuǎn)換成程序代碼交給Node.js環(huán)境運(yùn)行。
其實(shí)在Maker圈,可視化界面開(kāi)發(fā)工具已經(jīng)相當(dāng)流行,特別是MIT開(kāi)發(fā)的Scratch,以及Google開(kāi)發(fā)的Blockly。那么,Node-RED跟這兩大視覺(jué)開(kāi)發(fā)工具相比,又有什么樣的優(yōu)勢(shì)呢?
Node-RED特色
Node-RED起源于2013年IBM’s EmergingTechnology Services group的一個(gè)計(jì)劃的副產(chǎn)物,工程師Nick O’Leary和Dave Conway-Jones想用可視化界面來(lái)概念性驗(yàn)證一套MQTT應(yīng)用,讓Node-RED因此孕育而生。
Node-RED很快成為更加全面性的開(kāi)發(fā)工具,并于2013年9月成為OpenSource,于2016年10月加入JS Foundation。(以上說(shuō)明節(jié)錄自Node-RED官網(wǎng))
Node-RED提供各式的API,包括因特網(wǎng)服務(wù),例如推特與查詢天氣、呼叫使用各式的通訊協(xié)議,例如MQTT、TCP、UDP等;在嵌入式系統(tǒng)上,Node-RED提供控制GPIO的功能,并使用MQTT或是HTTP等協(xié)議與云端做溝通,架構(gòu)IOT產(chǎn)品。
讓Node-RED流行于各大網(wǎng)絡(luò)社群的理由,在于它擁有以下諸多的優(yōu)點(diǎn):
1.相較于撰寫(xiě)程序代碼,使用圖形化界面可更快速開(kāi)發(fā)。
2.適合作為概念性應(yīng)用驗(yàn)證的開(kāi)發(fā)工具。
3.淺顯易懂,每個(gè)API都有文字說(shuō)明可供查詢。
4.具有高度擴(kuò)充性,已有大量的Library、Flow、Node供人下載。
如何啟用Node-RED
想在Raspberry Pi上使用Node-RED,需先安裝Node.js運(yùn)行環(huán)境,如果是使用FRED,或是IBM Bluemix使用Node-RED,則不須安裝。
安裝Node-RED:在Raspberry pi的Bash輸入「sudo npm install -g node-red」
2. 啟動(dòng)Node-RED:
(1) 在Bash輸入「node-red」
(2) 在計(jì)算機(jī)上使用遠(yuǎn)程桌面聯(lián)機(jī)(Pi須安裝xrdp),打開(kāi)Linux的瀏覽器進(jìn)入http://localhost:1880,即可進(jìn)入Node-RED編輯頁(yè)面,這里跟Bash登入畫(huà)面一樣,輸入Pi的帳號(hào)密碼
進(jìn)入編輯頁(yè)面了
實(shí)作范例
Hello Node-RED
http://noderedguide.com/node-red-lecture-2-building-your-first-flows-15/
接下來(lái),讓我們來(lái)學(xué)習(xí)如何使用Node-RED的基本單位:Node,并使用Nodes來(lái)傳送字符串「Hello Node-Red!」來(lái)跟Node-RED打聲招呼吧!
使用左側(cè)的inject與debug接成以下的流程:
Inject node:我們使用這個(gè)Node來(lái)輸入各式的數(shù)值,舉凡變量、數(shù)字、字符串、時(shí)間常數(shù)都可以,Inject通常都是一個(gè)Flow的開(kāi)頭。
Debug node:這個(gè)Node就像是示波器的探棒,會(huì)將流入此點(diǎn)的對(duì)象信息于右邊的Debug字段顯示出來(lái),我們使用這個(gè)Node檢視結(jié)果是否符合預(yù)期的結(jié)果。
實(shí)作結(jié)果:左側(cè)node按下藍(lán)色的按鈕后,右側(cè)的debug欄接收到input的訊息。
2. LED燈開(kāi)關(guān)
Node-RED有個(gè)很大的特色,就是可以方便地控制RaspberryPi,在這之前,呼叫GPIO都是使用Python、C語(yǔ)言、Java等等;而現(xiàn)在只要設(shè)定Node-RED就可以達(dá)到相同的效果,在這個(gè)流程輸入開(kāi)或關(guān)的訊息,判斷式處理完后,會(huì)將1或0傳入Rpi Pin node。
(RPi node預(yù)設(shè)只有RPi的Node-RED才有)
Inject Node:我們這邊設(shè)定將”O(jiān)n"字符串輸入給Switch function。
Function Node:我們使用這個(gè)Node作為撰寫(xiě)自定義函式的地方,使用的語(yǔ)法為Javascript,這?邊先寫(xiě)一個(gè)簡(jiǎn)單的判斷函式確認(rèn)是ON或是OFF,最后將msg對(duì)象往下傳。
RPi Pin node:我們使用這個(gè)Node來(lái)設(shè)定RPi的腳位輸出,可分為數(shù)字輸出與PWM;本次做數(shù)字輸出,選擇GPIO17腳位。
Raspberry Pi3腳位圖:
實(shí)作結(jié)果:
可能遇到的錯(cuò)誤
1.無(wú)法使用npm指令
Raspberry Pi尚未安裝Node.js,需先安裝Node.js才能使用npm。
2.進(jìn)入0.01:1880無(wú)法顯示網(wǎng)頁(yè)?
需先在Raspberry Pi的terminal輸入node-red,啟動(dòng)服務(wù)器才能登入頁(yè)面。
3.Function Node無(wú)法輸入程序代碼?
GNU/Linux內(nèi)建瀏覽器的Bug,建議使用FireFox的瀏覽器。
作者:何信昱
-
IBM
+關(guān)注
關(guān)注
3文章
1810瀏覽量
75517 -
應(yīng)用軟件
+關(guān)注
關(guān)注
0文章
52瀏覽量
9259
發(fā)布評(píng)論請(qǐng)先 登錄
【教程】Node-RED中Chirpstack節(jié)點(diǎn)使用指南

【干貨】什么是Node-RED?一文帶你了解!

Node-RED賦能ARMxy嵌入式計(jì)算機(jī):開(kāi)發(fā)者的首選

Node-RED + 鋇錸技術(shù)ARMxy工控機(jī)實(shí)現(xiàn)Modbus轉(zhuǎn)IEC-61850

教程:ARMxy工業(yè)計(jì)算機(jī)上Node-RED連接本地MySQL的方法

ARM控制器與Node-Red:獲取氣象網(wǎng)站數(shù)據(jù)

Node-Red可視化編程:簡(jiǎn)化開(kāi)發(fā)的創(chuàng)新之選

ARMxy ARM 物聯(lián)網(wǎng)邊緣計(jì)算網(wǎng)關(guān)支持 Node-RED 用于工業(yè)控制

ARMxy ARM物聯(lián)網(wǎng)邊緣計(jì)算網(wǎng)關(guān)支持Node-RED用于云邊端一體化

ARMxy ARM嵌入式計(jì)算機(jī)支持Node-Red應(yīng)用于Ubuntu系統(tǒng)訂閱消息

利用ARMxy邊緣計(jì)算機(jī)BL340與Node-Red實(shí)現(xiàn)LED設(shè)備的開(kāi)閉控制

使用Node-RED實(shí)現(xiàn)ModBus TCP到RTU的轉(zhuǎn)換

Node-RED初學(xué)者教程-三分鐘學(xué)習(xí)

Node-RED如何制作漂亮的界面

Node-RED安裝本地教程

評(píng)論