天天看點

【物聯網雲端對接-3】通過MQTT協定與微軟Azure IoT Hub進行雲端通信

在上一篇文章《通過MQTT協定與阿裡雲物聯網套件進行雲端通信》中,我們介紹了通過MQTT對接阿裡雲的物聯網套件。其實同樣的代碼,稍加調整也可以對接到微軟AzureIoT hub上,不過需要注意的是,裝置的認證機制是不一樣的。

我們在《通過HTTP協定與微軟Azure IoT hub進行雲端通信》中,已經介紹了如何在微軟Azure中建立裝置,是以本篇文章不再贅述,需要的了解的網友可以看相關連結的文章内容。

微軟MQTT伺服器的預設端口是8883,在連接配接的時候,其裝置名就是裝置ID,使用者名域名+裝置ID,密碼是toKen。簡單期間這個toKen可以用DevcieExplorer Twin工具建立,但是這個是有時間期限的,過期就不能使用了。

【物聯網雲端對接-3】通過MQTT協定與微軟Azure IoT Hub進行雲端通信

在實際項目中,這種方式肯定不行,需要我們根據需要動态生成toKen,相關代碼如下:

【物聯網雲端對接-3】通過MQTT協定與微軟Azure IoT Hub進行雲端通信

微軟和阿裡一樣,微軟也有預設的topic。

資料釋出:"devices/"+ DeviceId + "/messages/events/"

消息訂閱:"devices/"+ DeviceId + "/messages/devicebound/#";

方法訂閱:$iothub/methods/POST/#

同樣除了自行編寫代碼外,為了便于各種傳感器和智能子產品的接入,我們還采用了YFIOs組态的方式去連接配接微軟Azure IoT hub,這樣無需程式設計,就可以快速和雲端進行雙向通信了。

第一步:添加智能裝置

【物聯網雲端對接-3】通過MQTT協定與微軟Azure IoT Hub進行雲端通信

添加裝置的同時,IO變量會自動建立。

【物聯網雲端對接-3】通過MQTT協定與微軟Azure IoT Hub進行雲端通信

第二步:添加系統政策:微軟雲MQTT用戶端

【物聯網雲端對接-3】通過MQTT協定與微軟Azure IoT Hub進行雲端通信

填寫必要的參數,勾選需要上傳到雲端的IO變量。

【物聯網雲端對接-3】通過MQTT協定與微軟Azure IoT Hub進行雲端通信

第三步:部署運作

【物聯網雲端對接-3】通過MQTT協定與微軟Azure IoT Hub進行雲端通信

運作後,我們打開DevcieExplorer Twin工具,可以看到資料已經上傳了。

【物聯網雲端對接-3】通過MQTT協定與微軟Azure IoT Hub進行雲端通信

同樣我們也可以向裝置發送資料,發送完畢後,我們發現裝置上的繼電器燈被點亮或關閉。

【物聯網雲端對接-3】通過MQTT協定與微軟Azure IoT Hub進行雲端通信

相關的硬體如下:

【物聯網雲端對接-3】通過MQTT協定與微軟Azure IoT Hub進行雲端通信

繼續閱讀