尚大伟,龚元明
(上海工程技术大学机械与汽车工程学院,上海 201620)
智慧水务作为智慧城市信息化建设的一部分,实现低碳供水实时调度,使管网服务压力符合低碳节能原则并满足管网末端供水压力需要,已成为供水行业发展趋势。
为解决城市二次供水难题,郑浩等[1]提出基于物联网的城市智慧水务系统设计,在末端节点采用控制柜控制设备开启和关闭,采集数据上传,由服务器对传来的信息进行分析计算,并将报警信息传给客户端显示;来耀明等[2]提出应用计算机技术、无线网络技术、云平台技术、物联网技术等将海量水务信息通过云平台及时分析处理。为提升城市对水资源的监管与治理,卿勇军等[3]提出基于LoRa的智慧水务系统,利用LoRa 高性能、远距离、低功耗、支撑大规模组网等特点,采用LoRa 模组采集数据,由Lo-RaWAN 基站传至云平台,由管理员通过PC 机终端、手机APP 等进行远程数据查询和控制。
低功耗广域(Low Power Wide Area,LPWA)作为一种低功耗广域网络技术,专为低功耗、低带宽、远距离、大连接的物联网应用而设计,主要解决物联网最后一公里通信问题。对当下几种主流的LPWA 技术指标进行对比[4],结果如表1 所示。
Table 1 Comparison of PWA mainstream technical indicators表1 PWA 主流技术指标对比
对几种主流技术的综合技术指标对比发现,NB-IOT技术因其具有运营商牌照,可与现有蜂窝网络融合演进,且具有低功耗、低成本、广覆盖、大连接等优势,非常适合智慧水务发展,将为实现水务高效管理,提升水务服务质量与效率带来积极的推动作用。
NB-IOT 作为LPWA 技术的一种,只消耗约180KHz的频段,可直接部署于GSM 网络或LTE 网络,是物联网领域的一项革命性创新技术。NB-IOT 使用license 频段,可采取带内、保护带或独立载波等3 种部署方式,可与现有网络共存[5],在公共事业、智慧城市、消费电子、农业与环境等行业均有一定应用[6]。
曲井致等[7]设计了基于NB-IOT 技术的照明系统,通过运营商的IOT 平台对路灯进行实时监控,有效解决了照明行业的上线问题和通信问题,取得了很好的改善效果;孙迪科等[8]设计了基于NB-IOT 的油烟监控系统,结合物联网云平台和北斗定位模块,为城市的餐饮油烟治理提供了行之有效的解决方法;岳虹宇等[9]、安东等[10]设计了基于NB-IOT 的智慧鱼塘管理系统,根据水中融氧值自动启停增氧机,实时上传水温、融氧和PH 值,实现APP 远程监控,有效节约了资源,降低了养殖风险。
智慧水务管理系统主要由终端设备、数据存储中心(服务器)和数据实时显示的客户端组成。其中,终端设备安装在各个管道网络节点处,实时采集管网压力参数并上传;数据传输主要通过采集节点嵌入NB-IOT 通信模组,采集到的数据通过NB-IOT 基站传输到NB-IOT 的核心网;数据存储中心(服务器)主要用来存储设备发送的信息数据,在存入数据库的同时转发数据到客户端;客户端主要通过地图、曲线及表格等方式实现终端设备信息可视化,在出现压力参数超限或超过波动阈值时报警提示,工作人员依据感知节点的实际情况调整测压点参数,实现水务系统调度。
参考物联网和云计算架构,从信息处理角度,智慧水务管理系统总体架构依次划分为感知层、传输层、平台层和应用层,如图1 所示[10]。
Fig.1 Overall architecture of smart water management system图1 智慧水务管理系统总体架构
终端设备主要由压力采集传感器、主芯片、NB-IOT 模块和供电模块组成(后续还可根据需要添加流量、温度传感器等),主要用来采集设备的压力信息、电池电压、压力波动等信息,通过NB 模块上报至服务器。终端设备结构框图如图2 所示。
Fig.2 Structure of terminal equipment图2 终端设备结构
终端设备通过串口通信与PC 通信设置工作参数,数据经处理上传给远程服务器(即数据中心)。终端可以通过远程客户端独立设置以下工作参数:①现场设备序列号;②上传数据的ip 地址;③管网压力工作上下限,压力波动槛值;④正常数据上传间隔;⑤异常数据上传次数。
终端设备实时监测管网压力和电池电压。管网压力在正常工作范围内,按设定的数据上传间隔定时上传数据(压力)给远程服务器;管网压力不在正常范围(即超上限、超下限或是超过规定的压力突变值,以及超过限值),及时上传管网压力数据给远程服务器,具体上传数据间隔和次数可以设定。
本系统采用的模组为BC35-G。BC35-G 是一款高性能、低功耗的NB-IOT 模块,采用LCC 封装,具有23.6mm×19.9mm×2.2mm 的超小尺寸,支持Pv4/IPv6/UDP/CoAP/Lw M2M/Non-IP/DTLS/TCP/MQTT 协议,便于嵌入到物联网产品中,能很好地满足物联网应用需求。
本文采用TCP 网络协议方式,对BC35-G 模组上电,先调至自动入网模式,结合AT 命令采用los_nb_ini(t)函数先对模组进行初始化配置,完成模组附着附近基站网络后,采用data_collection_task()完成数据采集任务,采用data_report_task()进行数据传输。
NB 模组按照时间间隔上传数据,为保证传输的可靠性和稳定性,采用目前应用最广泛的HTTP1.1(HyperText Transfer Protocol,超文本传输协议)协议作为硬件与服务器的通信协议。HTTP 协议是一种无连接、无状态协议,通信时才建立TCP 连接,通信结束后关闭连接,HTTP 协议自身不对请求和响应之间的通信状态进行保存[11]。协议对话由设备发起请求给服务器,服务器根据其发来的数据进行响应。
HTTP 请求由请求行、请求头、空行3 部分构成,请求正文格式如图3 所示[12]。
Fig.3 HTTP request format图3 HTTP 请求格式
HTTP 请求的报文起始行开头采用GET/POST 的请求方法,随后的字符串指明请求访问的资源对象,最后的HTTP/1.1 即HTTP 的版本号,用来提示客户端使用的HTTP 协议功能。本文请求报文格式如表2 所示。
Table 2 Format of HTTP 1.1 request message表2 HTTP1.1 请求报文格式
水务管理平台采用B/S 模式,优势在于可通过一定的权限控制实现多用户访问,并且B/S 无需对客户端升级,直接升级服务器即可。服务器选择基于Windows 系统下Apache+MySQL+PHP 网站服务器架构[13-15],用户可直接通过浏览器访问水务管理系统。系统监测平台主要包含登录界面、数据查询、历史数据查询、报警管理、系统分组和系统设置等内容,请求服务器数据显示在界面上,并实现终端设备的调度功能。
系统分为普通用户登录和管理员登录两种模式。用户在登录系统之前需注册个人信息,包括用户名、密码、手机号或邮箱等,待身份验证成功后方可登录到系统界面,身份验证过程如图4 所示。
Fig.4 User login process图4 用户登录流程
成功获取登录权限进入首页,系统主界面包含地图显示、数据查询、设备及用户管理等,主页面组成框架如图5所示。
Fig.5 System main page frame图5 系统主页面框架
用户成功登录后,可通过地图查看其所管理的设备位置及当前设备信息,了解设备在现场的运行状况;实时查看设备上报的数据并对时间区间进行筛选,查看历史数据曲线走势,并通过历史曲线反映过去1 天、1 周、1 月、3 月、6 月的压力波动情况及最大值最小值,实现对未来运行情况的预测;通过设备告警及历史报警次数,结合设备信息,更高效地发现并排查问题;通过设备列表修改设备基本信息,实现对设备的分组管理,允许用户接入该系统灵活修改公司信息,提高系统的灵活性与实用性;管理员可以对用户接入进行审核管理。
数据显示采用表格、地图等多种形式,显示新建测压点的压力数据和对应位置。一般正常运行状态下,各测压点压力数据不实时刷新;出现报警状态时,立即通过声、光等报警信息显示测压点的报警状态(是低限还是高限报警)及压力数值,实时显示压力数值的结束时间由调度人员选择确定。报警时,表格、地图上的相应测压点图标通过闪烁等方式进行提醒,以便调度人员及时方便地了解压力报警区域和位置。
出现报警状态时,系统必须立即显示报警测压点的报警状态(超上限、超下限或是超过规定的压力突变值及超过多少)及目前该测压点的实时压力数值,实时显示压力数值的结束时间由调度人员选择确定。
本数据库采用开源的关系型数据库MySQL,采用InnoDB 引擎。随着终端设备采集数据的不断增加,数据量会特别大,导致数据查询速度降低。为提高数据库性能,采用分布式存储,根据功能对数据库进行垂直切分,分别建立用户信息表、设备动态数据表、设备静态信息表、设备数据调度表、异常报警表、用户接入信息表等,用于存放用户信息、监测主体基本信息、NB-IOT 终端设备基本信息、终端设备上传的基本信息、客户端修改信息、调度信息及异常报警信息。通过对大的数据表进行拆分,实现读写分离,降低数据库集群的访问压力。
智慧水务监测系统结合传感器技术、NB-IOT 技术和互联网技术,实现了表格、地图和曲线多种方式的数据可视化显示,实现设备报警管理和终端设备管理等功能,并允许多用户接入平台,具有很高的通用性。NB-IOT 作为新一代最有潜力的技术,相比其它LPWA 技术,提高了网络传输的安全性和可靠性。同时,随着NB 模块的量产,NB 模组的成本会大幅降低,系统性价比提高,为系统推广带来一定价值。随着用户的不断接入和管理设备的不断增多,后续将不断优化数据库的承载性能并提升Web 服务的吞吐量,保证系统优良的工作性能。