以 MQTT 連結 AMAZON WEB SERVICE 物聯網

MQTT 是一個為了物聯網而設計的協定,常見的 M2M (machine to machine) 資料傳輸方法之一, MQTT 的全名為 Message Queuing Telemetry Transport 。
評論
評論

 MQTT 是一個為了物聯網而設計的協定,常見的 M2M (machine to machine) 資料傳輸方法之一, MQTT 的全名為 Message Queuing Telemetry Transport 。這一套對網路頻寬需求相對較低、可以稱為「輕量級」的協定是透過一個可靠的「發佈/訂閱 (Publish / Subscribe)」模式來做訊息傳遞,也就是當訊息來源更新之時,有表示想要接受訊息並訂閱的使用者就能馬上能收到此訊息,而當需要還原資料時可以使用這個協定中 3 種資料傳遞服務的其中一種─確定一次 (deliver once ,每條訊息肯定會被傳輸一次且僅傳輸一次)、至多一次 (deliver at most once ,訊息可能會丟,但絕不會重復傳輸)、至少一次 (deliver at least once ,訊息絕不會丟,但可能會重復傳輸)。關於 MQTT 的事例有很多,像是 Windows Dev Center 提供用 Visual Studio 來履行 M2Mqtt for .NET client 的例子,讀者可以自行參考。
有興趣打造自己的 M2M 資料傳輸系統的讀者,可以安裝 MQTT 中介或 IoT 閘道器,你還可以擁有不只一個 Galileo 或 Edison 電路板幫你蒐集並更新訊息,這些電路板擁有暫時蒐集、儲存並處理原始 sensor 資料的初步處理能力,將資料處理成 compact 格式 (例如壓縮時間序列或傅立葉轉換)。

這個文章提供逐步引導,如何以 MQTT 連接亞馬遜 AWS ,以及進階設定指令,與程式碼範例。

AWS IoT 初步設定

  1. 若您尚未於 https://aws.amazon.com 擁有帳號,請新建。
  2. 依照 http://docs.aws.amazon.com/cli/latest/userguide/installing.html. 指示安裝 AWS CLI。

增加 AWS CLI 路徑至 Windows 環境變數

  1. 至 Control Panel 點選 System 。
  2. 點選 Advanced system settings 。
  3. 至 Advanced 點選 Environment Variables 。
  4. 於 User variables for me 方框中,點選 PATH 。
  5. 點選 New ,加入完整路徑至 AWS CLI 的安裝目錄,點選 OK 。
  6. 於 System variables 方框中,點選 Path 。
  7. 若 AWS CLI 安裝目錄並未列出,重複第 5 步動作。
  8. 於 Environment Variables 視窗點選 OK 。
  9. 於 System Properties 視窗點選 OK 。

Note : 為了於 Windows 上方便使用,當使用 AWS CLI 時,請依照此教學後續步驟,複製儲存點的目錄。(例如:C:\Users\me\Documents\GitHub\intel-iot-examples-mqtt\support\aws)

螢幕截圖 2016-08-02 19.28.05
執行此指令已確認步驟完成:
 您應得到以下輸出:
aws-verify-install

新增新裝置

螢幕截圖 2016-08-02 19.28.45
使用 create-thing 指令如下,以新增新裝置:
 您應得到以下輸出:
aws-create-device

取得裝置列表

螢幕截圖 2016-08-02 19.31.23
使用 list-things 指令如下,已取得裝置列表:
 您應得到以下輸出:
aws-list-things

取得並設定裝置用之憑證

  1. 提供一個憑證:
     您應得到以下輸出:
  2. Create/attach 規則:
     您應得到以下輸出:
螢幕截圖 2016-08-02 19.35.21
3. 將憑證連接至裝置上 (您需要從 step 1 取得 certificate-arn):

決定 AWS endpoint

螢幕截圖 2016-08-02 19.36.00
您可執行以下指令取得 host :
 您應得到以下輸出:
aws-determine-endpoint

安裝憑證至 Intel® Edison board

螢幕截圖 2016-08-02 19.38.11
於您電腦上執行以下指令:

[email protected] 為您設定在主板上的帳號以及 IP 位置

我們將使用 WinSCP 以安裝憑證至 Intel® Edison board(僅限 Windows)安裝指示請參考 https://github.com/intel-iot-devkit/how-to-code-samples/blob/master/docs/cpp/using-winscp.md.

  1. 使用 WinSCP 登入您的裝置。
  2. 確定您的 host 機器位於您上次執行 AWS* CLI 指令之目錄。
  3. 複製 cert.pem, privateKey.pem 以及 publicKey.pem 至您 Intel® Edison board 的 /home/root 目錄

總結

若您依照上述步驟執行,應已經擁有您的程式與 MQTT 伺服器連接所需資訊:
MQTT_SERVER – 使用您執行 aws iot describe-endpoint 指令取得的 host value 以及 ssl://( C++適用) 或 mqtts:// protocol (JavaScript 適用)
MQTT_CLIENTID -- use < 您的裝置名>
MQTT_TOPIC -- use devices/< 您的裝置名>
MQTT_CERT -使用裝置憑證檔案名
MQTT_KEY -使用裝置 key 檔案名
MQTT_CA – 使用 CA 憑證檔案名 (/etc/ssl/certs/VeriSign_Class_3_Public_Primary_Certification_Authority--G5.pem)

C++附加設定

在 Intel® Edison board 執行您的 C++程式碼時,您需要在 Eclipse 設定 MQTT 客戶端參數如下:

1. 於 Run configurations 以及 Commands to execute before application field 裡執行以下設定

螢幕截圖 2016-08-02 19.44.50

2. 點選 Apply 存取設定。

3. 點選 Run,於您的主板上執行該程式碼。

Javascript 附加設定

螢幕截圖 2016-08-02 19.46.59

精選熱門好工作

品類管理企劃 Category Management Planner

樂購蝦皮股份有限公司
臺北市.台灣

獎勵 NT$15,000

樂趣買 事業開發 Business Development(Rakuma)

台灣樂天市場
臺北市.台灣

獎勵 NT$15,000

產品經理 (PM, PO)

VeryBuy非常勸敗
臺北市.台灣

獎勵 NT$15,000

評論