资料介绍
描述
一、概念
贵重物品,如博物馆中的艺术品或公共场所的各种设备,需要防止被盗。传统上,这是由专门的安全人员完成的。
在这个项目中,我将展示一个连接互联网的防盗设备,它可以用作安全人员的替代品或补充品。
该设备就像一个支架,但顶板安装在称重传感器上。这样就可以高精度地监控放置在支架上的重量,并且可以快速检测到任何变化。概念:放置在设备上的贵重物品
除了重量传感器外,加速度计和光学传感器等辅助传感器还可用于检测振动或其他可疑活动。
我构建的概念验证设备基于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次下载 | 免费
评论
查看更多