资料介绍
描述
这是一篇文章,我们探讨了使用 Azure Percept 来提高工作人员的安全性并构建连接到微控制器以控制警报的概念证明。本文介绍了如何将 Azure Percept 连接到 Arduino、设置固件并演示如何在 docker 容器中使用 .NET IoT。
工人安全的重要性
根据 OSHA,美国建筑工地工人死亡的最常见原因如下
- 跌倒(造成建筑工人死亡的 33.5%)
- 被物体击中(占建筑工人死亡的 11.1%)
- 触电(占建筑工人死亡的 8.5%)
- 夹在中间(占建筑工人死亡的 5.5%)
安全在每个工作现场都非常重要。有些地方是工人必须避开的。根据 Construction Dive 的一篇文章:与电梯相关的施工死亡人数正在上升
“虽然建筑和维修工人与电梯相关的总死亡人数与建筑总死亡人数相比相对较少,但从 2003 年到 2016 年,此类死亡人数翻了一番,从 14 人增加到 28 人,2015 年达到峰值 37 人,根据来自建筑研究与培训中心 (CPWR) 的一份报告。然而,跌倒是大多数电梯相关死亡的原因,就像整个建筑行业一样。超过 53% 的与电梯相关的死亡来自跌倒,在这些事件中,近 48% 来自 30 英尺以上的高度。”
查看这些统计数据,它在错误的时间出现在错误的地方。警告标志通常张贴在危险区域周围,但可能会被忽略或遗忘。
如果我们可以使用 Azure Percept 来监控这些危险区域并警告工作人员远离并避开它会怎样。目标是发出威慑、可听见的声音,提醒他们可能存在的危险。一旦工人离开该区域并且不再被检测到,声音就会自动停止。同样在维护期间,允许使用符合法规所需的授权远程禁用检测。
。
入门
我们将查看该项目的硬件、软件要求和架构图。然后逐步了解如何设置和部署应用程序。
硬件
Azure 感知设备工具包
https://www.microsoft.com/d/azure-percept-dk/8mn84wxz7xww
与 Arduino IDE 兼容的 ELEGOO UNO R3 超级入门套件
https://www.elegoo.com/products/elegoo-uno-project-super-starter-kit
软件
Azure 订阅(Azure Percept 需要)
视觉工作室代码
https://code.visualstudio.com/
适用于 VS Code 的 Azure IoT 工具扩展
https://marketplace.visualstudio.com/items?itemName=vsciot-vscode.azure-iot-tools
Azure IoT Edge 开发工具
https://github.com/Azure/iotedgedev
使用 DockerHub 帐户的 Docker
https://docs.docker.com/get-docker/
Arduino IDE
https://www.arduino.cc/en/software
整体架构
当摄像头检测到危险区域内的工人时,会发出警报并将遥测信息发送到云端。Azure Percept Device Kit 包含一个人员检测模型,用于处理来自相机的帧。当检测到工人时;它向 Arduino 设备发送消息以设置蜂鸣器声音并将消息发送到 IoT Hub。
指示
设置人员检测模型
Azure Percept Device Kit 连接到云端后,我们可以通过转到 Vision 选项卡 -> Deploy a Sample Model 来指定使用人员检测模型
设置 Arduino 模块
我按照 .NET IoT github 页面上的说明进行操作。
https://github.com/dotnet/iot/tree/main/src/devices/Arduino#quick-start
您可以在以下位置下载我用于此项目的 Firmata 固件:
https://github.com/rondagdag/arduino-percept/blob/main/firmata/percept-uno/percept-uno.ino
以下是步骤:
- 打开 Arduino IDE
- 转到库管理器并检查您是否安装了“ConfigurableFirmata”库
- 从设备绑定文件夹中打开“Percept-Uno.ino”或访问http://firmatabuilder.com/创建您自己的自定义固件固件。确保您至少检查了您需要的功能。
- 将此草图上传到您的 Arduino。
向arduino模块发送警报
在 Visual Studio Code 中打开 Percept Edge 解决方案项目
https://github.com/rondagdag/arduino-percept/tree/main/PerceptEdgeSolution
如果你有 Azure IoT Edge Dev 工具和 Azure IoT Tools Extensions for VS Code,这个模块可以在你的机器上本地运行
要在您的机器上本地运行它,您可能需要更改此 module.json
将存储库更改为您的 Dockerhub 用户名。
"repository": "rondagdag/arduino-percept-module"
Arduino 模块是一个控制 arduino 设备的 C# 应用程序。它是一个使用 .NET IoT 绑定的 docker 容器。这是我使用的Nuget 包。
Include="Microsoft.Azure.Devices.Client" />
Include="Microsoft.Extensions.Configuration" />
Include="Microsoft.Extensions.Configuration.Abstractions" />
Include="Microsoft.Extensions.Configuration.Binder" />
Include="Microsoft.Extensions.Configuration.EnvironmentVariables" />
Include="Microsoft.Extensions.Configuration.FileExtensions" />
Include="Microsoft.Extensions.Configuration.Json" />
Include="System.Runtime.Loader" />
Include="System.IO.Ports" />
Include="System.Device.Gpio" />
Include="Iot.Device.Bindings" />
Include="Microsoft.Extensions.Logging.Console" />
该模块尝试连接到两个 Arduino USB 端口。我注意到有时在重新启动期间,它可能是 arduino 连接到的这些端口之一。
/dev/ttyACM0
/dev/ttyACM1
为了在您的机器上本地运行它,您可能必须将端口号更改为 Arduino IDE 确定 UNO 连接到的端口号(Windows 的 COM3 或 Mac 的 /dev/ttyS1)
它连接到 115200 波特率。
蜂鸣器连接到如下所示的 PIN 12:
当从 IoT Edge 中心接收消息时,可以对其进行处理以检测是否检测到工作人员。如果有效载荷包含 NEURAL NETWORK 节点中的项目,那么我们可以将警报发送到 Arduino。
这是要分析的代码。
在您的机器上本地运行它可能会很棘手,并且可能需要一些修改。您可能必须修改部署模板和代码才能接收来自模拟温度的有效负载。
注意端口是如何映射到 docker 容器上的。/dev/ttyACM0 和 /dev/ttyACM1
"ArduinoModule": {
"version": "1.0",
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "${MODULES.ArduinoModule}",
"createOptions": {
"HostConfig": {
"Privileged": true,
"Devices": [
{
"PathOnHost": "/dev/ttyACM0",
"PathInContainer": "/dev/ttyACM0",
"CgroupPermissions": "rwm"
},
{
"PathOnHost": "/dev/ttyACM1",
"PathInContainer": "/dev/ttyACM1",
"CgroupPermissions": "rwm"
}
]
}
}
}
}
本地的 EdgeHub 映射如下所示。模拟温度传感器将输出传递给 Arduino 模块。然后 Arduino 模块过滤数据,控制 arduino 并将遥测数据发送到云端。
"$edgeHub": {
"properties.desired": {
"schemaVersion": "1.2",
"routes": {
"sensorToArduinoModule": "FROM /messages/modules/SimulatedTemperatureSensor/outputs/temperatureOutput INTO BrokeredEndpoint("/modules/ArduinoModule/inputs/input1\")",
"ArduinoModuleToIoTHub": "FROM /messages/modules/ArduinoModule/outputs/* INTO $upstream"
},
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
你可以在模拟器上测试一下
部署设置
为了将其部署到 Azure Percept,IoT Hub 设备 -> 设置模块 -> 添加 -> IoT Edge 模块
填写模块名称和图像 URI。
还有容器创建选项来映射正确的端口。
指定路线。在这种情况下,我们必须将来自 Azure Eye 模块的数据推送到 Arduino 模块。
这是映射的样子
"$edgeHub": {
"properties.desired": {
"routes": {
"AzureSpeechToIoTHub": "FROM /messages/modules/azureearspeechclientmodule/outputs/* INTO $upstream",
"AzureEyeModuleToArduinoModule": "FROM /messages/modules/azureeyemodule/outputs/* INTO BrokeredEndpoint("/modules/ArduinoModule/inputs/input1\")",
"ArduinoModuleToIoTHub": "FROM /messages/modules/ArduinoModule/outputs/* INTO $upstream"
},
概括
在任何工作场所,确保工人的安全都非常重要。Azure Percept 可以帮助检测人员并连接不同的警报系统。我们演示了如何设置 Azure Percept Dev Kit 以使用人员检测。我们已将 Arduino 与蜂鸣器连接以触发可听见的声音。这实际上使 Azure Percept Dev Kit 能够扩展功能并拓宽用例。让我知道这个博客是否对您有任何帮助,请在下面发表评论,我有兴趣学习不同的想法和用例。
资源
参考代码:
https://github.com/rondagdag/arduino-percept
Azure Percept 入门:
https://docs.microsoft.com/azure/azure-percept/
如果这个项目启发了您使用 Azure Percept - 单击“竖起大拇指”按钮并关注我。
- 让Arduino充当玻璃容器中的控制器和传感器读取器
- AM5708平台移植ubuntu系统和docker容器
- 兆易创新AN014 GD32微控制器在Arduino中的应用
- 适用于Arduino 101的Azure RTOS ThreadX线程
- docker技术入门与实战 0次下载
- docker-ceph在Docker容器中安装Ceph
- Docker Maven Plugin管理Docker容器
- docker-sshd Docker容器的sshd代理
- 云芯一号测评3:Docker基础使用测试
- 异构容器云应用迁移系统研究综述 8次下载
- 高性能嵌入式堆栈Azure PTOS USBX概述 10次下载
- 一种基于镜像层观念的Docker注册表缓存预取策略 16次下载
- 基于Docker的云资源弹性调度策略 0次下载
- 集成Docker容器的OpenStack云平台性能研究 0次下载
- 基于DOCKER容器的ELK日志收集系统分析 3次下载
- Docker容器实现开机自动启动策略 2139次阅读
- 如何使用 Docker容器化技术 1.5w次阅读
- 使用Docker安装WordPress教程 1350次阅读
- 如何在Docker容器中运行Nginx 1750次阅读
- Docker容器网络的数据链路是什么 800次阅读
- Docker开启IPv6 3287次阅读
- Azure Percept DK的硬件介绍与设置使用 945次阅读
- docker的4种网络模式配置 1270次阅读
- 使用Auzre Percept的前置处理步骤 837次阅读
- docker的4种网络模式 1592次阅读
- 详解Docker容器和Docker镜像 3420次阅读
- 如何从网页控制arduino? 3836次阅读
- 学习 Docker 容器的 8 个命令分享 1313次阅读
- 什么是虚拟化?什么是Docker ?Docker容器与虚拟机区别 2.3w次阅读
- 学习管理 docker 容器的一些命令 4216次阅读
下载排行
本周
- 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次下载 | 免费
评论
查看更多