資料介紹
描述
一、概念
貴重物品,如博物館中的藝術品或公共場所的各種設備,需要防止被盜。傳統上,這是由專門的安全人員完成的。
在這個項目中,我將展示一個連接互聯網的防盜設備,它可以用作安全人員的替代品或補充品。
該設備就像一個支架,但頂板安裝在稱重傳感器上。這樣就可以高精度地監控放置在支架上的重量,并且可以快速檢測到任何變化。概念:放置在設備上的貴重物品
除了重量傳感器外,加速度計和光學傳感器等輔助傳感器還可用于檢測振動或其他可疑活動。
我構建的概念驗證設備基于Avnet 的 Azure Sphere MT3620 入門套件,并使用 3 Kg 稱重傳感器作為其主要傳感器,以及 Sphere 套件的內置加速度計:
該設備已連接互聯網,可以通過 Azure Central IoT 應用程序輕松遠程監控。使用自動規則檢測盜竊并采取行動。
Azure Sphere 平臺提供的創新安全基礎架構使設備軟件無法被篡改。
2. 蔚藍領域
Azure Sphere 是 Microsoft 用于物聯網解決方案的安全高級應用程序平臺。
它由 3 個主要部分組成:
- 安全的 Azure Sphere MCU 微控制器單元 (MCU) - 目前支持 MediaTek MT3620
- Azure Sphere OS,一個由微軟維護的基于 Linux 的操作系統
- 基于云的 Azure Sphere 安全服務 (AS3)
目前我們可以使用 3 個官方開發工具包來試驗 Azure Sphere 平臺:
所有這些都基于聯發科與微軟合作設計的聯發科 MT3620 MCU。
MCU具有以下主要特點:
- 1 x ARM Cortex A7 內核,用于高級應用
- 2 x ARM Cortex M4 內核用于實時控制
- 雙頻 Wifi 子系統,2.4 + 5 GHz,支持
- I/O: 76 x GPIO, 12 x PWM, 5 x I2C / SPI / UART, 8 x 12-bit ADC等
標準 MCU 的東西。到目前為止沒有什么有趣的.. :)
讓 MT3260 有趣的是內置的 Microsoft Pluton 安全子系統,它具有以下特點:
Pluton 還實現了一個帶有遠程認證的安全啟動系統。這意味著已使用 Azure Sphere 安全服務 (AS3) 驗證加載的啟動映像(OS + 應用程序)的真實性。如果加載的圖像有效/最新,AS3 會為設備頒發短期客戶端證書(~1 天有效期),然后可用于連接到其他在線服務。如果加載的圖像無效/最新,則不會頒發客戶端證書,從而強制設備進行更新。
在這個項目中,我們將使用 Avnet MT3620 入門套件,這是一個基于 Azure Sphere 模塊 AES-MS-MT3620-MG 的開發套件:
3. 開始
要開始使用 Avnet Azure Sphere MT3620 入門套件,我們需要考慮以下幾點:
- 運行 Windows 10 (周年更新或更高版本)的 PC
- Visual Studio 2017 (社區版作品)
> Sphere SDK 安裝
現在我們需要下載并安裝Azure Sphere SDK for Visual Studio Preview軟件:
這將安裝與 Azure Sphere 模塊通信所需的驅動程序和工具。
> 領取設備
在此之后,我們可以按照Azure Sphere 文檔入門頁面中的步驟進行操作。
要使用 Azure Sphere,我們需要一個 Azure Active Directory 工作/學校帳戶。這可以從Azure 門戶的Azure Active Directory / 用戶部分創建。新創建的帳戶應該類似于:
下一步是領取您的設備。這會將您的設備永久鏈接到我們之前創建的帳戶 (!),從而將設備的訪問權限鎖定給您的租戶。要聲明設備,應從 Azure Sphere 開發人員命令提示符執行以下命令
### Sign in to Azure Sphere with previously created account
$ azsphere login
### Create a new Azure Sphere tenant
$ azsphere tenant create --name sphere
### Claim you device
$ azsphere device claim
> Wifi 和更新
現在我們可以配置Sphere 模塊使用的 Wifi 網絡。從 Azure Sphere 開發人員命令提示執行以下命令:
### Add a new Wifi network
$ azsphere device wifi add --ssid --key
### Check that the Sphere module is connected to the Wifi network
$ azsphere device wifi show-status
我們能做的最后一件事是更新設備的 Azure Sphere 操作系統:
### Check if any update are available:
$ azsphere device show-ota-status
### Download and install the update:
$ azsphere device recover
4.例子
在此之后我們可以嘗試構建并運行 Blink 應用程序:
- 為了能夠從 Visual Studio 等 IDE 運行/調試應用程序,我們需要在 Azure Sphere 設備中啟用調試。這是通過從 Azure Sphere 開發人員命令提示符執行以下命令來完成的:
### Enable debugging
$ azsphere device prep-debug
- 我們還可以為 RT Core 應用程序啟用調試:
### Enable debugging
$ azsphere device prep-debug --enablertcoredebugging
> 賓基
然后,我們可以從Visual Studio使用Azure Sphere Blink模板創建新項目:
如果我們使用遠程 GDB 調試器運行項目,Azure Sphere 初學者工具包的用戶 LED 應該開始閃爍。
> 板載傳感器,OLED 顯示屏
接下來我們可以按照 Avnet 員工創建的兩個 Azure Sphere Started-Kit 教程進行操作:
第一個教程介紹了 Azure Sphere 初學者工具包參考設計。第 1 部分涵蓋以下功能:
- 讀取板載傳感器,并在 Visual Studio 的調試控制臺中打印讀數(第 1 部分)
本教程的 GitHub 存儲庫是:Avnet/AvnetAzureSphereStarterKitReferenceDesign
第二個教程部分基于第一個教程,添加了以下額外功能:
- 顯示多個信息 128x64 像素 OLED 顯示屏
- 添加 Cortex-M4(實時)應用程序
- 控制 MiroE Relay Click 板
- 向 IoT Central 應用程序添加更多功能
第二個教程的 GitHub 存儲庫是:CloudConnectKits/Azure_Sphere_SK_ADC_RTApp
我們可以從這些教程中學到很多東西,而且由于它們是 MIT 許可的,我們可以使用它們的代碼庫作為新項目的起點。
實時和高級應用程序
正如我之前提到的,MT3620 SoC 包括:
- 一個 ARM Cortex-A7 內核——它運行基于 Linux 的 Sphere OS,也可以運行高級應用程序,
- 兩個 ARM Cortex-M4F 內核 - 這些可用于執行具有實時要求的任務
- 核心可以相互通信
高級教程的代碼存儲庫包括兩個 Visual Studio 項目:一個用于 A7 應用程序核心,一個用于 M4F 實時核心。它還顯示了兩個內核如何進行通信。
> 云連接
本教程的第 2 部分和第 3 部分涵蓋以下功能:
- 配置 IoT 中心,上傳傳感器數據,操作設備孿生,在時序洞察中可視化數據(第 2 部分)
- 使用自定義可視化和控制配置 IoT Central 應用程序(第3 部分)
物聯網中心
IoT 中心是 Azure 云中可用的 IoT 解決方案之一。
要將教程應用程序與 IoT 中心一起使用,第一步是從 Azure 門戶創建一個 IoT 中心:
然后我們需要添加一個新設備:
并從其配置中復制主連接字符串:
連接字符串需要放在connection_strings.h
.
現在,如果我們以 IoT 中心應用程序模式運行應用程序:
// If your application is going to connect straight to a IoT Hub, then enable this define.
#define IOT_HUB_APPLICATION
我們應該能夠看到 Device Twin 更新了我們的傳感器數據
物聯網中心
另一種選擇是在 IoT Central 應用程序模式下運行
// If your application is going to connect to an IoT Central Application, then enable this define. When
// enabled Device Twin JSON updates will conform to what IoT Central expects to confirm Device Twin settings
#define IOT_CENTRAL_APPLICATION
IoT Central 是 Azure 云中可用的另一種物聯網解決方案,它可以輕松創建基于物聯網的云應用程序,而無需編寫太多代碼。
稍后我將在 Azure IoT Central 應用程序部分解釋如何執行此操作。
5. 硬件
該設備由以下電子元件構成:
- Azure Sphere MT3620 入門套件
- 連接到 HX711 24 位 ADC 的 3 Kg 稱重傳感器
- 用于 HX711 的 DIY Click 適配器
硬件部分在FreeCAD中建模,由以下部分組成:
- 用一塊廢低密度纖維板制成的底座
- 將稱重傳感器連接到底座的 3D 打印部件
- 安裝在稱重傳感器上的 3D 打印部件。這同時支持頂級 plthe Sphere 入門套件
- 由 2mm 丙烯酸玻璃制成的頂板
- 2 x M5 和 2 x M4 螺絲
由于一切都在 3D 中建模,因此組裝非常容易:
6.軟件
作為在 Azure Sphere Kit 上運行的軟件的基礎,我使用了 Avnet Azure Sphere Starter-Kit 的代碼庫: Peter Fenn的高級教程。
Azure Sphere Kit 運行的軟件分為兩部分:
- 在 A7 應用處理器上運行的高級應用程序
- 在其中一個 M4 處理器上運行的實時應用程序
兩個內核上的應用程序使用內核間通信進行連接。
主要思想是將時間敏感任務(如傳感器處理)運行在 M4 實時內核上。然后,負責云連接等任務的高級應用程序可以在 A7 應用程序處理器上運行。
> A7 高級應用
在 A7 應用處理器上運行的高級應用程序負責:
- 讀取 HX711+ 稱重傳感器
- 從加速度計讀取值
- 處理OLED顯示器
- 處理按鈕/ LED
- 與 Azure IoT Central 的云通信
- 與 M4 內核的內核間通信
負責將數據發送到 Azure IoT Central 的代碼部分以及在 OLED 屏幕上顯示數據的代碼部分已更新為包含來自新添加的 HX711 稱重傳感器數據的數據。
> HX711驅動
該項目使用 HX711 芯片,一個 24 位 ADC 來測量負載傳感器傳感器產生的小電壓。
由于沒有現成的支持 MT3260 的 C 驅動程序,我決定移植現有的 Arduino HX711 庫:https ://github.com/bogde/HX711
將庫從 Arduino 遷移到與 MT3620 一起使用的步驟是:
- 將代碼從 C++ 遷移到 C
- 遷移了 GPIO 部分以使用 MT3620 GPIO 庫
> M4 實時應用
結果證明 HX711 對時序有點敏感。在使用 A7 高級代碼之前,我遇到了一些麻煩。HX711 的時鐘需要外部提供,A7 上的 GPIO 操作有點慢(3-7 us)。由于一些不必要的代碼,時鐘周期超過 60us,HX711 進入睡眠模式。
出于這個原因,我決定嘗試將 HX711 驅動程序代碼卸載到 MT3260 的具有 M4 實時功能的內核之一。然后使用 MT3260 MCU 的 A7 和 M4 內核之間的內核間通信傳輸傳感器數據。
注意:實時應用程序部分的代碼已經完成,但我還沒有成功測試它。我 PC 上的 Azure Sphere SDK 損壞了,但還沒有設法修復它。
7. Azure 物聯網中央應用
該項目的 UI 是使用 Azure IoT Central 完成的。
要開始使用 Azure IoT Cental,我們首先需要轉到apps.azureiotcentral.com并創建一個新應用程序。
> 設備模板
首先要做的是定義我們從設備發送的字段的測量值。
這些是:
- 稱重傳感器測量的重量
- X、Y、Z加速度(G力)
- X、Y、Z角速率
> 創建設備
接下來我們可以添加我們的設備:
并為其創建連接:
有了這個,我們可以使用實用程序生成連接字符串:dps-keygen
$ dps-keygen -si: -di: -dk:
Azure IoT DPS Symetric Key Generator v0.3.3
Connection String:
HostName=iotc-2e2dxxxx-xxxx-xxxx-xxxxxxxxxxxxxxx.azure-devices.net;DeviceId=xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;SharedAccessKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
生成的連接字符串需要放在connection_strings.h
文件中。
> 三圍
在此之后,設備應該能夠將數據發送到 Azure 云,我們應該能夠將其可視化:
> 儀表板
我們還可以配置儀表板,如下圖所示
> 規則與通知
Azure IoT Central 還允許定義不同的規則并為其分配操作。
例如,我們可以創建規則來檢測以下內容:
- 稱重傳感器測量的重量下降(有人拿走了我們的貴重物品)
- 振動比平時高
貝婁是一個規則的例子,如果振動達到兩個高度,就會發送一封電子郵件:
注意:通常我會將其配置為基于權重的規則,但此時 HX711 驅動程序代碼尚未完全發揮作用。不幸的是,今天(11 月 30 日)我 PC 上的 Azure Sphere SDK 不知何故損壞了,而且還沒有設法修復它。由于這個原因,上面的和其他一些截圖可能已經過時了。
8. 未來的工作
這個項目有很多想法/領域可以改進。我計劃做的一些是:
- 將 MEMS 和其他傳感器的處理遷移到 ARM M4 實時內核
- 實施基于實時中斷的振動檢測
- 嘗試自動設備配置
另一個有趣的主題是深入研究 Azure Sphere 平臺提供的安全基礎設施,并了解每個組件的工作原理。
9.資源
項目的源代碼、3D 模型/CAD 文件和其他資源可以在鏈接的 GitHub 存儲庫中找到。
查看我提交給Element14 上的感知世界挑戰賽:基于 Azure Sphere 的安全物聯網空氣質量傳感站
以下是有關 Azure Sphere 的一些有用文章:
- 開始使用Microsoft的 Azure Sphere
- Microsoft 的Azure Sphere 文檔
- Avnet 的 Azure Sphere 入門套件(開箱即用演示)第 1 部分、第 2 部分、第 3 部分,作者:Brian Willess
- Avnet Azure Sphere 入門套件:Peter Fenn的高級教程
- 聯發科技 MT3620 產品簡介
- Microsoft Azure Sphere 背后的硬件安全平臺
- 使用Microsoft的 Azure IoT Hub 設備預配服務預配設備
- Microsoft對安全 MCU 的剖析
- 微軟為 Azure Sphere 的物聯網安全子系統 Pluton 注冊了商標@mspoweruser
- 保護我們周圍數十億臺設備的安全作者:蓋倫亨特博士,微軟
題外話:自動每日注冊
競賽要求之一是在Avnet 競賽應用程序中連續30 (或 15)天注冊我們的 Azure Sphere 套件。
現在,這個連續 30 天的要求可能有點棘手。特別是夏天,如果你要去度假并且不想帶筆記本電腦,或者你只是要去一個沒有互聯網的偏遠地方。
我對這個問題的解決方案是使用Macro Toolworks 、Windows Task Scheduler和一些 shell 腳本來自動化該過程。它的工作原理如下:
- 我手動打開入門工具包注冊應用程序并完成所有輸入字段
- Azure Sphere Started Kit 連接到 USB 端口
- 使用 Windows Task Scheduler,任務被安排為每天運行兩次。該任務喚醒 PC 并執行一組操作:
- Azure Sphere 服務重新啟動,因為它有時會在計算機從睡眠中喚醒后變得無響應
- 一個 Macro Toolworks 腳本在運行。該腳本模擬鼠標移動和點擊。它執行以下操作:
- 單擊讀取設備按鈕,因此應用程序將連接 Azure Sphere 模塊并讀取其狀態
- 等待一段時間后,單擊“發送到服務器”按鈕。將出現確認對話框
- 執行截屏的 shell 腳本。屏幕截圖保存在自動同步到 Google 云端硬盤的文件夾中
- 按下確定按鈕
- 此后,Macro Toolsworks 腳本存在,計算機再次進入睡眠狀態
這個過程連續運行了大約 42 天,直到 9 月 14 日,我認為比賽注冊服務器出現了一些問題,應用程序被卡住了。我當時決定停止這個過程。
然而,Azure Sphere Started Kit 通過 USB 供電超過 2 個月,仍然可以正常工作。
享受 !:)
- 基于Microsoft Azure Sphere的AI家庭安全系統
- 構建結合Azure Sphere安全性和FreeRTOS的漫游者
- Azure Sphere I2C掃描儀
- 用于安全物聯網的Azure Sphere和Azure云服務
- 使用Azure KeyVault和Azure Sphere安全自動登錄
- 使用Azure Sphere和D6T構建疏散
- 在Avnet Azure Sphere上創建BurnerOn示例應用程序
- 如何使用AVNET Azure Sphere套件
- 使用Azure Sphere監控警報安全面板
- 適用于Azure Sphere的WS2812B LED燈帶驅動器
- 微軟 Azure Sphere MCU技術、生態探析
- 高性能嵌入式堆棧Azure PTOS USBX概述 10次下載
- JDL-F系列防盜告警系統 71次下載
- 智能建筑安全防范系統及應用 69次下載
- 折彎機安全防護激光安全裝置
- 淺談SOC片上系統LoRa-STM32WLE5數據安全防御機制 158次閱讀
- 門安全防盜報警電路圖解 1211次閱讀
- 介紹一種基于eBPF的Linux安全防護系統 708次閱讀
- CPU的信息安全防護措施 1272次閱讀
- 電氣安全防護技術措施 3375次閱讀
- 使用MM32F3270基于Azure RTOS定時器組的應用 1477次閱讀
- 使用MM32F3270基于Azure RTOS動態內存管理的應用 792次閱讀
- 使用MM32F3270基于Azure RTOS信號量的應用 866次閱讀
- 航芯方案分享 | 智能設備防盜版解決方案 1272次閱讀
- 在貼片加工廠中有哪些安全防護需要了解 1306次閱讀
- 詳解汽車防盜器的安裝方法 2.9w次閱讀
- 基于電氣安全和功能安全方面的血液透析裝置安全防護分析 1684次閱讀
- 詳細剖析防盜報警系統的組成 1w次閱讀
- 一種基于STM32和GSM的網絡防盜門的設計 3385次閱讀
- 如何設計汽車芯片感應防盜系統? 1448次閱讀
下載排行
本周
- 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次下載 | 免費
評論
查看更多