应用YoMo开发一个噪声传感器采集监控系统

前言

这个例子描述 YoMo 在工业互联网数据采集中的应用,以收集噪声传感器的数据为例,涉及数据收集/处理/工作流/数据展示的全过程,为了便于体验运行效果,还会对其进行容器化,并通过docker快速部署体验版。

述语

  • xxx-source: 表示一个数据源收集程序
  • xxx-zipper: 表示一个工作流和控制平面
  • xxx-flow: 表示一个工作流单元,用于实际的业务逻辑处理,被zipper调度。
  • xxx-sink: 表示一个数据的传送目的地,一般落地数据库或者传递给下一级代理,被zipper调度。

架构

从图中可见,区分了边缘端和云端两个独立区域,区域之间是通过弱网或者互联网连接,这里简单介绍一下各个服务:

  • 边缘端部署了传感器设备(Noise)和数据收集网关(ZLAN),网关会定时向设备请求状态数据,并转换为MQTT协议数据发送给noise-source收集器,source起到转换编码并与YoMo工作流引擎zipper建立连接的作用。关于传感器设备和数据收集网关的硬件选购和配置可以参与这篇文章:https://yomo.run/zh/aiot
  • 对于不想购买硬件设备的开发者,这里也提供了一个noise-emitter模拟器用来产生噪声数据。
  • zipper是一个强大的工作流引擎,通过编排(workflow.yaml)可以调度多个flow和sink,让他们以流的方式把业务逻辑串联起来,以满足复杂的需求。与之相连的所有通信和编解码均以QUIC+Y3进行,提供可靠实时的流式处理,全程体验流式编程的乐趣。
  • noise-flow 实现把噪音值除以10的简单处理,并且监控如果超过一定阀值后输出日志进行警报。
  • noise-sink 没有真的输出到数据库,而是通过搭建一个WebSocket服务器,把实时的噪音状态输出给任意的网页进行展示消费。
  • noise-web 是一个消费WebSocket的网页服务,他部署在哪里都可以,只要能访问到noise-sink提供的WebSocket服务地址即可,这里我们假设部署回边缘端也是没有问题的。

代码

下表提供了案例的全部代码,供感兴趣的朋友查看,参照这个案体的代码,可以轻松开发出类拟场景的案例。

项目 地址 说明
noise-source yomo-source-noise-example 收集MQTT消息格式的噪音数据
noise-zipper yomo-zipper-noise-example 编排本案体的工作流和数据流向
noise-flow yomo-flow-noise-example 对噪音数据进行预处理和警报
noise-sink yomo-sink-socketio-server-example 提供WebSocket服务用于数据展示
noise-web yomo-sink-socket-io-example 消费WebSocket服务展示噪音状态
noise-emitter
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值