基于LoRa 的水泵智能控制系统设计与实现

2020-09-29 05:48张晴晖李俊萩秦明明
实验技术与管理 2020年6期
关键词:水塔泵房网关

戴 杨,张晴晖,李俊萩,宋 燚,秦明明

(西南林业大学 大数据与智能工程学院,云南 昆明 650224)

目前,大部分小型泵站仍然采用传统的人工操作方式,部分泵站使用了水位浮子配合简易遥控装置能实现简单的半自动运行[1-3],但这种方式依然需要人工辅助,且单向遥控易受外界干扰,并不可靠。部分控制系统使用PLC 或单片机作为控制核心,可以对设备及水位状况做出简单判断,但仍然无法做到无人值守[4-6]。随着物联网、嵌入式、边缘计算技术的飞速发展,物联网及边缘计算技术逐渐应用于小型泵站的智能控制,使得水泵的智能全自动控制成为可能[7-8]。

根据小型泵房管理特点,本文提出了一种基于LoRa 物联网、嵌入式及边缘计算技术的水泵智能控制系统(见图1),用于水塔与多个泵站间的自动控制。系统除具备水塔实时水位采集、水泵自动起停、智能保护、数据查询及实时显示功能等功能外,还引入了边缘计算技术。整个网络没有中心节点,每个节点都能从网络中平等地获取数据,独立运算,自动调整启动阈值以达到最佳调度效果。

图1 系统结构框图

在该项目实施过程中,采用了“稳定实验团队培养模式”[9],依托学院创新基地及学校科技创新基金支持,使项目顺利进行且具有较好的延续性,同时也增强了参与项目学生的团队协作能力。

该系统已在西南林业大学的供水系统中进行了部署实验,在校园面积扩大、在校生人数持续增加但水源没有增加的情况下高效调度水泵工作。至今,该系统运行已有2 年时间,期间未出现过异常停水的情况,有效保障了供水安全。同时,其为物联网、嵌入式课程教学提供了实验平台与数据。

1 硬件系统设计

本文系统的设计来源于解决西南林业大学改扩建后用水量急剧上升但水源并未增加导致供水不足问题。泵房原有设备虽然实现了无线电遥控功能,但功能较为简单,且不具备设备保护功能。运行过程中经常出现水塔溢出或放空的情况,一方面浪费了水资源,另一方面空转和长时间工作导致水泵电机烧毁。简单的低水位抽水、高水位停机无法根据实际用水量进行调整,经常导致用水高峰期停水。各个水池的水位只能靠人工查看,增加人力投入也无法做到实时掌握,进一步增加了调度的难度。基于以上问题,设计了一套基于LoRa 物联网,结合边缘计算及嵌入式技术的水泵智能控制系统。

如图1 所示,整套系统的硬件由用于水塔水位采集的水塔监测节点、用于泵房自动监测及控制的泵房监控节点、用于LoRa 数据与以太网数据交互的网关、后台管理及服务系统4 部分组成。

1.1 水塔监测节点硬件设计

水塔监测节点用于实时监测水塔水位,通过无线传感器网络向各个节点提供水塔水位数据及高低水位警告。考虑到水塔一般位置较高,不便使用市电,水塔监测节点设计为使用太阳能供电,可降低系统的部署难度及成本。另外,监测节点具备2 套相互独立的液位传感装置,可对采集到的参数进行校验,自动上报传感器故障。

图2 为水塔监测节点原理框图,主要包括MCU、水位信号采集和电源管理3 部分。其中MCU 采用了STM32F103,其丰富的片上资源减少了外围元件的使用、方便了硬件设计,Cortex_M3 内核为边缘计算的实现提供了充足的运算能力[10]。无线收发器采用了SX1278 非授权频谱LoRa 调制芯片,采用线性调频扩频调制方式可以有效提高灵敏度、抗干扰能力和信道容量[11],使用较低的功耗实现远距离数据传输,适合远距离组网使用[12]。

图2 水塔监测节点原理框图

水位数据采集采用了电流型投入式液位感器,通过转换电路将4~20 mA 电流信号转换为0~5 V 电压信号后送入ADC 采样后换算为水池实际水位。水位过低或过高时会触发水位浮子翻转,使浮子驱动电路产生电平变化触发MCU 外部中断使系统获取水位超限信息。电源系统收集太阳能为节点提供电力并为锂电池充电,夜间及阴雨天则由锂电池提供电源。

1.2 泵房监控节点硬件设计

泵房监控节点用于实时采集泵房水池的水位状态,完成与网络中其余节点的数据交互,根据各节点的工作状态及自身运行数据综合计算,自动控制水泵工作。

图3 为泵房监控节点原理框图,主要由MCU、液晶显示屏、控制旋钮、电源管理、4 路模拟电流量输入、4 路无源开关量输出6 个部分组成。温度探头用于监测水泵运行的温度,配合系统实现超温保护的功能。水位传感器用于监测泵房水池的水位变化,为低水位停机及抽水时长提供数据。开关量输出单元通过驱动继电器的通断来控制变频器启动水泵抽水。液晶显示屏、操作旋钮及启动/停止按钮构成用户交互界面,用户可以通过液晶屏查看各个节点的实时状态,通过旋转旋钮可对菜单进行操作修改当前节点的运行参数。使用启动/停止按钮可以实现水泵的手动启动及紧急停机。

图3 为泵房监控节点原理框图

1.3 网关硬件设计

网关是LoRa 传感器网络与以太网衔接的桥梁,将来自物联网的数据转换为TCP/IP 数据,并将来自网络的TCP/IP 数据包转换为物联网数据发送给各个节点。

网关同样使用 STM32F103 作为处理器,使用SX1278 作为收发模块。整个装置安装在铝压铸盒内,能适应长期户外使用。网关的电源采用了48VPOE 供电,安装时只需要一根网线即可实现供电与数据传输。

2 节点软件系统设计

节点软件的设计充分运用了去中心化的思想,网络中的所有节点都处于平等地位,平等地接收信息并拥有自主决定权。这使得部分节点的退出不影响整个网络的稳定运行。

节点底层软件设计调用了SX1278 的底层API,通过SPI 总线协议进行通信。所有节点均工作于ClassC模式,收发器不进入休眠,保证数据包的可靠接收。

图4 为节点的主程序流程图。程序主进程循环采集传感器数据,结合其他节点的运行数据计算并刷新运行参数,根据运行参数控制水泵的启动与停止。数据收发、屏幕刷新、用户操作、物联网数据收发采用中断响应方式编写,可以减少液晶屏刷新、用户操作等进程在系统运行中占用的运算资源,提高系统运行效率,将更多资源留给计算运行参数。定时器1 用于启动LoRa 数据发送子进程,将本节点的数据发送到物联网中;定时器2 用于启动液晶屏刷新子进程,设定每0.5 s 进行一次刷新。用户操作子进程由用户触动控制按钮激活,操作完成进程随即关闭。物联网数据接收子进程由物联网无线数据包触发,程序自动判断数据包来源和类型后对节点相应参数进行修改,数据更新完成进程即关闭。看门狗程序可以在程序出现错误时重启系统,提高系统稳定性。

2.1 物联网数据帧格式设计

数据帧格式采用LoRa 规范的帧格式,由前导码、物理头、负载和校验组成,结构如图5 所示。数据帧起始两字节为地址码,分别标识节点的簇编号和节点ID 号;地址码后是两字节操作代码,用于标识该数据帧传输的数据定义;其后是16 字节数据;最后是6字节时间代码。

图4 节点软件流程图

图5 LoRa 无线物联网数据帧格式

2.2 节点运行参数自动更新算法设计

节点在运行过程中自动收集来自传感器的数据和来自其他节点的运行数据,按算法计算并更新控制参数。每个节点的计算过程相互独立,不依赖于服务器,但节点会将更新后的控制参数发送到传感器网络中,完成与其他节点的数据交互。这种处理模式在源头对数据进行处理,使整个网络去中心化,能有效提高系统的可靠性[13]。

每个节点启动水泵的条件都由本泵站的水位、其余泵站的工作状态、水塔水位的变化情况计算得出。其计算的依据为水塔输出水量的变化情况。节点会在每次抽水结束后定时计算水塔水位下降的速率,计算方式如下:

式中,k 为Δt 时间内水位下降的速率,其数值反映了用水量的大小;ht为根据水位下降速率求出的t 时刻水泵启动水位。为排除干扰,准确反映该时间段内水位下降的速率,系统循环计算k 值,并求出其平均值kn,如式(2)所示。kn用于动态调整水泵启动条件中的水塔水位下限,如式(3)所示。

式中,ht限制于节点设置的水塔上限水位hH和水位下限hL之间;b 为常数,该参数是经验值,需要根据水塔容积及运行情况进行调整。

该策略可以让水泵在用水量大时提高抽水频率,水塔中保持较高的水位;在用水量低时延长水泵停机时间,降低启动频率,减少设备磨损。

2.3 节点操作界面设计

图6 用户操作界面

节点内建了实时数据显示及用户操作界面,在无用户操作时液晶屏显示为待机界面(图6(a))。该界面显示了本节点及相邻节点的实时运行参数。用户按下控制旋钮即进入菜单选项(图6(b)),旋转控制旋钮可以对相应参数进行修改(图6(c)—6(f)),确认后的参数会被保存到MCU 的EEPROM 中,掉电不会丢失。

3 后台服务程序设计

后台服务软件由节点管理与WEB 服务2 部分构成。节点管理用于采集来自各个节点的数据,并对其运行状态进行监控,也负责节点数据更新及遥控指令下发。WEB 服务为用户提供数据查询及实时展示,可通过网页查看各个节点的实时状态、历史数据,并提供数据分析功能。

3.1 节点管理程序设计

节点管理程序通过网关监控整个网络的运行情况,采集运行数据并存储入数据库。同时实现对节点的数据更新及异常检测功能。

为保持各个节点的时间一致,管理程序通过北斗NTP 获取标准时间,通过下发数据帧的时间字段对各个节点进行校时。当用户通过网络发起遥控请求时,管理程序将网络数据包转换为控制指令,通过网关发送给对应节点。当物联网中有节点出现异常时,节点管理程序将异常信息发送给用户,便于故障的排查处理。

3.2 WEB 服务程序设计

WEB 服务后端基于Django 开源框架实现,前端采用响应式布局设计,支持PC 端和手机端浏览,以图形图表的方式展示了用水量变化、实时水位、设备电量和设备运行状态。考虑到应用场景的特殊性,以及工作人员的使用便捷问题,工作人员只需输入指定网址即可查看各参数的变化情况。页面默认只显示过去24 h 内各参数的变化图形,可点击图形查看各参数的具体数值。通过曲线的变化,用户可以了解到最近时段的用水情况,结合系统自带的数据分析功能可快速判定用水管道设施是否发生故障,以便提前做好保障用水的应对措施。

4 系统测试与分析

4.1 泵房控制节点和网关的部署

本系统在西南林业大学校园内进行实际部署,共建设了两个网关,2 个泵房监控节点,一个水塔监测节点。图7(b)为水塔监控节点实物,节点使用ABS 工程塑料外壳封装,可使用标准导轨安装。图7(c)为水塔监测节点实物,该节点使用铝压铸外壳封装,可抵御户外恶劣条件,保证稳定运行。图7(d)-(f)分别为网关、泵房监控节点、水塔监测节点实际部署照片。

图7 部署区域及实物照片

4.2 WEB 服务端测试

本系统的WEB 服务端界面能够从宏观上观察各个节点的运行状态。图8 为2019 年10 月29—31 日的WEB 界面。通过该界面可以实时查看各个节点的运行情况,界面上同时显示了现有的2 个泵房1 个水塔的实时数据。包括:实时水位、设备的电源电压、水位变化的波动情况、水泵的运行状态。其中水塔的下限水位在不断变化,这是系统自动调节的结果。图中的设备电量是设备的工作电压,其大幅度跳变是因为太阳能已为电池充满电,系统显示太阳能电池的开路电压。通过WEB 界面用户还可指定时间段对历史数据进行回放。

图8 WEB 前端界面

图9 为手机端软件运行效果。用户通过手机端软件能查看各个节点的运行状态以及运行数据绘制出的曲线,点击曲线,可以查看该时刻的详细数据,手机端也同样支持数据回放功能。

4.3 引入边缘计算对提高供水可靠性的分析

通过对整个系统的运行数据截取进行分析,得出2019 年10 月11—13 日各个节点的水位变化情况,如图10 所示。图中3 条折线分别显示了水塔、#1 泵站水池、#2 泵站水池3 天的水位变化情况。从图中可以看出,水塔水位下降速度越快,触发泵站开始工作的最低水位就越高。其中12 日晚因#1 泵站停水触发#1泵站监控节点低水位保护,该紧急情况触发了#2 泵站延长水泵工作时长,保证了水塔始终处于有水的状态,未导致停水。待#1 泵站水位回升到正常水位后系统随即恢复正常状态。

图9 手机软件界面

图10 节点水位变化

5 结论

本系统针对多节点水泵系统智能化调度管理的需要,基于LoRa 物联网及边缘技术设计了一套水泵自动调度系统。系统在西南林业大学实际部署,并稳定运行了2 年时间。通过实际使用及对数据库中存储的大量数据抽取分析对比,验证了该系统的稳定性和可靠性。该架构体系有利于推广物联网技术及边缘计算在泵站自动化、智能化管理中的运用,为泵房系统管理者将现场操作记录向电子手持终端远程监控进行转移,降低劳动强度的同时也为供水保障提供技术支撑服务。同时,该项目的实施为学生提高实践动手能力提供了真实的物联网系统运维环境及原始数据。

猜你喜欢
水塔泵房网关
“植物水塔”大比拼
进水池波浪对泵房水流进水条件影响的数值模拟及实验
废弃水塔化身纪念馆,向凡人英雄致敬
瓶型取水泵房工程设计与研究
关键路径法在AP1000泵房通水进度管理中的运用
泵房排水工程中剩余水头的分析探讨
信号系统网关设备的优化
共同护佑坚固丰沛的“中华水塔”
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”