bluemix與車聯網

80
IBM Bluemix www.bluemix.net Bluemix 與 車聯網應用實作 Y O U C A N D O I T B E T T E R , F A S T E R A N D M O R E C O S T E F F I C I E N T 教材: http://goo.gl/oNWOS4

Upload: hsuan-ju-lin

Post on 16-Apr-2017

323 views

Category:

Internet


1 download

TRANSCRIPT

IBM Bluemix

www.bluemix.net

Bluemix 與車聯網應用實作

Y O U C A N D O I T B E T T E R , F A S T E R A N D M O R E C O S T – E F F I C I E N T

教材: http://goo.gl/oNWOS4

• 實作前準備• 車連網(V2I)、車連路(V2R)

• 車連人(V2H)

建立IOT微服務 建立車子模擬器 安裝Node-RED Node-RED app小練習第一彈:

建立http網站! Node-RED app小練習第二彈:

和iot接上線! 讓模擬車在google map走路 建立Geospecial Analytics微服務 使用Android實機取代模擬車

建立Push Notification微服務

目錄

實作前準備

1.點選人像圖示

2. 確認您的Region, 本次練習請用US South 或United Kingdom, 勿用

Sydney

3. 點選 ManagementOrganizations

4. 點選 Create aSpace

5. 輸入 Space 名稱, 然後按CREATE

歡迎使用IBM Bluemix如果您是初次使用,或尚未建立第一個space, 請執行以下動作。

建立IOT微服務

IOT

IOT GatewayIOT Device

建立IOT微服務

建立IOT微服務

建立IOT微服務

建立IOT微服務

出現剛剛新創的類別vehicle

一直按下一步,直到建立 繼續往下拉!按下一步

建立IOT微服務

一直按下一步,最後按新增

複製組織ID、裝置類型、裝置ID和鑑別記號,貼到自己的記事本記錄下來,在

本應用中會不斷被使用到。

複製完後關掉視窗

建立IOT微服務

為應用程式建立api key和鑑別記號

(像應用程式的帳號密碼)

建立IOT微服務

複製後存放於筆記本

這個應用程式帳密,是特別留給車子模擬器

使用的

建立車子模擬器

MQTT

IOT

模擬器

建立車子模擬器

1. 進入專案vehicle-

simulation

2.按Fork project將project複製到自己的空間

3.

建立車子模擬器

1.點選BUILD & DEPLOY

2.新增暫置

3.設定Build建置

4.新增暫置工作

5.確定儲存

建立車子模擬器

1.再一次新增建置,命名為

Deploy

2. 輸入設定不用變更,直接

切入”工作”標籤

3. 新增工作“部署”

4. 按儲存

建立車子模擬器

1. 切換到線上編輯

EDIT CODE

2.有兩個設定檔必須修改

建立車子模擬器

1.點擊config資料夾下的setting.js

2.填入剛剛複製的:1) DeviceID 帳密2) 應用程式帳密

應用程式帳密

DeviceID帳密

建立車子模擬器

1.到root下的

manifest.yml

更改host和name讓其與部署的project一致

2.點擊最左邊

Git按鈕

建立車子模擬器

1.留下變更的信息記錄

2.按確定儲存變更

3.將變更push到

遠端

切到Build&Deploy

酷! 發現建置與部署

已經自動執行了…

建立車子模擬器

1.點選已佈署完成的網址

2.發現車子模擬器已經成功啟動了!

建立車子模擬器

1.替deviceID建立client

3.用此device的名義,

使用Topic:telemetryTopic發送

event

2.要發送給iot

server的Topic

問題: 這個車子模擬器是如何模擬device?

我們之後就能從iot server接收到此device發佈的telemetryTopic!

安裝Node-RED

我能監控服務的一舉一動

藉由我撰寫程式的邏輯

Node-RED

安裝Node-RED

安裝Node-RED

1.自定Node-RED名稱

(主機和名稱同)

2.Node-RED編譯完成

後,點擊概觀

安裝Node-RED

1.新增GIT

2.打勾並繼續

3.點選編輯程式

安裝Node-RED將教材中,external-plugin資料夾內的資源,拉入線上編輯器的public資料夾內方便我們實作時,引用js和image。

安裝Node-RED

1.點擊GIT按鈕

2.留下變更記錄

3.按確定儲存變更

安裝Node-RED

1.點擊儀表板

2.點擊Node-RED

網址

3.點擊Go to your Node-RED flow

editor

安裝Node-RED歡迎進入Node-RED的世界!! NodeRED的編輯

界面分成四個部分

Node-RED app小練習第一彈: 建立http網站!

