【物聯網雲端對接-1】 通過HTTP協議與微軟Azure IoT hub進行雲端通訊

葉帆發表於2017-02-13

在2015年曾寫過一篇文章《從微軟build 2015,展望微軟未來發展》,提到了微軟的Azure和Windows 10 IoT,那算是初次接觸微軟物聯網技術。比較幸運的是在後續的時間裡,有幸和微軟相關部門進行了深入合作,對微軟的Azure雲及Windows 10 IoT有了更深的瞭解。

除了最初的基於樹莓派平臺做了微軟利事盒教育箱(如下圖所示)外,尤為重要的是基於臺灣新漢的NISE50 Windows 10 IoT工控級閘道器對接微軟Azure IoT Hub平臺開發了養殖監控系統,後續在濰坊的一個現場成功實施。

   

並於今年的1月9號在中關村微軟大廈和甘來、健安華夏和研華相關人員一起向微軟物聯網部門彙報了各自和微軟雲相關的專案進展。

 

不過基於Windows 10 IoT終端裝置,對物聯網專案來說,還是太“重”了,急需輕量級的閘道器進行資料採集,並上傳到微軟Azure IoT hub端。

好在微軟提供了裝置端的SDK(連結如下)

https://github.com/Azure/azure-iot-sdks

有基於C程式碼,也有基於C#程式碼的SDK,另外我們有價效比較高的,且相對成熟的物聯網閘道器硬體,所以最直接的想法就是把SDK相關程式碼移植到硬體上去,但是沒有想到一開始就困難重重,開始的幾個月一直進展不大,後來在微軟紀尚豪和王啟霄等老師的協助下,突破了相關瓶頸,成功在凌霄物聯網閘道器上移植成功了:基於Mbed OS系統的MQTT介面的雲端通訊、以及基於.NET  Micro Framwork系統上的HTTP和MQTT的雲端通訊。

本篇文章就先介紹基於.NET  Micro Framwork系統上的HTTP協議和微軟Azure雲進行通訊的整個過程。

第一步:在Microsoft Azure上建立一個IoT Hub

 

建立完畢後,大概這個樣子

 

建立完畢後,我們單擊共享訪問策略,獲取共享訪問金鑰。

第二步:藉助Devcie Explorer Twin工具建立裝置

從上面SDK連結中可以下載這個工具的原始碼,編譯執行,在IoT Hub Connection String中填寫第一步的共享訪問金鑰。

然後在Management頁面建立裝置

 

下一個操作比較關鍵,我們要獲取裝置的連線字串,以便在裝置中填寫這個字串。

 

第三步:在.NET Micro Framework程式碼中填入連線字串,並進行聯調

 

裝置執行後,在Device Explorer Twin的Data選項卡中就可以看到裝置上傳的資料了。

 

同樣,也可以測試資料下發,可發現雙向通訊都是正常的。

這個時候登陸Microsoft Azure我們可以看到資料上傳的情況。

 

本篇文章先介紹到這裡,下一篇文章將介紹基於MQTT通訊協議和微軟Azure雲進行通訊的過程。有對微軟物聯網開發感興趣的網友可以加我的QQ(71825781)或微信(yefanqiu),一起進行物聯網技術探討。

 

相關文章