亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

利用 Azure IoT Edge 模块孪生实现电路状态管理

通过应用于 Docker 容器中运行 Johnny 5 的模块孪生的领域特定语言,在树莓派上闪烁 LED。

项目背景

概览:

Azure IoT Edge 允许间歇性连网设备通过“模块孪生”获取期望属性。这些孪生可作为期望状态配置驱动 Edge 模块内特定行为。Edge 模块以容器工作负载运行,支持自愈与快速部署,无需持续连网。有网时,设备可利用云服务调用模块内方法。

本项目开发基于 Azure IoT NodeJS SDK 的 IoT Edge 模块,从云端获取期望状态,配置树莓派 GPIO 引脚,利用 Johnny 5 对连接电路执行期望操作。

这支持有趣用例:* 单电路多运行模式,通过应用不同状态配置切换 * 经 Kubernetes 编排配置妥当时,两设备连接同一电路实现冗余硬件故障转移

背景:

期望状态配置是流行概念,常用于首次预配服务器及强制运行系统合规。我们将此概念扩展至电路,利用为间歇网络环境下韧性与健康运行设计的服务。此法允许运行时改变连接电路行为,支持涉及硬件冗余的有趣场景。

微软 Azure IoT Edge 运行时提供坚实基础。该运行时作为本地服务运行,允许编排容器化“模块”,按设备在 Azure 云配置。始终使用两个系统模块:edge-agent 获取并应用模块部署配置,edge-hub 提供缓存消息到云与模块间通信。

我们从创建基于 Azure IoT NodeJS SDK 的 IoT Edge 模块开始。该模块接收孪生配置,指定设备的期望与报告属性。我们采用领域特定语言解析为 Johnny 5 配置。这让我们在云端定义电路功能,并应用到 IoT Edge 模块。

示例配置如下:

“config”: “{\”peripherals\”:[{\”type\”:\”Led\”,\”name\”:\”alarm\”,\”settings\”
:{\”pin\”:\”GPIO18\”},\”initialState\”: {\”method\”:\”blink\”,\”period\”:500},\
“outputAlias\”:\”alias2\”},{\”type\”:\”Button\”,\”name\”:\”button\”,\”settings\”:
{\”pin\”:\”GPIO20\”},\”outputAlias\”:\”alias1\”}]}”,

此例定义 GPIO18 上的 LED 设备,initialState 为每 500ms 闪烁。LED 状态可通过 outputAlias 传播至其他模块。GPIO20 上的按钮将状态变化发布至 alias1。此配置下,可通过路由 outputAlias 在额外模块中独立响应状态变化。

目前支持通过此机制配置温度计、LED 与按钮设备。

复现步骤:

首先,您需要拥有部署了 IoT Hub 的 Microsoft Azure 订阅。

接着,按此处说明连接 LED 至树莓派 GPIO18 准备硬件。

硬件与云服务就绪后,按此指南在树莓派安装 Azure IoT Edge 运行时。安装后,按此说明手动预配设备。

接下来在 Azure 创建特殊部署以闪烁 LED。

按下图创建部署:

镜像 URL:

toolboc/johnny5onedge:0.0.981-arm32v7

容器创建选项:

{“ExposedPorts”:{“9229/tcp”:{}},“HostConfig”:{“PortBindings”:{“9229/tcp”:[{“HostPort”:“9229”}]},“Privileged”:true,“Devices”:[{“PathOnHost”:“/dev/i2c-1”,“PathInContainer”:“/dev/i2c-1”,“CgroupPermissions”:“rwm”},{“PathOnHost”:“/dev/gpiomem”,“PathInContainer”:“/dev/gpiomem”,“CgroupPermissions”:“rwm”}],“Mounts”:[{“Type”:“bind”,“Source”:“/lib/modules/”,“Target”:“/lib/modules/”}]}}

模块孪生期望属性:

{
“properties.desired”: {
“config”: “{\”peripherals\”:[{\”type\”:\”Led\”,\”name\”:\”alarm\”,\”settings\”:{\”pin\”:\”GPIO18\”},\”initialState\”: {\”method\”:\”blink\”,\”period\”:500},\”outputAlias\”:\”alias2\”},{\”type\”:\”Button\”,\”name\”:\”on\”,\”settings\”:{\”pin\”:\”GPIO20\”},\”outputAlias\”:\”alias1\”}]}”
}
}

完成后保存。跳过 “Specify Routes” 与 “Specify Metrics” 直到 “Target Devices”。

Priority 设为 10,目标条件添加 tags.environment=’blinK

Read More Information…..

Desired State Configuration for Circuits


制造工艺

  1. CAD/CAM 技术赋能冲模制造:从虚拟设计到纳米级精度的跨越
  2. 发动机配置全解析:类型特征与分类体系
  3. 高风险作业下HMI配置优化指南
  4. 控制电路:基础、应用与最佳实践
  5. 信号电路高级屏蔽电缆:实用接线技巧 (第二部分)
  6. 信号电路屏蔽电缆:第一部分——最佳实践指南
  7. 精通Azure Kubernetes:核心工具、实战技巧与最佳实践
  8. Azure认证路径选择指南:Cloud Institute专家视角的职业规划
  9. 是否应该考取 Azure DevOps 认证?收益与职业影响全解析
  10. 无需正规培训攻克 Azure DevOps 认证考试
  11. 掌握云成本管理:AWS、GCP、Azure 三大平台实证优化策略
  12. 微软推出Azure Edge Zones赋能5G物联网与AI工作负载