基于LoRa 的垃圾抓斗远程监测系统设计
2023-08-27赵宇航龚元明王瑶龙林
赵宇航,龚元明,王瑶,龙林
(1.201620 上海市 上海工程技术大学 机械与汽车工程学院;2.201713 上海市 上海佩纳沙士吉打机械有限公司)
0 引言
垃圾抓斗是垃圾焚烧厂供料系统的核心设备,但抓斗的各主要机构需频繁移动、变速及急停,起升高度和水平移距较大,工作强度大,而且由于垃圾贮坑中温湿度高、粉尘较多,作业区环境极差;垃圾在发酵过程中产生大量易燃的烷类气体和具有腐蚀性的气体,对作业设备锈蚀严重。因此抓斗监测非常必要,可实时监测环境数据,及时捕捉故障信息。但传统的垃圾抓斗监测平台往往采用有线采集或者集成ZigBee 模块,不仅现场布线复杂、成本高,而且通信准确性、稳定性和抗干扰能力较差。针对通信存在问题,作为低功耗广域网的技术代表LoRa,与ZigBee、蓝牙等网络相比具有低功耗、远距离的优势,并且相较NB-IoT 成本低,成为远程监测系统的首选。
孙鹏[1]采用ZigBee 与GPRS 构成通信网关传输实时数据,并通过LCD 现场显示屏以及远程监测软件实现数据可视化,但存在信号传输距离短、稳定性及抗干扰能力较差的缺点;滕雪刚[2]设计了一种港口起重机抓斗测试系统,采用有线连接,但每次仅能对单个节点进行测试,更换测试节点则需要现场人工调试,并且大量抓斗在港口间距较大,布线复杂,通信成本高;程毅[3]设计了一种散货船上抓斗的状态监测及故障诊断系统,构建一种基于深度置信网络的时间序列故障预测模型,实现抓斗故障诊断的实时性和可靠性。
上述研究虽然部分实现了远程通信、故障诊断等功能,但现场环境复杂带来的采集数据波动大、通信技术抗干扰能力弱等问题没有良好的解决方案。本文设计的垃圾抓斗远程监测平台,使用LoRa+4G 通信方式,可有效解决上述问题。并且使用网页自适应技术,实现手机端与电脑端实时查看云服务器数据库,提高远程监测的便利性。此外,通过卡尔曼滤波算法处理传感器采集的数据,保证系统的准确性与稳定性。
1 系统总体设计架构
垃圾抓斗远程监测系统主要由现场数据采集与处理、通信模块、云平台3 大模块组成,实现数据采集与处理、数据传输与云存储、数据远程展示和故障诊断等功能。系统总体设计方案如图1 所示。
图1 系统总体设计方案Fig.1 Overall design scheme of the system
抓斗数据采集模块通过传感器采集环境数据,包括抓斗压力、加速度、倾角、毛重与净重、连续工作次数、总工作次数、环境温湿度、有害气体浓度等。数据处理与通信模块将采集的数据先进行卡尔曼滤波,并通过各个数据采集从节点的LoRa 模块与LoRa 网关主节点进行通信,实现一个通信主节点对应多个抓斗数据采集模块子节点;通信协议采用Modbus 协议;最后,通过自组建的LoRa 网关的以太网模块实现与云平台数据通信。云平台采用B/S 架构模式,服务器端负责接收并解析数据通信模块发送的报文数据,再存储至MySQL 数据库,其中Web客户端基于Ajax 技术,根据客户端请求将响应结果发送至请求端,实现异步更新与数据展示[4]。
2 硬件设计
硬件平台利用模块化的设计方法进行硬件电路设计和驱动程序编写,主要包括数据采集模块和LoRa 网关2 部分。
2.1 数据采集模块
数据采集模块主要由电源模块、传感器数据采集模块和LoRa 从节点模块3 部分组成。电源模块通过电压转换器转换成24 V 直流电,为传感器数据采集和通信模块提供稳定电源。首先传感器进行数据采集,数据送入 MCU 经滤波处理,再通过LoRa 模块周期性地将数据传输到网关[5]。LoRa 的多个从节点和中心节点组成星状网,减少了大量节点上行时数据冲突的概率并具有极大的延拓性。
主控制器选择英飞凌的 XC2234L 芯片,该芯片具有5 级流水线高性能 CPU,4 个通用串行接口通道、160 kB片上程序存储器以及足够的外设接口,如SPI、USART 和I2C 等。图2 为XC2234L 最小系统设计电路图。
图2 XC2234L 最小系统设计电路图Fig.2 Circuit diagram of XC2234L minimum system design
质量传感器是整个采集模块的关键模块,主要采集抓斗实际抓取重物的质量,并根据获取的值减去抓斗的质量计算出净质量。采集值受环境噪声影响较大,通过卡尔曼滤波算法可对采集值进行优化。加速度传感器采用7130A 模块,直接通过I2C通信协议进行数据传输,采集XYZ 三轴的加速度。温湿度传感器的核心是LM420,以温湿度一体式探头作为测温工具,具有体积小、测量精度高和抗干扰能力强等特点,测量温度范围在-40~120℃,精度在±0.5℃,湿度范围在0~100%,精度在±3%,最后通过RS485 实现与微控制器数据传输。有害气体传感器采用SO2-B4,通过电化学法监测SO2浓度,并通过UART 进行数据传输。
LoRa 各个从节点采用的是LM400TU 的LoRa二次开发模块,搭载SX1278 收发器,通过SPI 通信协议与微控制器进行数据传输,支持一键自组网,提供LoRaWAN 协议,降低开发复杂度[6]。待机状态下电流为22.2 mA,发送阶段电流为120 mA,但却以37.5 kbit/s 的高传输速率以及-148 dBm 的高接收灵敏度,最终满足实际应用中对传输距离、灵敏度、功耗的要求[7]。
2.2 LoRa 网关
LoRa 网关由LoRa 主节点、以太网模块构成无线通信网,实现移动网和LoRa 自组网之间的数据转换[8],并通过 TCP/IP 协议作为云服务器和网关的传输协议,起到快速、及时、准确发送传输数据的作用。LoRa 主节点无需连接传感器的采集工作,UART 接口与主控芯片通信,实现数据传输。网关利用无线自组网具有的快速展开、无控制中心等特点,将传感器数据采集节点置于其终端位置,并在组网时自动给各节点分配16 位网络地址,并且地址与广播信息匹配时,将数据发送给网关[9]。以太网模块选用W5500,模块集成硬件化TCP/IP 协议,内部32 K字节存储器作TX/RX缓存,通过SPI通信,具有简单方便、可靠性高优势。LoRa 无线通信单元如图3 所示。
图3 LoRa 无线通信单元Fig.3 LoRa wireless communication unit
3 软件设计
3.1 下位机及业务服务器设计
下位机程序设计包括针对XC2234L 的信号采集与传输设计、网关程序模块设计。信号采集与传输程序模块负责完成:(1)通过电源模块驱动电路,并将采集到的环境数据转换为数字信号;(2)数据经MCU 进行滤波处理;(3)通过网关将数据传输至云服务器。程序流程包括时钟、串口、定时器和多CAN 模块的初始化,随后连接网络、发送数据、接收数据和逻辑控制处理等。
终端设备和业务服务器通过TCP Socket 进行通信,服务器端先初始化Socket,之后绑定、监听端口并等待终端设备连接。对终端设备发送的数据,首先网络服务器验证数据的合法性,再进行数据解析并将解析的数据存入数据库中[10]。数据库使用MySQL8.0,数据库内存有各类故障码对应的信息和抓斗各种性能相关的数据,用于存储实时数据、故障码、配置信息以及用户信息等。
3.2 通信协议制定
数据包协议由头部、设备号、命令字、命令计数器、数据、校验位、尾部组成,其中头部为固定值0xAA,尾部为固定值0x55;命令字为现场设备通信接口与云服务器通信接口通信过程中的功能标识以及对现场设备网络协议软件的控制信息;数据表示终端设备与云服务器通信之间的数据传输内容,包含一个请求报文和一个响应报文以及每个报文的发送或接收时间,并且该协议严格遵守LoRaWAN 规范。通信协议数据包格式见表1。
表1 通信协议数据包格式Tab.1 Format of communication protocol data packet
3.3 后台监测系统软件设计
本监测系统采用前后端分离的开发方式,后端采用Springboot+MybatisPlus 框架进行开发。SpringBoot 在继承Spring 的控制反转(IOC)与面向切面(AOP)的优点上,优化依赖管理及配置过程,将业务实现和对象创建解耦,并且可以在不改变原有结构基础上增加新功能,便于后期功能扩展。同时,SpringBoot 嵌入Tomcat 服务器可快速构建应用。MybatisPlus 作为对象映射框架,通过XML 或注解配置映射关系,实现接口和实体类(POJO)与数据库数据形成映射,并提供基本CRUD 操作及支持自定义SQL 语句操作。
前端使用VUE3.js+ElementUI 技术设计,Vue作为自下向上的渐进式框架,采用MVVM 设计模式,通过数据和结构分离,实现响应的双向数据绑定并映射到视图层,其核心的响应式编程和组态化开发,极大提高开发效率。ElementUI 作为桌面组件库,对于原生标签进行封装,提供多种风格统一、样式丰富的组件,大大简化开发过程。前后端通信运用了Axios 技术,基于promise 的HTTP 库和后端交互,在异步的情况下实时抓取数据库数据并更新网页完成交互。管理员通过设备管理与终端设备进行数据交互,完成参数配置。界面如图4 所示。
图4 Web 端设计界面Fig.4 Web side design interface
针对垃圾抓斗的状态监测及日常管理的需要,系统设计了用户管理、数据管理、实时显示、设备管理4 个核心功能模块,并根据抓斗连续工作时间、工作次数、工作参数进行维护提醒以及故障预警:
(1)用户管理。为用户提供注册、登录、修改、删除账号信息以及为管理员提供权限管理操作、用户与设备匹配功能。数据库中包含角色表和权限表,并在角色表中包含角色级别字段,权限分为2 级,提前设定好角色表中各级拥有的权限。
(2)数据管理。为用户提供了历史数据查询、数据导入与导出的操作,数据库保存,历史数据以1 h为间隔,保存到数据库中,当超过48 h自动删除。
(3)实时显示。用于监视设备运行状态,包括抓斗的XYZ 三轴位置信号、开压、闭压等信息,并且根据预先存在数据库中的数据解析故障码并将故障显示在页面上。
(4)设备管理。根据预先录入设备的名称、型号、卡号、设备号、时间、备件,便于定位故障设备以及根据型号及时定位并更换备件,当备件不足时自动发送通知。
4 测试
4.1 传输性能测试
为测试系统传输数据的稳定性,将LoRa 数据采集节点均匀部署在抓斗工作区内,LoRa 网关架设控制室,主要通过改变控制室LoRa 网关的位置,在不同距离下,将数据通信模块的丢包率作为稳定性的评价指标,网络丢包率的公式为
式中:Pr——总数据包数;Pc——收到的数据包数。
在2 km 范围内,以100 m 作为一个测试点,并在每个测试点进行10 轮测试取平均值,最后对20 组测试数据的平均丢包率和传输距离进行对比分析。平均丢包率和数据传输距离的关系如图5 所示。实验结果表明,测试距离在500 m 以内的丢包率为0%,1 km 以内的丢包率不到10%,说明该系统能满足高可靠、远距离的组网通信。
图5 传输距离与平均丢包率Fig.5 Transmission distance and average packet loss rate
4.2 实时性测试
为测试系统传输数据的实时性,计算从LoRa网关发送数据到云平台的数据展示的时间间隔,主要是通过20 组数据,标记时间戳,计算间隔时间。LoRa 网关发送数据时间、云平台接收到数据时间和时间差关系如表2 所示。
表2 实时性测试表Tab.2 Real time performance test
经20 组测试,平均时间差在32 ms,最长时间间隔42 ms,说明该系统实时性较高,满足系统要求。
5 结语
本文设计了垃圾抓斗远程监控系统,采用LoRa 通信技术实现数据通信和数据长距离数据传输,并且在垃圾贮坑中能长时间稳定工作。通过Web 端监控系统实现了对抓斗工作状态的实时数据监测和环境数据监测,提高信息的融合程度。通过测试发现,在1.5 km 范围内,实现丢包率10%以下,实时性间隔在32 ms 左右,表明该监测系统具有较高的运行稳定性与实时性、操作维护简单、适用范围广,满足工业实际的需求。