目標:傳送url並夾帶x和y參數給Node-RED app,Node-RED app要回傳x+y的結果。

建立http網站!

1.在input區塊拉出http request

2. 在function區塊拉出function

3.在output區塊拉出http response

4.雙擊http request設定path為/text

5.雙擊function

在這裡作參數相加

建立http網站!

1.添加debug node監控function output

2.Deploy部署

3. 呼叫http://{your_nodered_name}.mybluemix.ne

t/text?x=1&y=2試試看剛剛建的小網站

1+2=3

Node-RED app小練習第二彈: 和iot接上線!

Device狀態

Node-RED

IOT

我來監控模擬車的

狀態

MQTT

和iot接上線!

1.選擇Node-RED應用

程式的概觀

2.點選連結服務或API

3.點選之前建立的IOT

服務

4.按新增

和iot接上線!

1.拉出IBM IoT

node

2.拉出Debug

node

3.雙擊IBM IoT做設定

和iot接上線!

1.拉出debug開關

2.看到訊息區的Debug~

監控到源源不絕的IOT訊息

讓模擬車在google map走路

讓模擬車在google map走路

請至教材json code資料夾主網站.txt

1.點選右上方收納盒內的import,選Clipbroad

2.將主網站.txt的所有東西都複製

進去

讓模擬車在google map走路

有Map和

button

1.匯入的node

flows

Main.js放置主要

Javascript邏輯

讓模擬車在google map走路

快來用此網址: http://{your_nodered_name}.

mybluemix.net/cartrack試試看這個google map應用

目前還只是個普通的google地圖

讓模擬車在google map走路

1.點擊Clipboard

2.複製

websocket.txt到自己的Node-

RED

請至教材json code資料夾websocket.txt

讓模擬車在google map走路

這個node flows會接收ibmiot的資訊,經過解析後以websocket輸出。主網站會一直保持和此websocket的連線,讓其能隨時接收到ibmiot的經緯度變化。

讓模擬車在google map走路

1.雙擊

Check device

2.改成模擬車的

deviceID

3.雙擊

/ws/position2

4.新增new websocket-listener

“/ws/position2”

讓模擬車在google map走路

1.Main.js內

由javascript請求websocket

連線

2.連線成功並保持連線

3.追蹤模擬車

並更新模擬車在地圖的位置

讓模擬車在google map走路

Deploy後,快看一下主網站:http://{your_bluemix_name}.mybluemix.net/cartrack我們發現車車已經在我們的地圖動起來了!

建立Geospecial Analytics微服務

Node-RED

IOT

GeospatialAnalytics

Call API自定監控區域

Device狀態

GeospatialAlert

GeospatialAlert

Device狀態

MQTT

建立Geospecial Analytics微服務

Geospatial Analytics Service

功能:監控正在地理區域移動中的IOT裝置,何時進入或離開我們自定的監控區域。

應用:

船舶監控-掌握海洋運輸船隻的行蹤:

車隊監控-用多個監控區域的劃分,取代對講機通訊:

建立Geospecial Analytics微服務

1.回到Node-RED應用程式概觀,按新增服務或API

2.搜尋Geo

找到GeospecialAnalytics並點擊

3.自定服務名稱後按建立

建立Geospecial Analytics微服務

1.點選重新編譯打包

2.

3.此為之後認證所需的所有資訊~請複製到記事本

建立Geospecial Analytics微服務

1.請翻開教材

進入json code資料夾打開geo_call.txt

複製全部

2.將複製的code貼到Clipboard

4.點擊

Edit flow

3.點擊此node

5. 準備設定GeospecialAnalytics api call

出現

建立Geospecial Analytics微服務

目標1:啟動Geospecial,讓它和iot微服務產生連結

IOT

GeospatialAnalytics

GeospatialAlert

Device狀態

建立Geospecial Analytics微服務

1.點擊IOT服務

2.點選存取

3.產生API金鑰給應用程式

建立Geospecial Analytics微服務

1.雙擊Start geo

2.填入IOT認證

建立Geospecial Analytics微服務

1. 打開剛剛複製到剪貼簿的環境變數

2. 雙擊

Call Srart

3. 更換URL

和帳密

( URL只要改path)

URL=https://streams-broker.ng.bluemix.net:443+ start_path

建立Geospecial Analytics微服務

1.Deploy後,回到主畫布點選Start前面

的小突起

2. 等1~2分鐘直到debug區回傳OK OK

我們開啟Geospecial服

務了!

建立Geospecial Analytics微服務

目標2:使用Node-RED建立 Geospatial Analytics RESTful API給main.js調用

Node-RED

