資料介紹
描述
?
2019 年 10 月 5 日更新,添加桌面應用程序。
名為 Azure Sphere Desktop 的 .NET 應用程序是為消息顯示和反饋控制而構建的,如下所示。請參閱第 6.6 節了解更多詳細信息。
一、簡介
隨著物聯網 (IoT) 的快速發展,越來越多的網絡設備參與其中,為互聯汽車 [1]、工業物聯網 [2, 3]、互聯醫療 [4, 5]、智能互聯鋪平道路從基礎設施的角度來看城市 [6] 和智能家居 [7]。同時,面對來自網絡攻擊者的激進攻擊,這些大型系統中對安全和隱私的考慮已成為一個不容忽視的巨大挑戰[8]。目前,現有工作中主要有兩個安全研究領域。第一個是資源受限物聯網系統的安全方案和策略研究,第二個是物聯網應用安全解決方案的設計和實現。
第一個的研究目前針對四個關鍵領域,包括訪問控制方案、異常檢測、安全模型和密鑰管理,以實現高級別的安全性。首先,對于物聯網中的訪問控制方案,大量深入的研究工作致力于訪問控制架構、用于保護通信通道的密鑰類型、訪問控制通道和訪問控制邏輯 [9]。此外,這種訪問控制方案廣泛應用于植入式醫療設備[10]、體域網[11]、可再生能源智能電網[12]、智能家居[13]和工業網絡系統[14]。其次,為了實現資源耗盡和未授權訪問的自動識別,提出了異常檢測,通常分為三種不同的方式,即無監督異常檢測[15]、監督異常檢測[16]和半監督異常檢測[17]。第三,安全模型是創建可信賴和可互操作的物聯網系統應注意的關鍵促成因素。從這個意義上講,在實際物聯網應用中,通常從感知、傳輸和應用層面考慮硬件安全、數據加密、安全路由、風險評估、入侵檢測、反惡意軟件解決方案、防火墻和信任管理等安全策略。設計 [18, 19]。最后,密鑰管理非常重要,它涉及在輕量級、資源受限的物聯網設備中創建、更新、傳輸和計算加密項目 [20]。
最近,對物聯網解決方案的研究已經在不同層面考慮了安全性。[23] 總結了支持工業物聯網的信息物理系統的安全挑戰,強調了思科物聯網框架下數據挖掘和大數據的安全性。[24] 中設計并實施了一個醫療保健監控框架,其中使用信號增強、水印和其他相關分析來避免身份盜用。文獻[25]研究了身份驗證、隱私加密和安全數據包轉發,并在三層物聯網架構下提出了幾種策略。[26] 中概述了安全原則、安全挑戰和建議的對策。[27] 中給出了有關物聯網協議和應用程序的安全問題摘要,這是基于五層物聯網框架。[28] 中提供了包括邊緣節點、通信和邊緣計算在內的三層漏洞和對策的完整列表。在某種程度上,這些研究已經實現了特定層或多層的安全和隱私目標。然而,據我們所知,真正的物聯網解決方案仍然存在兩個具有挑戰性的問題。第一個是現有的解決方案很少考慮從設備到云端的全程安全。第二個是,由于開發成本和設備功能有限,目前低估了將高價值安全性納入每個低成本(比 10 美元便宜得多)聯網物聯網設備的需求 [29, 30] . 受此事實的鼓舞,
為了解決這一具有挑戰性的問題,Microsoft 發布了一種名為 Azure Sphere 的新型價格敏感應用程序平臺,它將實時處理能力與安全的互聯網連接操作系統 [31] 集成在一起。除了用于應用程序開發的 Azure Sphere MCU SDK 工具外,還包括用于安全云和 Web 連接的 Azure Sphere 安全服務。
Azure Sphere 的目標是使 IoT 設計人員能夠將最高級別的安全性納入每個具有網絡連接的低成本 MCU 設備。基于在設備安全軟件設計方面的豐富經驗,微軟將高度安全的聯網設備的七個必要屬性確定為基于硬件的信任根、小型可信計算基礎、縱深防御、隔離、基于證書的身份驗證、安全更新和故障報告 [32]。為了實現物聯網生態系統中七個必要屬性的目標,Azure Sphere MCU、Azure Sphere OS 和 Azure Sphere 安全服務被設計為在一個和諧的整體中協同工作以降低風險。Azure Sphere 的架構如圖 1 所示。首先,Azure Sphere MCU 由多個 ARM Cortex 內核、網絡連接子系統、多路復用 I/O 外圍設備、集成 RAM 和閃存、硬件防火墻以及 Pluton 安全子系統組成,從硬件角度提供內置安全性。其次,基于 Linux 的自定義內核、安全監視器和托管應用程序容器的操作系統服務從軟件角度添加了四層防御、深度安全環境。最后,與基于證書的身份驗證、及時更新和故障報告相結合的 Azure Sphere 安全服務更新了安全性,以從服務的角度應對新出現的威脅 [33]。從硬件角度提供內置安全性。其次,基于 Linux 的自定義內核、安全監視器和托管應用程序容器的操作系統服務從軟件角度添加了四層防御、深度安全環境。最后,與基于證書的身份驗證、及時更新和故障報告相結合的 Azure Sphere 安全服務更新了安全性,以從服務的角度應對新出現的威脅 [33]。從硬件角度提供內置安全性。其次,基于 Linux 的自定義內核、安全監視器和托管應用程序容器的操作系統服務從軟件角度添加了四層防御、深度安全環境。最后,與基于證書的身份驗證、及時更新和故障報告相結合的 Azure Sphere 安全服務更新了安全性,以從服務的角度應對新出現的威脅 [33]。
在芯片合作伙伴聯發科的幫助下,首款通過 Azure Sphere 認證的 MCU MT3620 于 2017 年底發布 [34]。MT3620 的價格不到 8.65 美元,包括物理 MCU 芯片、芯片許可證、Azure Sphere 操作系統和 Azure Sphere 安全服務。MT3620包括ARM Cortex-A7應用處理器和ARM Cortex-M4F I/O子系統,分別為運行Azure Sphere OS和片上外設的實時控制需求而設計。除了高性能 ARM 內核之外,MT3620 還嵌入了 Pluton 安全子系統和板載 Wi-Fi 子系統,以處理安全啟動、安全系統操作和高吞吐量網絡連接。2019年5月,
基于當前的物聯網趨勢,我們提出了一個包括Azure Sphere設備和Azure云服務的集成解決方案,以應對整體安全、成本和設備管理的挑戰。
參考
1. 庫蒂,S.;法拉,S。Katsaros, K.;迪亞納蒂,M。麥卡洛,F.;Mouzakitis, A. 對最先進的定位技術及其在自動駕駛汽車應用中的潛力的調查。IEEE 物聯網期刊 2018, 5, 829-846。
2. 卡里亞斯,JF;拉巴卡,L。薩列吉,JM;Hernantes, J. 在工業物聯網背景下定義網絡彈性投資策略。傳感器 2019, 19, 138。
3. Yan, H.;張,Y。龐,Z。Xu, LD 物聯網環境下工業 wsn 的時隙 mac 超幀規劃和訪問延遲。IEEE 工業信息學匯刊 2014, 10, 1242-1251。
4. 阿拉姆,MM;馬利克,H。汗,密歇根州;帕迪,T。庫西克,A.;Moullec, YL 關于通信技術在基于物聯網的個性化醫療應用中的作用的調查。IEEE 訪問 2018, 6, 36611-36631。
5. 楊,P。斯坦克維修斯,D.;Marozas, V.;鄧,Z。劉,E。盧科塞維修斯,A.;董,F。徐,L。Min, G. 用于物聯網的生命記錄數據驗證模型實現了個性化醫療保健。IEEE Transactions on Systems, Man, and Cyber??netics: Systems 2018, 48, 50-64。
6. 公園,S。上海公園;公園,LW;公園,S。李,S。李,T。李 SH;張,H。金,SM;張,H。Park, S. 智能城市基礎設施中基于智能物聯網的建筑和城鎮災害管理系統的設計與實施。申請 科學。2018 年 8 月 2239 日。
7. 瓦拉蒂 C.;維迪斯 A.;明戈齊 E.;Stea G. MEC 回家!使用 LTE D2D 通信連接未來智能家居中的事物。IEEE 消費電子雜志 2016, 5, 77-83。
8. 阿里亞斯,O。沃姆,J。黃,K。Jin, Y. 物聯網和可穿戴設備中的隱私和安全。IEEE Transactions on Multi-Scale Computing Systems 2015, 1, 99-109。
9. 吳,L。杜,X。Guizani, M.;Mohamed, A. 植入式醫療設備的訪問控制方案:一項調查。IEEE 物聯網期刊 2017, 4, 1272-1283。
10. 阿爾塔維,R.;Youssef, AM 網絡物理系統中的安全權衡:植入式醫療設備的案例研究調查。IEEE 訪問 2016, 4, 959-979。
11. 小江,D.;Dapeng, W. 用于移動自組織網絡的自適應小區中繼路由協議。IEEE 車輛技術交易 2006, 55, 278-285。
12. 關 Z.;李,J。朱,L。張,Z。杜,X。Guizani, M. 面向具有可再生能源的智能電網的延遲容忍靈活數據訪問控制。IEEE 工業信息學匯刊 2017, 13, 3216-3225。
13.拉斯AT;Colin J. 在智能家居中帳戶被盜的情況下加強訪問控制。在 WiMob 2017 IEEE 國際無線和移動計算、網絡和通信會議記錄中,意大利羅馬,2017 年 10 月 9 日至 11 日。
14. Cheminod, M.;杜蘭特,L。塞諾,L。Valenzano, A. 工業網絡系統中訪問控制實施的半自動驗證。IEEE 工業信息學匯刊 2015, 11, 1388-1399。
15. 穆尼爾,M。南澳大利亞州西迪基;登格爾,A.;Ahmed, S. Deepant:一種用于時間序列中無監督異常檢測的深度學習方法。IEEE 訪問 2018,1-1。
16. 加達姆,SR;波哈,VV;Balagani, KS K-means+id3:一種通過級聯 k-means 聚類和 id3 決策樹學習方法進行監督異常檢測的新方法。IEEE 知識與數據工程交易 2007, 19, 345-354。
17. 侯賽因,B。杜,問。Ren, P. 基于半監督學習的移動無線網絡中大數據驅動的異常檢測。中國交通 2018, 15, 41-57.
18. Frustaci, M.;佩斯,P。阿洛伊,G.;Fortino, G. 評估物聯網世界的關鍵安全問題:當前和未來的挑戰。IEEE 物聯網期刊 2018, 5, 2483-2495。
19. 阿里,B。Awad,基于物聯網的智能家居的人工智能網絡和物理安全漏洞評估。傳感器 2018、18、817。
20.崔Z。呂浩;超Y。高 G.;Zhou C. 云中物聯網所有者的高效密鑰管理。在 2015 年 IEEE 大數據和云計算國際會議論文集中,中國大連,2015 年 8 月 26 日至 28 日。
21. Naoui S.;Elhdhili 我;Saidane LA 現有物聯網密鑰管理協議的安全分析。在 2016 年 IEEE/ACS 計算機系統和應用國際會議記錄中,摩洛哥阿加迪爾,2016 年 11 月 29 日至 12 月 2 日。
22. 周,J。曹,Z。董,X。Vasilakos,基于云的物聯網的 AV 安全和隱私:挑戰。IEEE 通信雜志 2017, 55, 26-33。
23. He H.; 楓 C.;Watson T. 物聯網中的安全挑戰使網絡物理系統成為可能,并為進化計算和其他計算智能提供了機會。在 2016 年 IEEE 進化計算大會論文集中,加拿大溫哥華,2016 年 7 月 24 日至 29 日。
24. 侯賽因,碩士;Muhammad, G. 云輔助工業物聯網 (iiot) 支持的健康監測框架。計算機網絡 2016, 101, 192-202。
25. 周,J。曹,Z。董,X。Vasilakos,基于云的物聯網的 AV 安全和隱私:挑戰。IEEE 通信雜志 2017, 55, 26-33。
26. 馬哈茂德,R.;優素福,T。阿盧爾,F。Zualkernan, I. 物聯網 (iot) 安全:現狀、挑戰和前瞻性措施。在 2015 年第十屆互聯網技術和安全交易國際會議記錄中,英國倫敦,2015 年 12 月 14 日至 16 日。
27. Al-Fuqaha, A.;Guizani, M.;穆罕默迪,M。Aledhari, M.;Ayyash, M. 物聯網:關于支持技術、協議和應用程序的調查。IEEE 通信調查與教程 2015, 17, 2347-2376。
28. 莫塞尼亞,A.;Jha, NK 物聯網安全綜合研究。IEEE 新興計算主題交易 2017, 5, 586-602。
29. 王,N。江,T。李,W。Lv, S. 基于壓縮感知和頻率選擇的物聯網物理層安全。IET 通訊 2017, 11, 1431-1437。
30. Jing, Q.; 瓦西拉科斯,AV;萬,J。盧,J。Qiu, D. 物聯網的安全性:觀點和挑戰。無線網絡 2014, 20, 2481-2501。
31. Azure Sphere 文檔。在線提供:https ://docs.microsoft.com/en-us/azure-sphere/ 。
32. 亨特 G.;萊蒂 G.;Nightingale E. 高度安全設備的七個屬性。技術。報告 MSR-TR-2017-16。在線提供:https ://www.microsoft.com/en-us/research/publication/seven-properties-highly-secure-devices 。
33. Azure Sphere 架構。在線提供:https ://docs.microsoft.com/en-us/azure-sphere/product-overview/architecture/ 。
34. MT 3620 產品信息。在線提供:https ://www.mediatek.com/products/azureSphere/mt3620 。
35. Azure Sphere 入門套件。https://www.element14.com/community/community/designcenter/azure-sphere-starter-kits/ 。
2. 系統設計
2.1. 概述
整個系統如圖2所示,分為設備層、云層和應用層三個不同的層次。首先,包括 ZigBee 終端設備和 ZigBee 協調器在內的 ZigBee WSN 以及 Arduino 設備代表傳統物聯網系統。其次,MT3620 入門套件用作 Azure Sphere 設備和網關的替代品。第三,利用Azure IoT Hub、Azure Stream Analytics、Azure Device Provisioning Service、Azure Storage Table等存儲服務作為數據處理和管理單元。最后,Power BI 和 Native App 分別用作 UX 解決方案和業務集成。
2.2. 硬件設計
根據設計的解決方案,Avnet Azure Sphere MT3620 入門套件是建議系統的重要組成部分。MT3620是首款通過Azure Sphere認證的MCU,內嵌三核微控制器,一個ARM Cortex-A7內核作為應用處理器運行頻率高達500 MHz,兩個ARM Cortex-M4F內核作為通用處理器運行頻率高達200 MHz處理器。在建議的系統中,MT3620 套件用作 Azure Sphere 設備,以在與 UART、I2C、SPI 和 ADC 片上外圍設備接口時支持實時和安全要求。MT3620 入門套件由可充電鋰離子電池供電,旨在用作傳統節點的直接連接設備或網關。對于前一種情況,板載傳感器包括 3 軸加速度計、陀螺儀和溫度傳感器 (LSM6DSO),壓力/氣壓傳感器 (LPS22HH) 和環境光傳感器足以應對普通的物聯網場景。并且可以通過 2.4/5 GHz 雙頻 Wi-Fi 模塊實現與 Azure IoT Hub 的消息傳輸。對于后一種場景,借助UART接口,可以將ZigBee、Arduino等網絡設備等遺留物聯網系統連接到MT3620網關進行消息處理,然后再上傳到Azure IoT Hub。在這個項目中,ZigBee 無線傳感器網絡 (WSN) 以及 Arduino 設備被建立為用于環境感知的遺留物聯網系統。ZigBee 終端設備配備了溫度和濕度傳感器、光傳感器、氣體傳感器和被動紅外 (PIR) 傳感器。4/5 GHz 雙頻 Wi-Fi 模塊。對于后一種場景,借助UART接口,可以將ZigBee、Arduino等網絡設備等遺留物聯網系統連接到MT3620網關進行消息處理,然后再上傳到Azure IoT Hub。在這個項目中,ZigBee 無線傳感器網絡 (WSN) 以及 Arduino 設備被建立為用于環境感知的遺留物聯網系統。ZigBee 終端設備配備了溫度和濕度傳感器、光傳感器、氣體傳感器和被動紅外 (PIR) 傳感器。4/5 GHz 雙頻 Wi-Fi 模塊。對于后一種場景,借助UART接口,可以將ZigBee、Arduino等網絡設備等遺留物聯網系統連接到MT3620網關進行消息處理,然后再上傳到Azure IoT Hub。在這個項目中,ZigBee 無線傳感器網絡 (WSN) 以及 Arduino 設備被建立為用于環境感知的遺留物聯網系統。ZigBee 終端設備配備了溫度和濕度傳感器、光傳感器、氣體傳感器和被動紅外 (PIR) 傳感器。ZigBee 無線傳感器網絡 (WSN) 以及 Arduino 設備被建立為用于環境感知的遺留物聯網系統。ZigBee 終端設備配備了溫度和濕度傳感器、光傳感器、氣體傳感器和被動紅外 (PIR) 傳感器。ZigBee 無線傳感器網絡 (WSN) 以及 Arduino 設備被建立為用于環境感知的遺留物聯網系統。ZigBee 終端設備配備了溫度和濕度傳感器、光傳感器、氣體傳感器和被動紅外 (PIR) 傳感器。
2.3 安全設計
為了確保物聯網系統各層的安全性,將安全策略和規則分為四類,如表1所示,即設備安全、連接安全、云安全和應用程序安全。
對于設備安全,本系統中使用的MT3620 MCU被確定為關鍵組件,根據七種最高級別的安全屬性進行設計。同時,在與云服務器通信時,使用基于證書的身份驗證而不是密碼來證明身份。此外,為了確保應用程序及其數據的安全,實施了限制訪問外部資源、應用程序能力、簽名圖像和設備能力四種策略。
對于連接安全,MT3620 和云網關之間的通信由 wolfSSL 保護,這是一個針對物聯網、嵌入式和 RTOS 環境的行業標準傳輸層安全 (TLS) 庫。具體來說,HTTP Secure (HTTPS) 和消息隊列遙測傳輸 (MQTT) 協議不僅用于高效的資源使用,還用于可靠的消息傳遞。
對于云安全,Azure Active Directory (AAD) 用于用戶身份驗證和授權。Azure Stream Analytics 通過了 ISO 27001 和 ISO 27018 認證,這意味著云中的信息安全管理和個人數據保護得到保障。寫入 Azure 表存儲的所有數據都使用 256 位高級加密標準 (AES) 加密進行加密,這被認為是可用的最強大的塊密碼之一。
為了應用安全,設計的解決方案實現了 128 位 AES 算法,用于 CC2530 ZigBee 節點之間的數據加密。具體來說,CC2530 芯片組利用 AES-CCM(帶有 CBC-MAC 的計數器)模式來加密和解密數據。配置文件“f8wConfig.cfg”中的全局??變量 zgPreConfigKeys 和 DSECURE 分別設置為 TRUE 和 1,以啟用 AES 安全性。其次介紹了應用能力、設備能力和簽名部署,以保證MT3620上運行的應用安全。具體來說,應用程序功能在應用程序清單文件中定義,以聲明給定應用程序所需資源的授權使用。Azure Sphere 設備的設備能力由 Azure Sphere 安全服務授予并存儲在閃存中。部署到 Azure Sphere 設備的所有圖像包都必須使用 SDK 簽名密鑰進行簽名。在通過側載或無線 (OTA) 方法將應用程序上傳到芯片之前,應對包進行簽名以確保其安全性。
3.硬件設置
3.1 所需硬件項目
- Avnet Azure Sphere MT3620 入門套件
- 128x64 黃藍 SSD1306 I2C OLED 顯示屏 [可選]
- CC2530 ZigBee 板
- 阿杜諾UNO
- PIR 運動傳感器
- DHT11溫濕度傳感器
- MQ2氣體傳感器
- 光敏電阻
3.2 將 OLED 顯示器連接到 Azure Sphere 入門套件
可選 OLED 128x64 顯示器 (I2C) 的接口在板上留空。此入門套件上的 OLED 顯示連接器的引出線列于下圖 3 中。
我們可以在板上焊接四個 2.54mm 引腳,以幫助連接 OLED 顯示器,如圖 4 所示。
3.3 將傳感器連接到 CC2530 ZigBee 終端設備
MQ2氣體傳感器和光敏電阻將模擬信號提供給CC2530的P0.7和P0.6,由CC2530進行模數轉換并發送數字信號。DHT11是單線溫度傳感器,我們把它的信號線接到CC2530的P1.1。PIR 運動傳感器連接到 CC2530 的 P0.5。所有傳感器均由模塊上的 5V 直流電壓供電。如圖 5 所示。
3.4 將 CC2530 ZigBee 協調器連接到 Avnet Azure Sphere 套件
在這個項目中,我們使用 CC2530 ZigBee 協調器的 Uart0。因此,P0.2、P0.3 和 GND 用作 Uart 通信的 Rx、Tx 和 GND。對于 Avnet Azure Sphere 套件,“Mikrobus Click 1”上的 Uart0 如下使用。
請確保 ZigBee Coordinator 的 Rx 與 Avnet Azure Sphere Kit 的 Tx 相連,ZigBee Coordinator 的 Tx 與 Avnet Azure Sphere Kit 的 Rx 相連。
3.5 將傳感器連接到 Arduino Uno 設備
MQ2氣體傳感器和光敏電阻將模擬信號送給Arduino Uno的A0和A1,進行模數轉換,將數字信號通過串口發送出去。DHT11是一個單線溫度傳感器,我們將它的信號線連接到Arduino的數字引腳2。PIR 運動傳感器連接到數字引腳 3。所有傳感器均由模塊上的 5V 直流電壓供電。如圖 7 所示。
3.6 將 Arduino Uno 連接到 Avnet Azure Sphere 套件
在這個項目中,我們使用 Arduino Uno 的 Uart0。因此,Pin 0、Pin 1 和 GND 用作 Uart 通信的 Rx、Tx 和 GND。對于 Avnet Azure Sphere 套件,“Mikrobus Click 1”上的 Uart1 如下使用。
請確保 Arduino 的 Rx 與 Avnet Azure Sphere Kit 的 Tx 相連,Arduino 的 Tx 與 Avnet Azure Sphere Kit 的 Rx 相連。
4. 軟件設計
4.1 所需軟件
如表 2 所示,使用帶有 IAR Embedded Workbench for 8051、Visual Studio 2017 Community 或 Visual Studio 2019 Community 和 Arduino IDE 的 Windows 10 PC 分別為 CC2530 ZigBee 節點、MT3260 入門套件和 Arduino Uno 開發應用程序。Azure Sphere 軟件開發工具包 (SDK) 版本 19.05 也作為 Visual Studio Community 不可或缺的擴展安裝。
4.2 ZigBee 無線傳感器網絡軟件
在本項目中,Z-Stack用于無線傳感器節點的管理和數據傳輸。在帶有 Z-Stack 的 CC2530 ZigBee 節點中運行的程序執行如下。初始化過程完成后,操作系統層執行主循環,在主循環中將按順序訪問和檢查任務列表。只要滿足條件,就會立即執行指定的任務。對于本項目中的ZigBee Coordinators,主要有兩個任務,分別是UART消息處理任務和ZigBee無線網絡傳入包處理任務。一方面,UART 消息處理任務處理來自 MT3620 的傳入數據,然后通過 Z-Stack 協議消息將消息中繼到 ZigBee 終端設備。另一方面,無線網絡傳入包處理任務負責處理來自 ZigBee 終端設備的 Z-Stack 協議消息,并將有效數據通過 UART 接口傳輸到 MT3620。對于配備不同類型傳感器的 ZigBee 終端設備,也有兩個主要任務。首先,在用戶定義的時間間隔內,在數據發送處理程序事件中完成從傳感器讀取數據并將消息傳輸到 ZigBee 協調器。其次,通過 Z-Stack 協議來自 ZigBee 協調器的下行鏈路消息在 Message Process 事件中處理。從傳感器讀取數據并將消息傳輸到 ZigBee 協調器是在用戶定義的時間間隔內的數據發送處理程序事件中完成的。其次,通過 Z-Stack 協議來自 ZigBee 協調器的下行鏈路消息在 Message Process 事件中處理。從傳感器讀取數據并將消息傳輸到 ZigBee 協調器是在用戶定義的時間間隔內的數據發送處理程序事件中完成的。其次,通過 Z-Stack 協議來自 ZigBee 協調器的下行鏈路消息在 Message Process 事件中處理。
上行鏈路消息的有效負載如圖9所示。有效負載以兩個字節的傳感器ID為前綴,緊隨其后的是兩個字節的溫度數據、兩個字節的濕度數據、兩個字節的光數據、兩個字節的氣體數據和一個字節的 PIR 傳感器數據。
4.3 Arduino Uno 軟件
在這個項目中,Arduino Uno 作為一種傳統的物聯網系統,由 Avnet Azure Sphere Start 套件保護以實現消息收發。
在程序的初始化中,設置了輸入和輸出引腳。串口波特率配置為9600。在主循環中,采集傳感器值并轉換成一個11字節的報文,其順序與圖9相同。讀取和發送傳感器將每 5 秒執行一次。
4.4 Avnet Azure Sphere 入門套件軟件
感謝Peter Fenn和Brian Willess ,Avnet Azure Sphere Start Kit 的程序是在他們的工作“ Avnet Azure Sphere Starter-Kit:高級教程”的基礎上構建的。" MT3620 可以配置為網關,讓遺留物聯網系統連接到互聯網和 Azure IoT Hub。Azure Sphere 設備的 UART 接口用于與 ZigBee 無線傳感器網絡通信,即遺留物聯網系統。同時,UART 外設應包含在應用程序清單文件中,其中列出了應用程序需要的所有資源。需要注意的是,應用程序清單將由 Azure Sphere 運行時訪問,以確定允許使用哪些功能一旦應用程序被旁加載或部署到設備。任何訪問清單中未描述的資源的嘗試都將被運行時拒絕。因此,添加了兩個 UART 和允許連接到 Azure 云服務作為基本功能。它如圖 10 所示。
需要注意的是“AllowedConnections”要改成你自己的Azure IoTHub。
在作為網關的 MT3620 中運行的應用程序的流程圖如圖 11 所示。基本上,應用程序的初始化過程與作為直接連接設備的 MT3620 中的應用程序的初始化過程幾乎相同,只是配置了 UART 外設并且打開與 ZigBee 協調器和 Arduino Uno 的通信。在主循環中,調用 UART 事件處理程序進行入站消息接收、數據有效性檢查和本地參數更新。
5. Azure 云集成
Azure 云提供的服務,在數據收集、數據處理、數據存儲和數據可視化方面發揮著關鍵作用。本小節包含在 Azure 云上運行的所有服務。
5.1 Azure 物聯網中心
Azure IoT 中心起著核心作用。它充當 Azure Sphere 設備和 Azure 云服務之間的橋梁。一方面,Azure IoT Hub 不僅收集設備到云的消息以了解 MT3620 設備的實時狀態,而且可靠地發送云到設備的命令和通知以更新策略存儲在 MT3620 設備中的傳感器數據收集。另一方面,在設備配置服務的幫助下實現了零接觸、及時配置,這意味著可以在無需人工干預的情況下以安全且可擴展的方式配置數百萬臺設備。
在 Azure 門戶 ( https://portal.azure.com)中,單擊左側的“新建”圖標以查看所有服務,然后單擊“物聯網”項并選擇“IoT 中心”。
填寫“名稱”、“定價層”、“IoT 中心單元”、“設備到云分區”、“資源組”和“位置”字段,然后單擊“創建”按鈕。應該注意的是,“F1 Free”定價對于這個項目來說已經足夠了。而且我們最好選擇服務的本地位置。
等待新的 IoT 中心顯示為“在線”。準備就緒后,打開新 IoT 中心的邊欄選項卡,記下 URI 并選擇頂部的鑰匙圖標以訪問共享訪問策略設置。
選擇名為 iothubowner 的共享訪問策略,并記下右側邊欄中的主鍵和連接字符串。我們可能會將這些復制到文本文件中以備將來使用。
有關更多信息,我們可以在線參考此文檔:使用 Azure 門戶創建物聯網中心 ( https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-create-through-portal ) 。
5.2 使用 Device Explorer 驗證 Avnet Start Kit
Azure IoTHub 和設備之間的通信是安全的。在 Windows 上,我們可以使用 Device Explorer 應用程序來完成此身份驗證過程。單擊此鏈接可下載適用于 Windows 的設備資源管理器應用程序的預構建版本:https://github.com/Azure/azure-iot-sdk-csharp/releases/tag/2019-1-4(滾動下載 SetupDeviceExplorer.msi)。此應用程序的默認安裝目錄是“C:\Program Files (x86)\Microsoft\DeviceExplorer”。
打開 Device Explorer 應用程序并使用我們創建的 IoT 中心的連接字符串填充 IoT 中心連接字符串字段,然后單擊更新。轉到“管理”選項卡,然后單擊“創建”按鈕。將顯示創建設備彈出窗口。使用您的設備(例如 AvnetStarterKit)的新 ID 填寫設備 ID 字段,然后單擊創建,如下所示。
創建設備標識后,它將顯示在網格中。右鍵單擊我們創建的標識,選擇復制所選設備的連接字符串并通過復制到剪貼板來保存值,因為需要將硬件連接到 IoT 中心。
5.3 更新 Azure IoTHub 連接字符串
從 GitHub 存儲庫 ( https://github.com/shijiong/AzureSphereSecurityGateway)下載源代碼。使用 Visual Studio 打開解決方案,導航到“connection_strings.h”,更新連接字符串。
5.4 創建 Azure 存儲帳戶和 Azure 存儲表
在此項目中,我們將需要 Azure 存儲表來存儲來自傳感器設備的數據。因此,我們可以按如下方式創建它。在 Azure 門戶中,單擊左側的“存儲”圖標以查看現有存儲帳戶(如果有),然后單擊左下角的“+新建”按鈕。在“NEW”面板中,選擇“STORAGE” | “存儲帳戶”按鈕。等待新存儲帳戶的狀態顯示為“在線”。選擇新創建的存儲帳戶,然后單擊頁面底部的管理訪問密鑰。復制存儲帳戶名稱和其中一個訪問密鑰。
我們使用 Microsoft Azure 存儲資源管理器 ( https://azure.microsoft.com/en-us/features/storage-explorer/)創建 Azure 存儲表“AvnetAzureSphere”。
5.5 創建 Azure 流分析作業
本項目使用 Azure Stream Analytics 過濾 IoTHub 收集的傳感器數據,并將數據流式傳輸到 PowerBI 和 Azure Storage Table。新的流分析創建如下。
在 Azure 門戶 ( https://portal.azure.com ) 中,單擊左側的“新建”圖標以查看所有服務,然后單擊“物聯網”項并選擇“流分析作業”。
填寫“作業名稱”、“資源組”和“位置”字段,然后單擊“創建”按鈕。等待新的流分析顯示為“在線”。
現在,是時候配置流分析作業了。首先,在 Inputs 窗口中,我們選擇 IoT Hub,然后在 IoT Hub Settings 屏幕中,我們完成以下信息:
- 輸入別名:AvnetData
- 訂閱:使用當前訂閱中的 IoT 中心
- 選擇 IoT Hub:輸入創建 IoT Hub 時使用的名稱
- IoT 中心共享訪問策略名稱:iothubowner
- 物聯網中心消費者組:powerbi
單擊下一步,然后單擊完成(保留序列化設置不變)。
要設置輸出,請轉到流分析作業的輸出選項卡,然后單擊添加輸出鏈接。在 Add an output to your job 彈出窗口中,選擇 POWER BI 選項并單擊 Next 按鈕。在以下屏幕中,您將設置 Power BI 帳戶的憑據以允許作業連接并向其發送數據。單擊立即授權鏈接。
要設置查詢配置,請轉到 Stream Analytics Job QUERY 選項卡并將查詢替換為以下語句:
SELECT
*
INTO
[AvnetStartKit]
FROM
[MT3620]
SELECT
*
INTO
[AvnetAzureSphere]
FROM
[MT3620]
需要注意的是,我們只是選擇了從 IoTHub 到 PowerBI 和 Azure Storage Table 的所有數據。在確認對話框中單擊“保存”按鈕和“是”。現在作業已配置,啟動按鈕已啟用。單擊按鈕開始作業,然后在“開始輸出”彈出窗口中選擇“作業開始時間”選項。單擊“確定”后,作業將開始。作業啟動后,它會創建與給定訂閱關聯的 Power BI 數據源。
5.6 配置 PowerBI 儀表板
現在數據源已創建,返回 Power BI 會話,并通過單擊 Power BI 鏈接找到我的工作區。作業運行幾分鐘后,您將看到您配置為作業輸出的數據集現在顯示在 Power BI 工作區數據集部分中。
請注意,Power BI 數據集只會在作業正在運行并且正在從 IoT 中心輸入接收數據時創建,因此請檢查硬件是否正常工作并將數據發送到 Azure 以確保創建數據集。要檢查流分析作業是否正在接收和處理數據,您可以檢查 Azure 管理流分析監視器。
一旦數據源可用,您就可以開始創建報告。要創建新報表,請單擊 Power BI 數據源。
報表設計器將打開,顯示可用于所選數據源的字段列表以及該工具支持的不同可視化效果。這里我們選擇實時傳感器日期和處理時間。現在報告差不多準備好了。單擊“保存”按鈕并將“校園環境”設置為報告的名稱,如下所示。
5.7 隨時隨地瀏覽環境數據
使用 Power BI Desktop ( https://powerbi.microsoft.com/en-us/desktop/ ),我們可以從 Power BI Web 獲取數據,并在桌面 PC 上顯示我們上面創建的數據報表。
通過iOS或Android上的Power BI應用程序,我們可以從Power BI Web獲取數據,并在手機端展示數據報表。
六、附錄
6.1 構建和監控應用程序
從 Github 下載源項目:https://github.com/shijiong/AzureSphereSecurityGateway/tree/master/AvnetAzureSphereSK_OLED。感謝 Peter Fenn和Brian Willess,Avnet Azure Sphere Start Kit 的程序是在他們的工作“ Avnet Azure Sphere Starter-Kit: Advanced Tutorial ”的基礎上構建的。確保以下配置。
1. 在此 IDE 的編輯器中打開 build_options.h 文件并檢查:
第 5 行:必須注釋掉(即,如果注釋字符出現在 //#define IOT_CENTRAL_APPLICATION 的行首,則刪除注釋字符)。
第 8 行:必須啟用(即#define IOT_HUB_APPLICATION)
2.connection_strings.h中的connection string要換成你自己的device connection string。
3. 在 app_manifest.json 文件中,“ISU0”、“ISU1”應在“Uart”部分設置,“****.azure-devices.net”(您自己的 IoTHub)應在“AllowedConnections”部分配置。
6.2 監控 Visual Studio IDE 的輸出
調試信息將顯示在 Visual Studio 的輸出窗口中。原始 UART 信息如圖 17 所示。
6.3 使用 Device Explorer 監控消息
一旦消息通過 Avnet Start Kit 成功發送到 Azure IoTHub,就可以通過Device Explorer監控信息。原始消息如圖 18 所示。
6.4 用于 Uart 信息的 OLED 顯示屏
一旦應用程序運行,信息就會顯示在 OLED 顯示屏上。在《 Avnet Azure Sphere Starter-Kit: Advanced Tutorial》的基礎上增加了四個畫面。源碼可以在oled.c中找到,包括update_uart_data1和update_uart_data2的方法。信息將從原始消息中提取并顯示在 OLED 上,如圖 19 所示。
6.5 Azure 表存儲
訪問 Azure 表存儲不僅速度快,而且對于用戶應用程序而言也具有成本效益。表的實體如表 3 所示,其中包含多個屬性,包括分區鍵、行鍵、時間戳、設備 ID、事件排隊的 UTC 時間、事件處理的 UTC 時間、氣體、濕度、光照、PIR 和溫度。分區鍵、行鍵和時間戳是為表中的每個實體自動生成的,它們代表實體主鍵的第一部分、實體主鍵的第二部分和實體最后一次修改的時間。
為了評估Azure Table Storage的性能,Azure提供了成功請求的平均端到端延遲(AverageE2ELatency)和平均服務器延遲(AverageServerLatency)。AverageE2ELatency 包括 Azure 表存儲中讀取請求、發送響應和接收響應確認所需的處理時間。AverageServerLatency 代表 Azure 表存儲用于處理請求的平均延遲,不包括失敗的請求。此值不包括 AverageE2ELatency 中包含的網絡延遲。Azure 表存儲的延遲評估如圖 20 所示。
根據圖 20 中的曲線,AverageServerLatency 和 AverageE2ELatency 的值分別為 11.25 ms 和 77.27 ms,這意味著平均整個延遲小于 100 ms。大多數物聯網應用程序都可以接受。
6.6.NET應用
從 Github 下載應用程序并從 Azure IoT 中心門戶復制必要的連接字符串信息。此連接字符串不是特定于設備的,而是特定于 IoT 中心單元的。有關詳細信息,請參見圖 21。
使用此連接字符串,您可以訪問在此 IoT 中心單元中創建的所有設備。粘貼連接字符串,如圖 22 所示。
七、總結
在這個項目中,我們研究了物聯網解決方案與大規模、低成本和安全終端設備的集成。我們重點關注了以下三個方面。首先,以Azure Sphere設備和Azure云服務為特色,設計、部署和測試了硬件、軟件和服務的集成。其次,設計并實現了包括Avnet Azure Sphere Starter Kit直連設備和網關設備在內的硬件原型。第三,設計并測試了硬件設備的程序、云服務的配置以及PowerBI應用程序。
特別感謝
感謝Peter Fenn和Brian Willess,Avnet Azure Sphere Start Kit 的程序是在他們的工作“ Avnet Azure Sphere Starter-Kit:高級教程”的基礎上構建的。
感謝 Avnet 和 Microsoft,你們為我提供了 Azure Sphere 初學者工具包,幫助我將這個項目變為現實!
- Azure?物聯網的門鎖示例
- 基于Microsoft Azure Sphere的AI家庭安全系統
- 構建結合Azure Sphere安全性和FreeRTOS的漫游者
- Azure Sphere I2C掃描儀
- 使用Azure KeyVault和Azure Sphere安全自動登錄
- Azure物聯網農業
- 使用Azure Sphere和D6T構建疏散
- 在Avnet Azure Sphere上創建BurnerOn示例應用程序
- 基于Azure Sphere的安全防盜設備
- 如何使用AVNET Azure Sphere套件
- 使用Azure Sphere監控警報安全面板
- 適用于Azure Sphere的WS2812B LED燈帶驅動器
- UM2043_用于微軟Azure云服務器的WiFi和傳感器的ODE功能包
- 微軟 Azure Sphere MCU技術、生態探析
- 高性能嵌入式堆棧Azure PTOS USBX概述 10次下載
- Azure Kinect Body Tracking For LabVIEW更新預覽 800次閱讀
- IntelliJ上Azure Event Hubs全新支持來了 551次閱讀
- 使用MM32F3270基于Azure RTOS定時器組的應用 1751次閱讀
- 使用MM32F3270基于Azure RTOS動態內存管理的應用 992次閱讀
- 使用MM32F3270基于Azure RTOS信號量的應用 1071次閱讀
- Azure Percept DK的硬件介紹與設置使用 1149次閱讀
- Azure Kinect Senser DK套件簡介 3845次閱讀
- 防護嵌入式安全的方法有哪些 1615次閱讀
- 分布式工業物聯網云平臺是怎樣的 1743次閱讀
- 經過對72個所謂物聯網平臺的梳理,初步將其按功能分成了三類 6686次閱讀
- 你知道怎樣在Azure machine learning中使用異常檢測的方法? 2337次閱讀
- 混合云的主要優勢和最佳實踐介紹 5621次閱讀
- 云計算與物聯網的關系_云計算和物聯網的優勢 1.3w次閱讀
- 淺談云災難恢復與備份之Azure Site Recovery服務 1905次閱讀
- 物聯網環境下的云存儲安全技術研究 725次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多