資料介紹
描述
這是一篇文章,我們探討了使用 Azure Percept 來提高工作人員的安全性并構(gòu)建連接到微控制器以控制警報的概念證明。本文介紹了如何將 Azure Percept 連接到 Arduino、設(shè)置固件并演示如何在 docker 容器中使用 .NET IoT。
工人安全的重要性
根據(jù) OSHA,美國建筑工地工人死亡的最常見原因如下
- 跌倒(造成建筑工人死亡的 33.5%)
- 被物體擊中(占建筑工人死亡的 11.1%)
- 觸電(占建筑工人死亡的 8.5%)
- 夾在中間(占建筑工人死亡的 5.5%)
安全在每個工作現(xiàn)場都非常重要。有些地方是工人必須避開的。根據(jù) Construction Dive 的一篇文章:與電梯相關(guān)的施工死亡人數(shù)正在上升
“雖然建筑和維修工人與電梯相關(guān)的總死亡人數(shù)與建筑總死亡人數(shù)相比相對較少,但從 2003 年到 2016 年,此類死亡人數(shù)翻了一番,從 14 人增加到 28 人,2015 年達(dá)到峰值 37 人,根據(jù)來自建筑研究與培訓(xùn)中心 (CPWR) 的一份報告。然而,跌倒是大多數(shù)電梯相關(guān)死亡的原因,就像整個建筑行業(yè)一樣。超過 53% 的與電梯相關(guān)的死亡來自跌倒,在這些事件中,近 48% 來自 30 英尺以上的高度?!?/font>
查看這些統(tǒng)計(jì)數(shù)據(jù),它在錯誤的時間出現(xiàn)在錯誤的地方。警告標(biāo)志通常張貼在危險區(qū)域周圍,但可能會被忽略或遺忘。
如果我們可以使用 Azure Percept 來監(jiān)控這些危險區(qū)域并警告工作人員遠(yuǎn)離并避開它會怎樣。目標(biāo)是發(fā)出威懾、可聽見的聲音,提醒他們可能存在的危險。一旦工人離開該區(qū)域并且不再被檢測到,聲音就會自動停止。同樣在維護(hù)期間,允許使用符合法規(guī)所需的授權(quán)遠(yuǎn)程禁用檢測。
。
?
入門
我們將查看該項(xiàng)目的硬件、軟件要求和架構(gòu)圖。然后逐步了解如何設(shè)置和部署應(yīng)用程序。
硬件
Azure 感知設(shè)備工具包
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 工具擴(kuò)展
https://marketplace.visualstudio.com/items?itemName=vsciot-vscode.azure-iot-tools
Azure IoT Edge 開發(fā)工具
https://github.com/Azure/iotedgedev
使用 DockerHub 帳戶的 Docker
https://docs.docker.com/get-docker/
Arduino IDE
https://www.arduino.cc/en/software
整體架構(gòu)
當(dāng)攝像頭檢測到危險區(qū)域內(nèi)的工人時,會發(fā)出警報并將遙測信息發(fā)送到云端。Azure Percept Device Kit 包含一個人員檢測模型,用于處理來自相機(jī)的幀。當(dāng)檢測到工人時;它向 Arduino 設(shè)備發(fā)送消息以設(shè)置蜂鳴器聲音并將消息發(fā)送到 IoT Hub。
指示
設(shè)置人員檢測模型
Azure Percept Device Kit 連接到云端后,我們可以通過轉(zhuǎn)到 Vision 選項(xiàng)卡 -> Deploy a Sample Model 來指定使用人員檢測模型
設(shè)置 Arduino 模塊
我按照 .NET IoT github 頁面上的說明進(jìn)行操作。
https://github.com/dotnet/iot/tree/main/src/devices/Arduino#quick-start
您可以在以下位置下載我用于此項(xiàng)目的 Firmata 固件:
https://github.com/rondagdag/arduino-percept/blob/main/firmata/percept-uno/percept-uno.ino
以下是步驟:
- 打開 Arduino IDE
- 轉(zhuǎn)到庫管理器并檢查您是否安裝了“ConfigurableFirmata”庫
- 從設(shè)備綁定文件夾中打開“Percept-Uno.ino”或訪問http://firmatabuilder.com/創(chuàng)建您自己的自定義固件固件。確保您至少檢查了您需要的功能。
- 將此草圖上傳到您的 Arduino。
向arduino模塊發(fā)送警報
在 Visual Studio Code 中打開 Percept Edge 解決方案項(xiàng)目
https://github.com/rondagdag/arduino-percept/tree/main/PerceptEdgeSolution
如果你有 Azure IoT Edge Dev 工具和 Azure IoT Tools Extensions for VS Code,這個模塊可以在你的機(jī)器上本地運(yùn)行
要在您的機(jī)器上本地運(yùn)行它,您可能需要更改此 module.json
將存儲庫更改為您的 Dockerhub 用戶名。
"repository": "rondagdag/arduino-percept-module"
Arduino 模塊是一個控制 arduino 設(shè)備的 C# 應(yīng)用程序。它是一個使用 .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
為了在您的機(jī)器上本地運(yùn)行它,您可能必須將端口號更改為 Arduino IDE 確定 UNO 連接到的端口號(Windows 的 COM3 或 Mac 的 /dev/ttyS1)
它連接到 115200 波特率。
蜂鳴器連接到如下所示的 PIN 12:
當(dāng)從 IoT Edge 中心接收消息時,可以對其進(jìn)行處理以檢測是否檢測到工作人員。如果有效載荷包含 NEURAL NETWORK 節(jié)點(diǎn)中的項(xiàng)目,那么我們可以將警報發(fā)送到 Arduino。
這是要分析的代碼。
在您的機(jī)器上本地運(yùn)行它可能會很棘手,并且可能需要一些修改。您可能必須修改部署模板和代碼才能接收來自模擬溫度的有效負(fù)載。
注意端口是如何映射到 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 模塊過濾數(shù)據(jù),控制 arduino 并將遙測數(shù)據(jù)發(fā)送到云端。
"$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
}
}
你可以在模擬器上測試一下
部署設(shè)置
為了將其部署到 Azure Percept,IoT Hub 設(shè)備 -> 設(shè)置模塊 -> 添加 -> IoT Edge 模塊
填寫模塊名稱和圖像 URI。
還有容器創(chuàng)建選項(xiàng)來映射正確的端口。
指定路線。在這種情況下,我們必須將來自 Azure Eye 模塊的數(shù)據(jù)推送到 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 可以幫助檢測人員并連接不同的警報系統(tǒng)。我們演示了如何設(shè)置 Azure Percept Dev Kit 以使用人員檢測。我們已將 Arduino 與蜂鳴器連接以觸發(fā)可聽見的聲音。這實(shí)際上使 Azure Percept Dev Kit 能夠擴(kuò)展功能并拓寬用例。讓我知道這個博客是否對您有任何幫助,請?jiān)谙旅姘l(fā)表評論,我有興趣學(xué)習(xí)不同的想法和用例。
資源
參考代碼:
https://github.com/rondagdag/arduino-percept
Azure Percept 入門:
https://docs.microsoft.com/azure/azure-percept/
如果這個項(xiàng)目啟發(fā)了您使用 Azure Percept - 單擊“豎起大拇指”按鈕并關(guān)注我。
- 讓Arduino充當(dāng)玻璃容器中的控制器和傳感器讀取器
- AM5708平臺移植ubuntu系統(tǒng)和docker容器
- 兆易創(chuàng)新AN014 GD32微控制器在Arduino中的應(yīng)用
- 適用于Arduino 101的Azure RTOS ThreadX線程
- docker技術(shù)入門與實(shí)戰(zhàn) 0次下載
- docker-ceph在Docker容器中安裝Ceph
- Docker Maven Plugin管理Docker容器
- docker-sshd Docker容器的sshd代理
- 云芯一號測評3:Docker基礎(chǔ)使用測試
- 異構(gòu)容器云應(yīng)用遷移系統(tǒng)研究綜述 8次下載
- 高性能嵌入式堆棧Azure PTOS USBX概述 10次下載
- 一種基于鏡像層觀念的Docker注冊表緩存預(yù)取策略 16次下載
- 基于Docker的云資源彈性調(diào)度策略 0次下載
- 集成Docker容器的OpenStack云平臺性能研究 0次下載
- 基于DOCKER容器的ELK日志收集系統(tǒng)分析 3次下載
- Docker容器實(shí)現(xiàn)開機(jī)自動啟動策略 2139次閱讀
- 如何使用 Docker容器化技術(shù) 1.5w次閱讀
- 使用Docker安裝WordPress教程 1350次閱讀
- 如何在Docker容器中運(yùn)行Nginx 1750次閱讀
- Docker容器網(wǎng)絡(luò)的數(shù)據(jù)鏈路是什么 800次閱讀
- Docker開啟IPv6 3287次閱讀
- Azure Percept DK的硬件介紹與設(shè)置使用 945次閱讀
- docker的4種網(wǎng)絡(luò)模式配置 1270次閱讀
- 使用Auzre Percept的前置處理步驟 837次閱讀
- docker的4種網(wǎng)絡(luò)模式 1592次閱讀
- 詳解Docker容器和Docker鏡像 3420次閱讀
- 如何從網(wǎng)頁控制arduino? 3836次閱讀
- 學(xué)習(xí) Docker 容器的 8 個命令分享 1313次閱讀
- 什么是虛擬化?什么是Docker ?Docker容器與虛擬機(jī)區(qū)別 2.3w次閱讀
- 學(xué)習(xí)管理 docker 容器的一些命令 4216次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論
查看更多