AWS IoT Services 結合 LinkIt™ ONE 開發平台入門教學 – 第一支AWS IoT 程式

本文參考 Mediatek Labs 的 AWS (Amazon Web Services) IoT 教學頁面,告訴您如何讓簡易的 AWS IoT 服務執行在您的 LinkIt ONE 開發板上。在建立並執行您的第一份 AWS IoT 草稿碼之前,請先根據以下連結來建置開發環境並取得 AWS IoT 憑證。

AWS IoT Services 結合 LinkIt™ ONE 開發平台入門教學 – 環境建置與取得憑證

快速入門:

  • 將 LinkIt ONE 開發板切為儲存模式並放入 .pem 檔
  • 在 Arduino IDE 中匯入 mbed TLS 與 AWS IoT Services MQTT 函式庫
  • Wi-Fi 設定
  • 編寫程式

按部就班:

Step 1: 將 LinkIt ONE 開發板切為儲存模式並放入 .pem 檔 
開發 AWS IoT Services 之應用程式可在 Arduino IDE 完成。在開始寫程式之前,我們得先將憑證放到 LinkIt ONE 開發板的記憶體中,如果您還沒有取得憑證的話,請根據本文來操作。步驟如下:

  1. 請依照下圖將 LinkIt ONE 開發板切為儲存 (Mass Storage) 模式


    LinkIt ONE 切換到 mass storage 模式

  2. 電腦中找到卸除式存放裝置(Devices and Removable Storage),請開啟對應於您的 LinkIt ONE 開發板的那個卸除式存放裝置。


    LinkIt ONE 作為卸除式儲存裝置

  3. 複製 .pem 的憑證檔到 LinkIt ONE 中。


    將憑證檔放入 LinkIt ONE

  4. 現在請將板子切回 Normal Bootup 模式 (UART) 並接續編寫草稿碼。


    將 LinkIt ONE 開發板板子切回 Normal Bootup 模式

Step 2: 在 Arduino IDE 中匯入 mbed TLS 與 AWS IoT Services MQTT 函式庫 

編寫 AWS LinkIt ONE 的草稿碼需要匯入 mbed TLS 與 AWS IoT Services MQTT 等函式庫才能支援 MQTT 通訊。mbed TLS 函式庫可讓您的裝置(包含嵌入式裝置) 具備 SSL/TLS 功能,不需要修改太多程式就可直接使用。

您可在 GitHub 上的 aws_mbedtls_mqtt repository 找到本 Arduino 專案的原始碼(aws_paho_mqtt.ino) 以及函式庫。請將本函式庫複製到您的 Arduino/libraries 資料夾中即可。

Step 3: Wi-Fi 設定 
LinkIt ONE 開發板有豐富的聯網功能,包含 Wi-Fi, Bluetooth and GSM/GPRS。本範例將使用 Wi-Fi 來連上網際網路。請參閱 LinkIt ONE developer’s guide 的 section 5.3 “Connecting to the web using Wi-Fi” 來理解如何在板子上接好 Wi-Fi/Bluetooth 天線並在程式碼中匯入 LWifi 函式庫。

Step 4: 編寫程式
本範例將示範如何運用 AWS IoT Services與 LinkIt ONE 開發板進行 MQTT 的 publish 與 subscribe 這兩個功能。您需要在 Arduino 草稿碼中更新您所選用的 AWS IoT Services 標題 (topic) 名稱,以及方才存放在 LinkIt ONE 開發板中的憑證名稱。

  1. 在 Arduino IDE 中開啟 aws_paho_mqtt.ino 這份草稿碼。
  2. 解析主機名稱 (hostname) 來取得 IP 位址,請在 cmd 中執行以下指令:
    ping g.us-east-1.pb.iot.amazonaws.com

    執行指令後的畫面如下圖,只是您電腦所顯示的 IP 應該是不一樣的。請把 IP 位址記下來。


    驗證主機名稱的 IP 位址

    將 VMSTR IP_ADDRESS 變數值改為您在上一步所取得的 IP 位址

    VMSTR IP_ADDRESS = “54.86.88.20”; //currently only support IP address
  3. 修改您的憑證名稱。
    char cafileName[] = "A5.pem";
    char clientCRTName[] = "cert.pem"; char clientKeyName[] = "privatekey.pem";
  4. 將以下變數值換成您的 topic 名稱。
    subParams.pTopic = "yourTopicName";
    Params.pTopic = "yourTopicName";
  5. 將程式碼上傳到 LinkIt ONE 開發板。
  6. 在 Arduino IDE 中開啟 Serial Monitor,首先看到的訊息是關於是否成功連上網路AP 與 AWS 。


上傳草稿碼之後顯示於 Serial Monitor 上的訊息

使用 MQTT 通訊協定持續將訊息發佈到 Serial Monitor

恭喜!您已經成功使用 AWS IoT Services、LinkIt ONE 開發板搭配 MQTT 通訊協定來發布訊息了。

您需要用到 MQTT client 才能驗證 MQTT 的 subscribe 功能,請參考 AWS IoT Services Getting Started Guide 中的 “Verify MQTT Subscribe and Publish” 說明頁面。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *