智能水表接入 ThingsCloud 实现远程抄表
智能水表接入 ThingsCloud 实现远程抄表
这个示例,我们介绍如何将 RS485/Modbus 采集型水表接入 ThingsCloud,定时上报用水量,同时利用 ThingsCloud 的任务系统,来定期生成单位时间的用水量统计,例如:每日用水量和每月用水量。
通过分析不同业务水表的日、月、年用水统计数据,可以找到减少水费的方法。
通过 DTU 透传接入 ThingsCloud
关于 DTU 如何连接到 ThingsCloud,请参考以下文档和教程。ThingsCloud 是开放的物联网平台,支持任何 DTU 接入。
- DTU MQTT 接入通用教程
- DTU TCP 透传接入通用教程
- DTU TCP 透传接入 | 配置 RS485/Modbus 设备并生成 App
- ThingsEdge 4G DTU 接入 ThingsCloud 完整手册
- 塔石 4G DTU MQTT 接入 ThingsCloud
- 有人 4G DTU TCP 接入 ThingsCloud
- 合宙 iRTU MQTT 接入 ThingsCloud
- 银尔达 DTU MQTT 接入 ThingsCloud
添加属性定义
首先,我们在设备类型中,找到 功能定义,添加属性定义,如下图:
配置 Modbus 寄存器
接下来,确保设备类型的接入协议设置为Modbus RTU 透传,在设备类型的 Modbus 配置中,设置属性对应的设备端 Modbus 寄存器参数。
参考设备厂商提供的 Modbus 协议手册,可以知道水表读数的寄存器信息如下:
- 寄存器起始地址:0x0001
- 寄存器数量:2
- 数据类型:32 位无符号整数
水表通常还支持的寄存器包括:
- 控制阀门开关
- 查询阀门状态
- 读数清零
不同厂家的产品,支持的 Modbus 寄存器略有不同,请您参考实际产品手册。
根据手册中的寄存器信息,我们对设备类型的 Modbus 设置如下:
接下来,记得开启 属性智能转换,并设置正确的自定义数据流标识符,自定义数据流用于云平台和 DTU 之间收发 Modbus RTU 报文,通常默认创建的自定义数据流标识符为 stream
,请您根据实际情况为准。
通过任务查询数据
Modbus 数据上报需要主机发起查询,也就是从云平台下发查询指令,通过 DTU 透传到终端设备。
我们来创建 Modbus 查询任务,如下图:
保存任务后,我们可以手动点击单次运行任务,也可以在任务的定时选项中,设置定时时间间隔,例如 5 分钟,这样便可以每 5 分钟获得最新的数据。
查看数据
通过云平台的智能 Modbus 解析,在设备概要页面的属性中,我们可以实时看到设备最新上报的属性数据,如下图:
差值计算
通常水表上报的是累计总用水量,可以通过 ThingsCloud 的定时任务,周期计算并生成单位时间的用水量。
例如:定时任务在每天的 0 时运行,用总用水量减去前一天的总用水量,得出当天的总用水量。
使用 ThingsCloud 任务中的属性云函数,可以快速实现这个计算逻辑。如下图:
运行任务后,得到每日用水量的数值,如下图:
还可以再创建一个每个月定时执行的任务,来计算每个月的用水量。
编辑 App 设备界面
对于远程抄表项目运营商,通过 ThingsCloud 的零代码用户应用平台,可以随意设计个性十足的 App 设备界面,为用户实现水表的数字化管理系统。
同时,借助 ThingsCloud 内置的用户权限系统,可以将设备分配给不同终端用户账号。
更多功能
设备接入成功后,您在 ThingsCloud 的探索之旅才刚刚开始,请浏览: