【物聯網雲端對接-2】通過MQTT協議與阿里雲物聯網套件進行雲端通訊

weixin_33711641發表於2017-08-19

 在《程式設計師》雜誌2017.4刊上,曾寫過一篇《微軟百度阿里三大物聯網平臺探析》,上面曾介紹了阿里雲物聯網套件的一些內容,在寫該篇文章的時候,凌霄物聯網閘道器還無法對接到此平臺(TLS必須1.1版本以上)。但是隨著阿里雲物聯網套件的不斷髮展,目前裝置除了支援HTTPS認證外,也支援MQTT客戶端域名直連認證(可以是TCP直連模式,也可以是TLS直聯模式)。

最近有幸參與了阿里的飛鳳物聯網平臺計劃,可以更為深入的去研究阿里雲物聯網套件,除了用直接編寫程式碼連線雲外,也嘗試用組態的方式去對接阿里雲物聯網套件。

相對而言,阿里雲物聯網套件,雲端的操作簡單易用。

第一步:建立產品(目前杭州點已經不支援建立產品),建立產品成功後,會產生一個ProductKey。

 

第二步:新增裝置。可以新增若干裝置,為每個裝置配置Topic列表。

 

新增裝置後,裝置證書裡面的裝置名稱(deviceName)和裝置金鑰(deviceSecret)是我們連線雲端裝置所必要的。

 

每個裝置建立後,預設就自動擁有了如下3個Topic。使用者可以根據需要自行新增。

 

雲端做了這些工作,我們就可以在裝置中編寫程式和雲端通訊了。

MQTT需要對接的伺服器域名為:”$productKey. iot-as-mqtt.cn-shanghai.aliyuncs.com”,其中$productKey用實際的產品金鑰來替換,埠號預設為1883。

MQTT連線需要三個參量:mqttClientId, mqttUsername, mqttPassword

這個三個參量如何根據productKey、deviceName和deviceSecret來建立,可以參考阿里雲物聯網套件的相關文件說明,連結如下:https://help.aliyun.com/document_detail/30539.html?spm=5176.doc42743.6.574.ewvmlO

 

程式碼程式設計完成後,部署到凌霄智慧閘道器執行後,就可以在“日誌服務”頁面看到裝置上線及裝置傳送的各種資訊通知了。

 

除了自行編寫程式碼外,為了便於各種感測器和智慧模組的接入,我們還採用了YFIOs組態的方式去連線阿里雲物聯網套件,這樣無需程式設計,就可以快速和雲端進行雙向通訊了。

第一步:新增智慧裝置

 

新增裝置的同時,IO變數會自動建立。

 

第二步:新增系統策略:阿里雲物聯網套件客戶端

 

填寫必要的引數,勾選需要上傳到物聯網套件的IO變數。

 

第三步:部署執行

 

執行後,我們檢視裝置的狀態,已經線上,也會在“日誌服務”中看到資料上傳的資訊。

相關文章