用户指南
预警实例:水质监测

预警实例:水质监测

在当今社会,水资源保护的重要性日益凸显,水质监测成为环保工作中的关键环节。随着传感器技术的不断发展,水质传感器已成为实时监测水质变化的重要工具。本文将介绍如何利用 go-expr 对水质传感器采集的数据进行筛选,以实现有效的预警机制。

alarm

数据格式

本文所涉及的传感器数据格式如下:

JSON
{
  "tag": "temp2",
  "alias": "传感器1-温度",
  "slaverId": 2,
  "lastFetchTime": 1733836405282,
  "value": "222.2000"
}

该数据格式包含了以下字段:

  • tag:传感器标识符。
  • alias:传感器别名。
  • slaverId:传感器从设备 ID。
  • lastFetchTime:最后采集数据的时间戳。
  • value:传感器采集的数值。

预警规则设计

以下是一个基于 go-expr 的水质传感器数据规则预警案例,我们将以温度传感器为例,阐述如何筛选数据并触发预警。

规则描述

当传感器 1-温度(temp2)的读数超出正常工作范围时,系统应自动触发预警。

预警阈值

  • 正常温度范围:0°C 至 100°C
  • 预警触发条件:温度读数超出正常范围

go-expr 筛选逻辑

  1. 数据解析:首先,go-expr 需要解析传感器数据,提取出 value 字段的数值。
  2. 条件判断:然后,go-expr 将根据设定的阈值进行比较,判断当前温度是否在正常范围内。
    • 如果 value 小于 0 或大于 100,则认为温度异常,需要触发预警。
  3. 预警输出:当条件判断为真时,go-expr 将输出预警信息,包括传感器别名、异常值、触发时间和建议措施。

预警案例实施

假设我们接收到以下传感器数据:

JSON
{
  "tag": "temp2",
  "alias": "传感器1-温度",
  "slaverId": 2,
  "lastFetchTime": 1733836405282,
  "value": "222.2000"
}

以下是基于上述案例的 go-expr 表达式,用于筛选数据并判断是否触发温度异常预警:

JS
float(value) > 100 || float(value) < 0;

这个 expr 表达式的含义是:

  • value > 100:检查传感器采集的温度值是否大于 100°C。
  • value < 0:检查传感器采集的温度值是否小于 0°C。
  • ||:逻辑或运算符,表示如果任一条件为真,则整个表达式为真。
    当这个 expr 表达式评估为真时,即表示温度读数超出了设定的正常范围(0°C 至 100°C),系统将触发预警。在这个例子中,由于 value 的值为 222.2000,表达式 value > 100 将评估为真,因此会触发预警。

我们发现 value 字段的值为 222.2000,远超出了正常温度范围。因此,go-expr 将触发以下预警:

预警信息

  • 传感器别名:传感器 1-温度
  • 异常值:222.2000°C
  • 触发时间:1733836405282(时间戳)
  • 建议措施:立即检查传感器是否正常工作,如有必要,进行现场调查以确定温度异常的原因。

测试效果

此时告警数据已经产生:

alarm

我们使用串口屏模拟器来显示数据:

alarm

💡

测试案例中“74302e7478743d22e9ab98e6b8a9e9a284e8ada621212122FFFFFF”是“t0.txt="!!!High temperature!!!"”的十六进制编码格式:

alarm

结论

通过上述案例,我们展示了如何利用 go-expr 对水质传感器数据进行高效筛选,并实现温度异常预警。这种方法不仅提高了水质监测的效率,还确保了在水质问题发生时能够迅速采取行动,从而保障水环境的安全。随着 go-expr 技术的不断优化,我们有理由相信,未来的水质监测预警系统将更加智能和高效。

© 2023-2025 RHILEX Technologies Inc. All rights reserved.