IBM Bluemix : IoT Platform Starter 初探!

在 7688 上的第一支 MQTT 應用程式

wesleyboy42
Maker Cup
Published in
8 min readMar 21, 2016

--

長久以來,IBM 都提供了一個強大的雲端平台 Bluemix,讓很多人可以快速建構自己的網路服務,而在物聯網(Internet of Things)這議題紅遍半天的今天,Bluemix 也開始提供一個快速建構物聯網後端的範本「IoT Platform Starter」,讓開發者們可以輕易連接管理自己的智慧裝置(Smart Device),快速打造自己的物聯網應用。

比較特別的是,除了一般的開發方式外,IBM Bluemix 提供一種圖形化開發的編輯器「Node-RED」,讓我們可以利用簡單的滑鼠拖拉,就能完成後端服務的設計,讓即便不是很熟悉程式語言的朋友,也能進行開發設計。

本文將介紹怎麼在 MTK LinkIt Smart 7688 Duo 開發板上,利用 MQTT 連接我們用 Node-RED 所開發的 IBM Bluemix 後端服務,做一個從裝置端到後端的通盤性介紹。

從登入 Bluemix 開始

首先登入 Bluemix 後,可從頁面上方 menu 選擇型錄,其中樣板中有一個應用程式叫 Internet of Things Platform Starter,我們將從此範本中開始:

選擇好後會進入說明和設定頁面,這時最重要的是要設定應用程式的名稱,因為這將會是你對外的服務名稱,在此範例中我用的是「wesleyiot」:

按下建立後會看到 Bluemix 正在編譯打包應用程式所需的軟體,接下來我們可以按下儀表板接著新增下一個服務:

雖然 IoT 應用程式尚未準備完,但我們已經可以從儀表板上看到 wesleyiot,接下來就可以點擊進入 wesleyiot:

從IoT應用程式中,我們將新增IoT API(服務)來建立IoT設備所需的token,從下圖中"新增服務或API"選項中進入服務清單:

在這些服務清單中,Internet of Things Platform將可以產生IoT設備所需的Token,有了這Token才能讓IoT設備把資料傳到IBM bluemix上,在這範例指的是wesleyiot:

點擊兩下確定後,一樣會進到說明頁面,接下來按下右下角的建立即可:

由於有新增服務,所以原本的應用程式必須要重新編譯,就按下重新編譯打包吧!

等編譯完成後,會看到畫面更新如下,而這畫面中最重要的是應用程式的連結(URL),由於應用程式的命名是 wesleyiot,所以在這會看到「wesleyiot.mybluemix.net」。

點擊應用程式連結後,會看到 Node-RED 畫面,而之後的範例將會講解怎麼利用Node-RED開發 MQTT 的程式,以及怎麼把資料從 MTK LinkIt Smart 7688 Duo 開發板透過 MQTT 傳到 IBM IoT platform 上。

但我們尚未透過IoT服務產生IoT設備所需的Token,所以要先回到IBM Bluemix的儀表板,點擊wesleyiot應用程式,這時應該會看到左下方有IoT的服務:

點擊進去後會看到IoT服務的細項,其中左上角的DEVICE TYPES,顯示目前沒有半個設備,所以接下來將會新增一個設備:

按下Add Device後會出下以下畫面,接下來會發現,新增裝置前還須選擇裝置類型,尷尬的是裝置類型也須自行新增,所以接下來我們就按下建立裝置類型來新增一個吧。

選擇建立裝置類型:

填入裝置類型的名稱,以此範例是7688duo:

直接按下一步:

一樣直接按下一步:

一樣什麼都不用填,直接按建立:

按下建立後會跳回原本新增裝置的畫面,接下來按下下一步:

填入裝置ID,這邊填入方便日後管理的名稱,因為可能會需要新增許多IoT的裝置。

這部分一樣直接按下一步:

這邊選擇系統自動產生裝置記號(Token),所以直接按下一步:

接下來按下新增:

以下的畫面將出現一次,務必把新增出來的組織ID和鑑別記號存好:

新增完裝置之後,接下來就能填入我們的 IoT 設備中,程式範例可從以下連結中下載:

下載 mqtt-publish.js 並修改如下:

其中組織 ID 和鑑別記號則填入剛新增的裝置資訊。

接下來就可以執行:

如果一切正常將會看到以上畫面。

但 IBM bluemix 的 IoT 應用程式還無法接收到訊息,所以接下來將回到 IBM Bluemix 的 wesleyiot 應用程式繼續剩下的編程,按下右下方的紅色按鈕:

預設將會給一個範本:

但目前用不到,所以就先全刪除:

從左方選單中,點選 input 的 ibmiot:

然後拖拉到 Flow 1 的編輯區:

在 ibmiot 的圖示上快速按下兩次右鍵打開設定區:

把 Authentication 改成 Bluemix Service,其他選項全打勾

接下來從 Output 中選 debug 圖示:

然後一樣拖拉到 Flow 1 的編輯區:

在兩個圖示中拉一條線,代表 ibmiot 收到事件的時候會透過debug輸出到右方debug顯示區:

確定一切準備就緒就能按下右上方的Deploy按鈕:

看到編譯完成後,就能重新執行 mqtt-publish.js 範例程式,這時就能從IoT應用程式中看到事件的訊息:

以上就完成了第一步 MQTT 的範例程式。

接下來還會介紹如何使用 IBM IoT 應用程式發送訊息給訂閱者(subscriber)。

--

--