本文要介紹如何讓您的 LinkIt ONE 開發板連上 MediaTek Cloud Sandbox 雲端服務。官方說明
前言
首先是在 MCS 上建立一個測試用裝置來代表您的 Linkit one 開發板,接著上傳 Arduino 程式碼好讓這片板子可以藉由 RESTful API 把 代表 D13 LED 燈狀態的資料點(data point) 發佈到 MSC,就能用 MSC 來控制 LED 燈狀態(使用 TCP Socket)。
硬體需求
您需要完成以下兩步驟::
- LinkIT ONE 開發板,用USB 或電池供電皆可
- 可讓 LinkIT ONE 開發板連上的無線網路
其它則不需任何電子零件,當然您之後要再加入也是可以的。
Step 1. 建立開關式資料通道(Switch-Type data channel) 的新產品 (product)
a. 登入 MSC 之後,請在左側導覽列點選 “Development“,接著點選 “Create” 來建立新產品
b. 請為您的產品填入相關資訊,包括名稱、版本、晶片版號、產品簡述等等,最後點選 save 存檔完成。
c. 在新建完成的產品頁面點選 “Detail”
d. 在本頁面中,選擇 “Data Channel” 標籤並點選 “Add” 來建立新的資料通道。
在此要建立兩個資料通道,一個是用來呈現板載 LED 狀態的顯示器資料通道(Display Data Channel);另一個則是對 LinkIt ONE 開發板發送指令來控制 LED 亮滅的控制器資料通道(Controller Data Channel)。
e. 請點選 “Display” Data Channel” 並輸入以下資訊:
請把 Data Channel Id 記下來,之後在進行 API 呼叫時要用它來識別。
f. 重複上一步,但請選擇 “Controller” Data Channel” 並輸入以下資訊。它也有一個 Data Channel Id, 請記下來,之後在進行 API 呼叫時要用到它。
g. 完成之後,您應該會在頁面上看到兩個資料通道,如下圖:
Step 2. 建立測試裝置
a. 請點選網頁右上角的 “Create Test Device” 來建立測試裝置。
b. 一旦建立好測試裝置之後,就會看到這個訊息視窗,建立成功囉!
c. 請點選左側導覽列的 “My devices“,您應該可以看到剛剛新增好的 test device。
d. 請點選 “detail” 來看一下裝置頁面。請把裝置ID (deviceId) 與 裝置金鑰(deviceKey),稍後呼叫 API 時會用到。
Step 3. 取得 Device ID, Device Key, Data Channel ID
以下是我們要控制這個 test device 裝置所需要的資訊。請注意以下的 deviceId 與 deviceKey 要使用您自己裝置的資訊,別忘了在程式碼中修改。
Name | Value | Remark |
---|---|---|
deviceId | Dsre1qRQ | Unique Identifier for this Test Device |
deviceKey | DFbtsNWg4AuLZ30v | Unique API Key for this Test Device |
dataChannelId | LED | Data Channel Id for LED status |
dataChannelId | LED_CONTROL | Data Channel Id for LED control |
Step 4. 編寫開發板的程式
開發板端的程式流程如下,程式碼請由此下載。請注意,本份程式碼需要用到 HttpClient 函式庫,記得下載喔
a. 呼叫 RESTful API:GET api.mediatek.com/mcs/v2/devices/{deviceId}/connections.csv 。藉此取得 Socket Server IP 與Port 的回應值。
b. 初始化 TCP 連線的 socket server
c. 透過 RESTful API ,每5秒鐘上傳一次 D13 (LED) 的狀態到 MCS:POST api.mediatek.com/mcs/v2/devices/{deviceId}/datapoints.csv
d. 透過 TCP 連線來監聽由 MSC 發來的切換指令
e. 每 90 秒更新一次 TCP 連線
Step 5. 啟動!
上傳程式完成的話,請確認裝置真的連上無線網路(天線記得插!),並開啟 Serial Monitor 來看看是否有下列的連線確認訊息。
現在可以回到裝置頁面,這時 LED controller 已經正常運作了,當您將 LED 切換到 ON 時,板子上的 LED 就會亮起來,接著and moments later the state of the LED data channel 的狀態也會跟著顯示為 ON state。另外當您將 LED 切換到 OFF 時,板載LED會熄滅,LED data channel 也馬上會顯示為 OFF state。
完成了,您可以控制 LED 了嗎?
請問HttpClient 函式庫下載完成,如何include進來? 謝謝.#include
您好,解壓縮之後將裡面的檔案(有 HttpClient.h, HttpClient.cpp 與 /examples 資料夾等)放到下的 /libraries 資料夾之後,再次開啟 Arduino IDE 就好
您好,我想問一下,就是linkit one 這塊板子除了跟MCS連結外,能夠跟Temboo的網站(arduino Yun) 作連結嗎 ?
我想應該無法,因為目前 linkit one 不能跑 temboo 函式庫
我可以控制LED,但是display卻不會改變,請問該怎麼解?
我有重新整理,還是一樣
您好, 請檢查 channel id 是否一致. 並改用 MCS 教學上最新的 code 試試看. 有時候 API 會改 https://raw.githubusercontent.com/Mediatek-Cloud/MCS/master/source_code/linkit_sample_ino.ino
您好,想問您一個問題。
a. 呼叫 RESTful API:GET api.mediatek.com/mcs/v2/devices/{deviceId}/connections.csv 。藉此取得 Socket Server IP 與Port 的回應值。
請問要怎麼呼叫呢?是要由哪個平台呼叫?
感謝您!
您好,這是透過 LinkIt ONE 對 MCS 雲服務發送,是透過 httpclient 這個函式庫,請參考 MCS 官方教學