步驟1:開始之前
確保已存在以下內(nèi)容:
您已經(jīng)完成了本教程的第1部分。
一個(gè)Bluemix帳戶。
愛(ài)迪生中已安裝Node-Red Watson IoT節(jié)點(diǎn)模塊。為此,請(qǐng)查看官方文檔。
步驟2:Watson IoT Application
此處的入口部分是創(chuàng)建Bluemix應(yīng)用程序它將收集設(shè)備的數(shù)據(jù),在這種情況下為LED狀態(tài)。為此,請(qǐng)轉(zhuǎn)到Bluemix目錄并選擇Internet of Things Platform Starter樣板,如果愿意,請(qǐng)轉(zhuǎn)到此鏈接并創(chuàng)建您的應(yīng)用程序。
https://console.ng.bluemix.net/catalog/starters/internet-of-things-platform-starter/
請(qǐng)注意,通過(guò)此樣板,您可以將Node.js運(yùn)行時(shí),物聯(lián)網(wǎng)平臺(tái)和Cloudant NoSQL DB服務(wù)綁定到該應(yīng)用程序。我們對(duì)本教程感興趣的是物聯(lián)網(wǎng)平臺(tái)和Node.js,因?yàn)樗鼛в蠳ode-Red。
創(chuàng)建應(yīng)用程序后,轉(zhuǎn)到物聯(lián)網(wǎng)平臺(tái)服務(wù)儀表板。在其中,您會(huì)找到按鈕啟動(dòng)儀表板。單擊它
在Watson IoT Platform儀表板中,轉(zhuǎn)到設(shè)備,然后選擇設(shè)備類型選項(xiàng)卡并創(chuàng)建設(shè)備類型。
在設(shè)備頁(yè)面中,現(xiàn)在選擇瀏覽標(biāo)簽,然后點(diǎn)擊添加設(shè)備。選擇您剛剛創(chuàng)建的設(shè)備類型并為其設(shè)置一個(gè)名稱。完成向?qū)?,然后在結(jié)果頁(yè)面中保存設(shè)備的詳細(xì)信息,因?yàn)槟枰鼈儊?lái)連接物理設(shè)備(此數(shù)據(jù)無(wú)法恢復(fù))。要存儲(chǔ)的重要數(shù)據(jù)是:
組織ID。
設(shè)備類型。
設(shè)備ID。
身份驗(yàn)證令牌。
步驟3:將電路連接到IoT
將電路連接到IoT
在本部分中,您將在Edison中修改Node-Red中的流,以現(xiàn)在就可以從IoT實(shí)例向IoT實(shí)例發(fā)送數(shù)據(jù)和接收命令,并從IoT實(shí)例接收命令,從而使其可以從Internet(而不是互聯(lián)網(wǎng))進(jìn)行控制
此外,本節(jié)還假定Watson IoT節(jié)點(diǎn)已安裝在Edison的Node-Red中。如果沒(méi)有,請(qǐng)按照此處的說(shuō)明
https://www.npmjs.com/package/node-red-contrib-ibm 。..
在愛(ài)迪生中啟動(dòng)Node-Red添加和配置Watson IoT連接。在這里,LED將連接到IoT平臺(tái),因此它可以從設(shè)備收集數(shù)據(jù)并發(fā)送命令以通過(guò)Internet打開和關(guān)閉它。
步驟4:讀取LED狀態(tài)
在輸入抽屜中,選擇 gpio 節(jié)點(diǎn)并將其拖放到畫布上。雙擊它并指定:
電路板:您在第1部分中配置的電路板。
類型:數(shù)字(0/1)。
引腳:我使用了引腳6。
名稱:ReadLED。
步驟5:形成Watson IoT的消息
Watson IoT期望一個(gè)非常特殊的消息?;旧?,您需要從有效負(fù)載中讀取LED的狀態(tài),并將其分配給Watson IoT期望的屬性,這是JSON消息中的d屬性。
為此,請(qǐng)使用 功能抽屜中的“功能”節(jié)點(diǎn),然后在其中輸入以下代碼(不要忘記雙擊它)。
var ledState = msg.payload;
msg.payload = {
“d”: {
“l(fā)ed_state”: ledState
}
};
return msg;
現(xiàn)在
步驟6:將數(shù)據(jù)發(fā)送到IoT
選擇 Watson IoT 從 Output 抽屜中將其拖放到畫布上。雙擊它。
在將數(shù)據(jù)發(fā)送到IoT平臺(tái)之前,您需要配置連接。為此,請(qǐng)點(diǎn)擊憑據(jù)字段中的鉛筆圖標(biāo)。在生成的表單中,輸入本教程的 Watson IoT應(yīng)用程序部分中創(chuàng)建設(shè)備時(shí)獲得的憑據(jù)的信息。
一旦配置了憑據(jù),請(qǐng)指定其余字段:
連接為:設(shè)備
已注冊(cè):應(yīng)選擇已注冊(cè)的無(wú)線電
憑據(jù):您剛剛配置的憑據(jù)
事件類型:事件
格式:json
單擊完成,連接功能和該節(jié)點(diǎn)并部署更改。如果一切配置正確,ReadLED(如上圖)和Watson IoT節(jié)點(diǎn)都將有一個(gè)指示燈,指示它們已正確連接。
步驟7:從IoT讀取命令
現(xiàn)在將LED數(shù)據(jù)發(fā)送到IoT平臺(tái)。但是,尚無(wú)法從Internet對(duì)其進(jìn)行操作?;旧希皇菙?shù)據(jù)源,沒(méi)有采取任何措施。現(xiàn)在可以從Internet讀取狀態(tài)并將其反映在LED上。這就是命令。
在輸入抽屜中,找到 Watson IoT 節(jié)點(diǎn)并將其拖放到畫布上。雙擊它并指定以下內(nèi)容:
連接為:設(shè)備
憑據(jù):您剛剛使用的憑據(jù)配置
命令:閃爍
保存節(jié)點(diǎn)。
步驟8:格式化傳入消息
由于來(lái)自Watson IoT的傳入消息具有特定格式,因此您需要提取要反映在物理LED中的狀態(tài)。從 Functions 抽屜中拖放 function 節(jié)點(diǎn),然后輸入以下代碼。
var ledState = msg.payload.d.led_state;
msg.payload = ledState;
return msg;
連接兩個(gè)節(jié)點(diǎn)。最后,將功能節(jié)點(diǎn)與在本教程的第1部分中創(chuàng)建的LED節(jié)點(diǎn)連接起來(lái)。
最后,如果您遵循第1部分和第2部分中的這一部分,那么Edison中的流程應(yīng)類似于此步驟中的圖像。此圖像的前兩行節(jié)點(diǎn)已在第1部分中完成,而最后一行已在本節(jié)中完成。
步驟9:從IoT讀取和控制設(shè)備
一旦設(shè)備通過(guò)Edison中的Node-Red連接到Watson IoT平臺(tái),就該在Bluemix應(yīng)用程序中創(chuàng)建流以接收該信息并將命令發(fā)送到打開和關(guān)閉LED。這將使用與第1部分中使用的HTTP請(qǐng)求非常相似的HTTP請(qǐng)求來(lái)完成。
首先,您需要在Bluemix中啟動(dòng)Node-Red應(yīng)用程序。為此,請(qǐng)轉(zhuǎn)到Bluemix儀表板,然后在所有應(yīng)用程序中單擊應(yīng)用程序的 Route 。出現(xiàn)的頁(yè)面上有一個(gè)大按鈕,顯示轉(zhuǎn)到您的Node-RED流編輯器。單擊它,Node-Red編輯器將準(zhǔn)備就緒,可以開始創(chuàng)建流了。
步驟10:讀取數(shù)據(jù)
這是一項(xiàng)瑣碎的任務(wù)在Watson IoT節(jié)點(diǎn)中已經(jīng)預(yù)先安裝了Watson IoT節(jié)點(diǎn),因此可以在Bluemix中使用。就像從 Input 抽屜中添加 Watson IoT 節(jié)點(diǎn)并指定以下屬性一樣簡(jiǎn)單:
身份驗(yàn)證:Bluemix服務(wù)
輸入:設(shè)備事件
設(shè)備類型:您在憑證中使用的那個(gè)。
設(shè)備ID :您在憑據(jù)中使用的設(shè)備
事件:+
Format :json
我將此節(jié)點(diǎn)連接到 debug 節(jié)點(diǎn),只是為了在 Debug 窗格,但是通常的想法是,當(dāng)設(shè)備將數(shù)據(jù)發(fā)送到IoT實(shí)例時(shí),您應(yīng)該適當(dāng)?shù)貙?duì)待它,可能會(huì)向移動(dòng)設(shè)備或電子郵件發(fā)送通知,或者可能會(huì)向連接到IoT的設(shè)備觸發(fā)命令。
步驟11:HTTP請(qǐng)求
在Node-Red的 Input 抽屜中,選擇 HTTP 節(jié)點(diǎn),將其拖放到畫布上。雙擊畫布中的節(jié)點(diǎn)并指定以下參數(shù):
方法:GET
URL :/led/:state
步驟12:從HTTP請(qǐng)求中提取操作
您可以在上面的URL中看到,操作作為URL的最后一部分傳遞。因此,我們需要提取它。 Node-Red使您可以使用標(biāo)準(zhǔn)Express API從請(qǐng)求中獲取變量。
從 Function 抽屜中選擇 function 節(jié)點(diǎn)并拖動(dòng)并將其拖放到畫布上。雙擊并放置以下JavaScript代碼。
if (msg.req.path == “/led/on”) {
msg.payload = 1;
msg.httpMsg = “On”
} else if (msg.req.path == “/led/off”) {
msg.payload = 0;
msg.httpMsg = “Off”
} else {
msg = null;
}
return msg;
輸入代碼后,單擊完成并連接兩個(gè)節(jié)點(diǎn)。
步驟13:將命令發(fā)送到設(shè)備
消息正確形成后,您可以將該命令發(fā)送到設(shè)備。從“輸出”抽屜中拖放一個(gè)Watson IoT節(jié)點(diǎn),然后雙擊它。指定以下內(nèi)容:
身份驗(yàn)證:Bluemix服務(wù)
輸出類型:設(shè)備命令
設(shè)備類型:您憑據(jù)中的一個(gè)
設(shè)備ID :您憑據(jù)中的一個(gè)
命令 類型:閃爍
格式:json
數(shù)據(jù):{“ d” :{“錯(cuò)誤”:“有錯(cuò)誤”}}
單擊完成并將功能連接到該節(jié)點(diǎn)。
注意 Data 屬性正在使用形成的JSON消息。只要其中具有 d 屬性,該消息就會(huì)被替換。基本上是在說(shuō)如果在消息中沒(méi)有找到 d 屬性,然后將錯(cuò)誤消息發(fā)送到設(shè)備。在功能節(jié)點(diǎn)中,我們確保消息中存在該屬性。
步驟14:發(fā)回響應(yīng)
因?yàn)榇苏?qǐng)求是通過(guò)以下方式發(fā)起的:一個(gè)HTTP請(qǐng)求,您必須以HTTP響應(yīng)完成它。為此,在 Output 抽屜中選擇一個(gè) HTTP Response 節(jié)點(diǎn)并將其拖放到畫布上。將該節(jié)點(diǎn)連接到先前創(chuàng)建的功能以形成客戶端消息。
單擊部署以使流程栩栩如生。
第15步:測(cè)試流程
現(xiàn)在已經(jīng)創(chuàng)建了流程,您可以使用網(wǎng)站了瀏覽器或處理HTTP請(qǐng)求(例如cURL或WGET)的任何其他程序來(lái)對(duì)其進(jìn)行測(cè)試。
打開Web瀏覽器并使用這兩個(gè)URL之一。就我而言,我的Bluemix應(yīng)用程序的地址是https://vsiotll.mybluemix.net
https://vsiotll.mybluemix.net/led/on
https://vsiotll.mybluemix.net/led/off
注意:隨著我將自己的空間用于自己的空間,此網(wǎng)址很快就會(huì)消失教育目的。
第16步:結(jié)論
使用適當(dāng)?shù)钠脚_(tái)和工具,可以帶給您永久的價(jià)值。相對(duì)輕松地實(shí)現(xiàn)生活中任何瘋狂的想法。今天,與硬件和軟件進(jìn)行交互非常簡(jiǎn)單,此外,構(gòu)建有趣的東西可以幫助您使生活更輕松:也許是一種能夠感應(yīng)到植物的水分或濕度,然后在需要時(shí)澆水的設(shè)備,或者是一種寵物飼養(yǎng)設(shè)備,單擊移動(dòng)設(shè)備中的按鈕即可觸發(fā)??赡苄允菬o(wú)止境的!
您應(yīng)該牢記的一件重要事情是:安全是一個(gè)大話題,永遠(yuǎn)不可低估。這是諸如IBM Watson IoT之類的平臺(tái)幫助您保護(hù)和管理設(shè)備的機(jī)會(huì)。
責(zé)任編輯:wv
-
IBM
+關(guān)注
關(guān)注
3文章
1761瀏覽量
74767
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論