本文參考 Mediatek Labs 的 AWS (Amazon Web Services) IoT 教學頁面,有 LinkIt ONE 的朋友們歡迎跟著一起作,完成之後即可讓簡易的 AWS IoT 服務執行在您的 LinkIt ONE 開發板上喔
AWS IoT Services 結合 LinkIt™ ONE 開發平台入門教學
AWS IoT 服務現在支援 LinkIt ONE 開發板了!使其可在概念驗證用的專案與Amazon 專門為 IoT 最佳化的雲服務之間建立安全的通訊機制。 AWS IoT 服務使用 MQTT (message queuing telemetry support) 與 HTTP 作為其通訊協定。為了在 LinkIt ONE 上做到這件事,需要用到 mbed TSL library for LinkIt ONE (一種 mbed TLS 函式庫) 來提供傳輸層安全協議 (TLS, Transport Layer Security。本函式庫很容易就能整合新建或既有 (已嵌入) 應用程式並提供安全通訊、加密與金鑰管理所需的相關指令。
如果這是您首次使用 LinkIt ONE 開發板,請參考 LinkIt ONE get started 說明來安裝 Arduino IDE、LinkIt ONE SDK 以及驅動程式。本頁面教學內容包含:
- 您所需的額外軟體
- 設定開發環境
- 建立用於裝置或應用程式通訊的認證
- 建立您的第一個 AWS IoT Services 應用程式
請注意:本教學使用 Windows 作業系統,但在 Mac OSX 上的建置方式是類似的。
取得軟體與硬體
請先從取得所需的軟硬體開始吧
快速入門:
- 購買 MediaTek LinkIt™ ONE and Grove IoT Starter Kit Powered by AWS 套件
- 下載 mbed TSL library for LinkIt ONE 函式庫
- 下載 AWS IoT Services CLI.
- 下載範例程式
按部就班:
Step 1: 取得 AWS LinkIt ONE 開發套件
購買 MediaTek LinkIt™ ONE and Grove IoT Starter Kit Powered by AWS。如果這是您首次使用 LinkIt ONE 開發板,請參考 LinkIt ONE get started 說明來安裝 Arduino IDE、LinkIt ONE SDK 以及驅動程式。
Step 2: 下載用於 LinkIt ONE 的 mbed TSL 函式庫
請由 GitHub 下載 mbed TSL library for LinkIt ONE,本函式庫提供 TLS 功能。AWS IoT Services 的 MQTT 函式庫可讓 LinkIt ONE 開發板使用 MQTT。
Step 3: 下載AWS IoT Services CLI
您可使用 AWS Command Line Interface (CLI) 工具來管理多個 AWS 服務,包含藉由腳本來進行自動化控制。安裝請參閱下一段。
Step 4: 下載範例程式
請由 GitHub 上的 mbed TSL library for LinkIt ONE repository 來下載範例程式
設定開發環境
本段將告訴您如何安裝 AWS IoT Services CLI,接著是將您的 AWS 使用者帳號憑證與您將用來開發的 AWS IoT 存取金鑰 (access key) 連起來。
快速入門:
- 安裝 AWS IoT Services CLI
- 使用您的 AWS 使用者憑證來設定 AWS CLI access key。
按部就班:
Step 1: 安裝 AWS IoT Services CLI
如果您尚未建立 AWS 應用程式的話,請參考本段教學。AWS IoT Services 入門教學提供以下三種方式讓您的板子與 AWS IoT service 來互動:
- 使用 AWS IoT Services Console
- 使用 AWS IoT Services CLI
- 使用 AWS IoT Services SDK
在此將使用 AWS IoT Services CLI 來建立並設定用於裝置辨識與 AWS IoT Services 溝通之憑證。
您需要一個 AWS 帳號才能進行設定。請根據 AWS IoT Services Getting Started Guide 來安裝 AWS command line interface (CLI) 並使用 AWS 提供的 X.509 憑證來設定 authentication 與 authorization。
詳細過程請參閱 AWS IoT Services Getting Started Guide,以下是重點整理:
- 建立一個 AWS 帳號並根據以下說明來建立新的使用者與有效的 access key。
- 建立一個 custom policy 並將其與您新建的使用者帳號聯結,如本段所述。
- 下載並安裝最新版的 AWS CLI,請用 aws –version 指令來檢查所安裝的版本,如下圖:
檢查 AWS CLI 版本 - 請根據 AWS IoT Services Getting Started Guide 第8頁中的 “Installing AWS CLI” 來下載並設定用於 Windows 作業系統之 AWS CLI。
Step 2: 設定用於 AWS 使用者憑證的 AWS CLI access key
使用 aws configure 指令來設定用於您在上一步所取得之 AWS 憑證之 AWS CLI 。
設定用於 AWS 使用者憑證的 AWS CLI access key
到此您已經安裝好了連於您的 AWS 帳號憑證的 AWS CLI 了。
為裝置或應用程式提供憑證
現在要把在上一步中所建立的憑證加入您的 LinkIt ONE 開發板,憑證是用來在開發板與 AWS 之間建立通訊。
快速入門:
- 提供憑證
- 將憑證做成三個 .pem 檔
- 建立一個連於憑證與 topic 的 policy
按部就班:
Step 1: 提供憑證
建立並註冊一個連於 AWS IoT 的憑證稱為 provisioning。在建立並啟動憑證之後,該憑證就就可安裝在您想要對 AWS IoT Services 發送需求的裝置上了。Authorization 是由一個 JSON policy 檔案所控制,該檔案可讓您指定哪些裝置 (連於憑證) 可取得哪些資源。Authorization 是透過 AWS IoT Services policy 所完成的,藉此決定某個憑證的擁有者究竟可執行哪個 AWS IoT Services 作業。請根據 AWS IoT Services Getting Started Guide 第12 頁中的 “Create an AWS IoT Services policy” 說明。
要完成此步驟,請根據 AWS IoT Services Getting Started Guide 第 10 頁的 “Provision a certificate” 。請用您的 AWS IoT Services 金鑰組 (key pair ) 來建立並啟動憑證。
建立開發用的憑證
Step 2: 將憑證分成三個 .pem 檔
將憑證另存成三個不同的 .pem 檔
- 第一個憑證為這兩列之間的敘述:
—–BEGIN CERTIFICATE—–
—–END CERTIFICATE—– - 第二個憑證為這兩列之間的敘述:
—–BEGIN RSA PRIVATE KEY—–
—–END RSA PRIVATE KEY—– - 第三個憑證為這兩列之間的敘述:
—–BEGIN PUBLIC KEY—–
—–END PUBLIC KEY—–
Step 3: 建立與憑證與 topic 連結的 policy 檔
請根據 AWS IoT Services Getting Started Guide 的 “Create an AWS IoT Services policy” 來建立與憑證與 topic 連結的 policy 檔。這樣會建立一個標題為 PubSubTestTopic 的 policy.txt 文字檔,如下圖所示:
建立並驗證 policy 檔
憑證到此已經建立完畢,您現在可以用它搭配 LinkIt ONE 來開發應用程式了!