在物聯(lián)網(wǎng) (IoT) 方面,云在允許開(kāi)發(fā)人員在邊緣設(shè)備和遠(yuǎn)程數(shù)字服務(wù)之間分配計(jì)算方面發(fā)揮著重要作用。這種架構(gòu)為多種解決方案開(kāi)辟了潛力,在這些解決方案中,設(shè)備和云服務(wù)使用高效的協(xié)議在當(dāng)今的高速通信通道上協(xié)同工作。當(dāng)然,支持所有這些需要從物理層到應(yīng)用層的強(qiáng)大雙向通信。
在本博客中,我們將簡(jiǎn)要回顧有助于促進(jìn) IoT 通信的常見(jiàn)傳輸和應(yīng)用層協(xié)議,然后了解如何讓 IoT 邊緣設(shè)備與 Microsoft Azure 和 AWS IoT 通信。
物聯(lián)網(wǎng)連接協(xié)議
無(wú)論邊緣到云的物聯(lián)網(wǎng)通信多么復(fù)雜,這一切都?xì)w結(jié)為設(shè)備和遠(yuǎn)程服務(wù)之間通過(guò)互聯(lián)網(wǎng)進(jìn)行的雙向數(shù)據(jù)通信。
從傳輸層開(kāi)始,設(shè)備到云的通信通常通過(guò)TCP(傳輸控制協(xié)議)或UDP(用戶數(shù)據(jù)報(bào)協(xié)議)通道進(jìn)行。TCP是面向連接的可靠,這意味著發(fā)送的每個(gè)數(shù)據(jù)包都需要確認(rèn)已收到。但是,隨著可靠性的提高,開(kāi)銷也隨之而來(lái),有時(shí)對(duì)于物聯(lián)網(wǎng)應(yīng)用程序,TCP 標(biāo)頭可能大于有效負(fù)載本身。另一方面,UDP 是無(wú)連接且不可靠的,這意味著為了速度,它允許丟失數(shù)據(jù)包。TCP用于數(shù)據(jù)必須通過(guò)的地方,而UDP用于某些數(shù)據(jù)丟失可以接受的地方(例如,在流式傳輸視頻時(shí))。
在應(yīng)用層,HTTP(超文本傳輸協(xié)議)已成為基于Web的通信中最標(biāo)準(zhǔn)化的協(xié)議之一。它是作為客戶端-服務(wù)器時(shí)代的請(qǐng)求-響應(yīng)模型開(kāi)發(fā)的,其中客戶端(例如瀏覽器)打開(kāi)TCP連接以向返回響應(yīng)的服務(wù)器(例如Web服務(wù)器)發(fā)送請(qǐng)求。TLS 通常用于保護(hù)通過(guò) TCP 的 HTTP 通信,而 DTLS 通過(guò) UDP 執(zhí)行類似的功能。IoT 設(shè)備可以使用此設(shè)置與使用 RESTful/SOAP Web 服務(wù)的 Web 服務(wù)器進(jìn)行通信。
例如,設(shè)備可以使用 HTTP GET/POST 方法通過(guò) TCP/IP 連接與服務(wù)器通信,并提供以 XML、JSON 或其他格式格式化的有效負(fù)載。每個(gè)步驟(TCP/IP、HTTP、XML/JSON)都會(huì)不斷增加有效負(fù)載的開(kāi)銷,這是最終應(yīng)用程序正在尋找的唯一相關(guān)信息。
因此,另一個(gè)應(yīng)用層協(xié)議MQTT(消息隊(duì)列遙測(cè)傳輸)在物聯(lián)網(wǎng)中變得流行起來(lái)。它是一種輕量級(jí)協(xié)議,代碼占用空間小,適用于嵌入式物聯(lián)網(wǎng)設(shè)備等受限環(huán)境。最值得注意的是,它采用發(fā)布-訂閱模型,通過(guò)中央 MQTT“代理”促進(jìn)設(shè)備之間的一對(duì)多通信——這正是物聯(lián)網(wǎng)通常需要的通信類型!
了解了這些底層協(xié)議后,現(xiàn)在讓我們看看邊緣到云通信的工作原理。在本博客中,我們將以高通MDM9206 LTE調(diào)制解調(diào)器和高通??驍龍?移動(dòng)平臺(tái)為例,因?yàn)樗鼈冋f(shuō)明了制造商如何從硬件級(jí)別到API通信堆棧的支持可以促進(jìn)物聯(lián)網(wǎng)到云的開(kāi)發(fā)。
將 MDM9206 LTE 調(diào)制解調(diào)器物聯(lián)網(wǎng)設(shè)備連接到 Azure
MDM9206 是一種相當(dāng)專業(yè)的設(shè)備,通常與另一個(gè)處理器結(jié)合使用,用作調(diào)制解調(diào)器。
為了方便通信,您可以使用支持TLS,DTLS,MQTT和HTTP的高通? LTE IoT SDK,并提供用于連接到Azure IoT Hub的“填充層”[2]。
此填充層包括 Azure 輸入/輸出 (I/O) 和平臺(tái)填充層庫(kù),作為用戶空間中 ThreadX 平臺(tái)上 Azure 應(yīng)用程序開(kāi)發(fā)的包的一部分。Azure 應(yīng)用程序使用 Microsoft Azure SDK 定義的 API 與 Azure IoT SDK C 模塊進(jìn)行交互。Azure IoT SDK C 模塊使用適配器層與 ThreadX IoT 堆棧進(jìn)行交互。下圖顯示了 ThreadX IoT 設(shè)備上的 Azure 應(yīng)用程序體系結(jié)構(gòu):
ThreadX 設(shè)備上 Azure 應(yīng)用程序的體系結(jié)構(gòu)。圖片由高通技術(shù)公司提供
此填充層還包括許多腳本,這些腳本設(shè)置生成環(huán)境以為設(shè)備構(gòu)建應(yīng)用程序。
將具有 MDM9206LTE 調(diào)制解調(diào)器的物聯(lián)網(wǎng)設(shè)備連接到 AWS IoT
該開(kāi)發(fā)工具包還可用于使用 MQTT 消息與 AWS IoT 進(jìn)行通信。GitHub上有一個(gè)演示和項(xiàng)目,提供了一些很棒的資源:IoT Goods Cart和merchant-cart-aws-iot項(xiàng)目。
將設(shè)備連接到 AWS IoT 所涉及的關(guān)鍵步驟包括:
創(chuàng)建 EC2 實(shí)例并啟用正確的端口
將應(yīng)用程序添加到 EC2 實(shí)例
從 AWS IoT 獲取應(yīng)用程序的證書(shū)和私有密鑰
構(gòu)建設(shè)備端應(yīng)用程序,并將其與證書(shū)和私鑰以及任何其他支持文件一起傳輸?shù)皆O(shè)備
使用設(shè)備設(shè)置傳感器映射以跟蹤產(chǎn)品庫(kù)存水平
啟動(dòng)瀏覽器并導(dǎo)航到您的 AWS IoT 應(yīng)用程序
在設(shè)備上運(yùn)行應(yīng)用程序
如果您有興趣了解更多信息,請(qǐng)查看項(xiàng)目的示例應(yīng)用程序模塊,了解如何通過(guò) MQTT 將庫(kù)存水平發(fā)布到 EC2。您還可以通過(guò)查看aws_iot_mqtt*.c 文件來(lái)了解 MQTT 通信的工作原理。
將運(yùn)行在驍龍平臺(tái)上的基于 Linux 的物聯(lián)網(wǎng)設(shè)備連接到 AWS IoT
驍龍移動(dòng)平臺(tái)為物聯(lián)網(wǎng)解決方案提供了更廣泛的功能。它們還使開(kāi)發(fā)人員能夠集成以各種編程語(yǔ)言編寫(xiě)的更高級(jí)別的 SDK 和庫(kù)。
基于 Snapdragon 的設(shè)備與使用 MQTT 的 AWS IoT 之間的通信可以通過(guò)其中一個(gè) AWS IoT 開(kāi)發(fā)工具包(例如 AWS IoT Device SDK for Python)[4] 來(lái)完成。
連接到 AWS IoT 所涉及的關(guān)鍵步驟包括:
1. 在 AWS 中創(chuàng)建項(xiàng)目
創(chuàng)建一個(gè)“事物”
將“事物”連接到設(shè)備
選擇編程語(yǔ)言
生成證書(shū)和策略并將其添加到項(xiàng)目中
2. 在客戶端/設(shè)備上安裝 AWS IoT 所需的開(kāi)發(fā)工具包
3. 使用以下實(shí)現(xiàn)創(chuàng)建設(shè)備端應(yīng)用程序:
將 AWS 模塊添加到客戶端代碼
在傳遞私鑰和證書(shū)的代碼中實(shí)例化客戶端
啟動(dòng)連接
訂閱主題并指定回調(diào)以接收回饋信息
根據(jù)應(yīng)用的要求發(fā)布消息
結(jié)論
通過(guò)標(biāo)準(zhǔn) OSI 模型協(xié)議工作的設(shè)備到云通信為云服務(wù)提供了骨干。物聯(lián)網(wǎng)設(shè)備到云的連接可以在專用硬件(如MDM9206 LTE調(diào)制解調(diào)器)和更通用的設(shè)備(如驍龍移動(dòng)平臺(tái))上實(shí)現(xiàn)。
更一般地說(shuō),這種設(shè)備到云的架構(gòu)為在物聯(lián)網(wǎng)設(shè)備和/或云上進(jìn)行處理提供了一組豐富的選項(xiàng)。但是,歸根結(jié)底,這完全取決于您如何通過(guò)互聯(lián)網(wǎng)在設(shè)備和遠(yuǎn)程服務(wù)之間實(shí)現(xiàn)雙向數(shù)據(jù)通信。
審核編輯:郭婷
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2912文章
44882瀏覽量
375703 -
調(diào)制解調(diào)器
+關(guān)注
關(guān)注
3文章
857瀏覽量
38876
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論