GeospatialAnalytics

Call API自定監控區域

建立Geospecial Analytics微服務

1. 雙擊

Add region

2. 更換URL

和帳密

( URL只要改path)

URL=https://streams-broker.ng.bluemix.net:443+ add_region_path

建立Geospecial Analytics微服務

1. 雙擊

Remove region

2. 更換URL

和帳密

( URL只要改path)

URL=https://streams-broker.ng.bluemix.net:443+ remove_region_path

建立Geospecial Analytics微服務

1. 雙擊

Get fence Status

2. 更換URL

和帳密

( URL只要改path)

URL=https://streams-broker.ng.bluemix.net:443+ status_path

建立Geospecial Analytics微服務

1. 雙擊

Stop geo

2. 更換URL

和帳密

( URL只要改path)

URL=https://streams-broker.ng.bluemix.net:443+ stop_path

建立Geospecial Analytics微服務

1. 雙擊

get fence Status

2. 更換URL

和帳密

( URL只要改path)

URL=https://streams-broker.ng.bluemix.net:443+ status_path

建立Geospecial Analytics微服務

Deploy後,快看一下主網站:http://{your_bluemix_name}.mybluemix.net/cartrack我們可以在地圖上面增加/刪除監控區域了!

建立Geospecial Analytics微服務

Node-RED

IOT

GeospatialAnalytics

GeospatialAlert

目標3:在Node-RED解析iot服務傳來的Geospatial Alert~並將它呈現於主網站上

GeospatialAlert

建立Geospecial Analytics微服務

1.請翻開教材

進入json code資料夾打開geoAlert.txt

複製全部

2.將複製的code貼到Clipboard

4.點擊

Edit flow

3.點擊此node

5. 準備測試geoAlert

出現

建立Geospecial Analytics微服務

1.拉一個debug

node連結geoAlert

2.看到訊息欄

的Debug區監控到模擬車的進出狀態

建立Geospecial Analytics微服務

1.拉2條線到

Check device把alert直接導到主網站的websocket

2. Deploy後,快看一下主網站:http://{your_bluemix_name}.myblue

mix.net/cartrack我們發現 geospecial服務 會幫我們

監控進出區域的時間差

進出區域時間差: 12sec

使用Android實機取代模擬車

IOT

實體手機 模擬車

使用Android實機取代模擬車

使用Android實機取代模擬車

一直按下一步,最後按新增

myPhone

myPhone

類型一樣選擇vehicle

複製組織ID、裝置類型、裝置ID和鑑別記號,貼到自己的記事本記錄下來,等

一下登入iot-App會用到。

複製完後關掉視窗

使用Android實機取代模擬車

1.開啟simulation or real device

更改判斷為自定的手機deviceID

2.更新第一個判斷為

自定的手機deviceID

3.Add new web-

socket-listener…新增path

/ws/position1

4.最後別忘記

Deploy

使用Android實機取代模擬車1.

請翻開教材進入app資料夾安裝APK檔

iot.apk

2.將剛剛在iot申請的

DeviceID, AuthToken, Orgnization

填入

3.手機不斷的在發送

MQTT event給IOT服務

使用Android實機取代模擬車

Iot-starter源碼的架構撰寫的容易擴充

又清楚

主要引用來源為

Iot資料夾

使用Android實機取代模擬車

我當時人在基隆XD

模擬車

建立Push Notification微服務

message

建立Push Notification微服務

1.請翻開教材

進入app資料夾打開IBM push.apk並下載至手機

2.開啟App

App會自動開啟推播

記住Device Id等一下Node-RED

推播要用!

建立Push Notification微服務

1.請翻開教材

進入json code資料夾打開IBM_push.txt

複製全部

2.將複製的json

code貼到Clipboard

3.將ibm push node和geoAlert第一個

output相連出現

建立Push Notification微服務

URL:https://mobile.ng.bluemix.net:443/push/v1/apps/{DeviceID}/messages

1.點擊此node

3.雙擊IBM Push

Service

出現

2.點擊

Edit flow

4.更新URL

5.剛剛APP收到的DeviceID

建立Push Notification微服務

車子在出區域時會收到推播!

顯示所待時間和區域名稱

建立Push Notification微服務

在IBM_push app內 (1) 啟動IBM Bluemix service

(2)開起推播!(3)註冊推播!只需數行!!

處理收到推播後的事件邏輯

Node-RED

IOT

GeospatialAnalytics

Node-RED讓寫程式更美好~

Call API自定監控區域

Device狀態

GeospatialAlert

GeospatialAlert

Device狀態

MQTT

IBM push謝謝大家~