談到物聯(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 進(jìn)行通信。
物聯(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)它已被接收。但是,高可靠性帶來(lái)了巨大的開(kāi)銷,有時(shí)對(duì)于物聯(lián)網(wǎng)應(yīng)用程序,TCP 標(biāo)頭可能大于有效負(fù)載本身。另一方面,UDP 是無(wú)連接且不可靠的,這意味著它允許丟失數(shù)據(jù)包以提高速度。TCP 用于數(shù)據(jù)必須通過(guò)的地方,而 UDP 用于可以接受一些數(shù)據(jù)丟失的地方(例如,當(dāng)流式傳輸視頻時(shí))。
在應(yīng)用層,HTTP(超文本傳輸協(xié)議)已經(jīng)成為基于網(wǎng)絡(luò)的通信最標(biāo)準(zhǔn)化的協(xié)議之一。它是作為客戶端-服務(wù)器時(shí)代的請(qǐng)求-響應(yīng)模型開(kāi)發(fā)的,其中客戶端(例如,瀏覽器)打開(kāi) TCP 連接以將請(qǐng)求發(fā)送到返回響應(yīng)的服務(wù)器(例如,Web 服務(wù)器)。TLS 通常用于保護(hù) 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)信息。
因此,另一種應(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)在讓我們看看邊緣到云的通信是如何工作的。在本博客中,我們將以Qualcomm? MDM9206 LTE 調(diào)制解調(diào)器和Qualcomm? Snapdragon? 移動(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è)處理器一起用作調(diào)制解調(diào)器。
為了促進(jìn)通信,您可以使用Qualcomm? LTE for IoT SDK,它支持 TLS、DTLS、MQTT 和 HTTP,并提供“墊片層”用于連接到Azure IoT Hub。
此填充層包括 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)用架構(gòu):
ThreadX 設(shè)備上 Azure 應(yīng)用程序的體系結(jié)構(gòu)。
此 shim 層還包括許多腳本,這些腳本設(shè)置構(gòu)建環(huán)境來(lái)為您的設(shè)備構(gòu)建應(yīng)用程序。
使用 MDM9206 LTE 調(diào)制解調(diào)器將 IoT 設(shè)備連接到 AWS IoT
該開(kāi)發(fā)工具包還可用于使用 MQTT 消息與 AWS IoT 進(jìn)行通信。GitHub 上有一個(gè)演示和項(xiàng)目,提供了一些很棒的資源:IoT Merchandise Cart和Merchandise -cart-aws-iot 項(xiàng)目。
將您的設(shè)備連接到 AWS IoT 所涉及的關(guān)鍵步驟是:
創(chuàng)建 EC2 實(shí)例并啟用正確的端口
將應(yīng)用程序添加到 EC2 實(shí)例
從 AWS IoT 獲取應(yīng)用程序的證書和私鑰
構(gòu)建設(shè)備端應(yīng)用程序并將其與證書和私鑰以及任何其他支持文件一起傳輸?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 通信的工作原理。
將在 Snapdragon 平臺(tái)上運(yùn)行的基于 Linux 的 IoT 設(shè)備連接到 AWS IoT
Snapdragon 移動(dòng)平臺(tái)為物聯(lián)網(wǎng)解決方案提供了更廣泛的功能。它們還使開(kāi)發(fā)人員能夠集成以各種編程語(yǔ)言編寫的更高級(jí)別的 SDK 和庫(kù)。
使用 MQTT 的基于 Snapdragon 的設(shè)備和 AWS IoT 之間的通信可以通過(guò)其中一個(gè) AWS IoT SDK(例如AWS IoT Device SDK for Python) 來(lái)完成。
連接到 AWS IoT 所涉及的關(guān)鍵步驟是:
1. 在 AWS 中創(chuàng)建一個(gè)項(xiàng)目
創(chuàng)造一個(gè)“東西”
將“事物”連接到設(shè)備
選擇編程語(yǔ)言
生成證書和策略并將它們添加到項(xiàng)目中
2. 在客戶端/設(shè)備上安裝 AWS IoT 所需的 SDK
3. 使用以下實(shí)現(xiàn)創(chuàng)建設(shè)備端應(yīng)用程序:
將 AWS 模塊添加到客戶端代碼
在傳遞私鑰和證書的代碼中實(shí)例化客戶端
開(kāi)始連接
訂閱主題并指定回調(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)器等專用硬件和 Snapdragon 移動(dòng)平臺(tái)等更通用的設(shè)備上實(shí)現(xiàn)。
更一般地說(shuō),這種設(shè)備到云架構(gòu)提供了一組豐富的選項(xiàng),用于在物聯(lián)網(wǎng)設(shè)備和/或云上進(jìn)行處理。然而,歸根結(jié)底,關(guān)鍵在于您可以如何通過(guò)互聯(lián)網(wǎng)在設(shè)備和遠(yuǎn)程服務(wù)之間實(shí)現(xiàn)雙向數(shù)據(jù)通信。
審核編輯:郭婷
-
互聯(lián)網(wǎng)
+關(guān)注
關(guān)注
54文章
11167瀏覽量
103474 -
IOT
+關(guān)注
關(guān)注
187文章
4216瀏覽量
197060 -
AWS
+關(guān)注
關(guān)注
0文章
432瀏覽量
24403
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論