APP下载

基于LwM2M协议栈云智能水表系统设计

2020-07-21卢佳佳

贵阳学院学报(自然科学版) 2020年2期
关键词:智能水表模组华为

卢佳佳

(福州理工学院 计算与信息科学学院,福建 福州 350506)

伴随着经济的高速发展,人民生活质量的提高,自来水的使用逐渐普及,传统水表存在的问题和弊端就慢慢凸显出来,人工抄表的压力愈加明显,得大量的人力投入才能完成抄表任务,智能水表的使用普及迫在眉睫。笔者设计的云智能水表系统,具有将水量计量数据通过NB-IOT通信模块上传到云端,实现云计量读数的远程抄表功能。

抄表业务有着如下特点:用户众多对于深度和广度覆盖要求高;对功耗十分敏感;对数据传输的实时性要求不高;海量连接并需要传输加密;需要周期性上报,因此特别适合采用LwM2M协议的数

据封装方式。另外,NB-IOT有着广覆盖高、强链接、低功耗等优点,非常适合于作为抄表业务模型的通信接入方式。[1]

1 系统部署设计

本项目采用STM32L431RC芯片处理并将霍尔水流量传感器产生的脉冲数据转换为水量数据,使用NB-IOT模组将水量数据输送至华为云平台,将云平台的数据通过定时程序拉取至自建MySQL数据库,以备后续进行后端数据处理及其前端访问调用。

采用轻量级SSM(Spring+SpringMVC+Mybatis)Java框架编写后端。管理人员可登录智能水表管理系统对用水情况进行查询并可以打印用水清单,用户可以通过安卓APP查询用水情况并进行充值操作。

图1 系统部署图

本项目共有四大功能模块,模块间配合如图1所示:

(1)主控芯片控制霍尔水流量传感器进行数据定时采集。

(2)采用LwM2M数据封装方式将传感数据通过NB-IOT模组发送并传输到华为云平台。

(3)使用正确的appId和secret,调用鉴权接 口,获取鉴权token,实现第三方系统在访问开放API之前的认证。编写LiteNaDemo程序将华为平台数据读出并放入自建MySQL数据库平台。

(3)使用Spring+SpringMVC+Mybatis框架开发服务器程序,前端人员可以通过此系统查询用户用水情况。

(4)采用JavaWeb、安卓、微信小程序等多前端平台展示水量及其缴费情况数据。

2 终端设计方案

2.1 云智能水表硬件方案

此次设计的云智能水表系统运用微控制器STM32L431RC来作为主控核心,芯片具有低功耗的特点。该芯片的定时器/计数器功能可以采集霍尔水流量传感器在正确的进水方向进水时产生的脉冲数,并根据传感器的标准转化为水量数据。用户定时执行程序,通过BC95 Nb-Iot通信模组向华为远程实验室平台传送数据,程序设定每月执行一次。

2.2 智能水表的硬件组成

智能水表:由控制器、流量传感器、光敏传感器、显示单元、通信模组、电源单元组成。

控制器:采用ST公司的STM32L431RC微控制器,可以提供良好的系统扩展性能并满足低功耗需求。

流量传感器:采用YF-S201型号霍尔型液体流量传感器,每通过一升液体输出450个脉冲。

光敏传感器:选用BH1750光强度传感器,用于检测水表面板的盖子是否打开,以通知控制器电路显示单元。

显示单元:采用SSD1306驱动的128*32OLED显示模块,该模块可以满足水表体积小、功耗低的要求。

通信模组:采用移远公司的BC95-B5型NB-IOT模组,相比其它物流网通信方案,Nb-IoT的方案不仅有低功耗、低成本等优势,还能实现快速部署、快速入网等优势。

2.3 智能水表的软件流程

制器利用片内定时器/计数器记录流量脉冲,以定周期方式向云端服务器发送流量数据,采用中断的方式检测光敏传感器、控制显示单元。软件整体流程如图2所示。

图2 系统流程图

2.4 LWM2M协议栈数据封装

采集到的水量数据通过NB模组进行数据发送,数据封装的传输层协议为UDP,由于IP网络是一种尽力交付的网络,运输层上如使用UDP协议无法保证数据的可靠性。在此基础上使用基于REST构架的CoAP协议,CoAP协议支持可靠传输,可实现数据重传,块传输及非长连接通信,适用于低功耗物联网场景。[6]

基于NB-IOT的LWM2M协议和CoAP协议实现用户设备与云端的通信,其中LWM2M协议为应用层协议,CoAP协议为传输层协议。

LWM2M是OMA组织制定的轻量化的M2M协议,通过三个逻辑实体,4个通信接口(设备注册,引导程序,设备管理和服务实现,信息上报)。[3]COAP服务器端和COAP客户端通过四种资源调用方式进行服务器和客户端的互操作,分别为是GET ,POST,PUT,DELETE,获取数据可采用JSON格式。

图3 LwM2M协议栈

3 后端服务器设计方案

3.1 平台数据的获取

LiteNaDemo程序拉取华为云平台数据,使用HTTP GET方法将获取到JSON格式数据进行格式化处理,存入设计好的数据库中为后台系统使用。

通过给出App ID及密钥获取华为云平台Token,连接成功后就可以获取JSON格式数据。

对获取的数据进行处理,存入数据库中为后台系统使用。用户定时执行程序,用户向华为远程实

验室平台获取数据,程序设定每月一号执行一次。

3.2 服务器端框架设计

用户将请求发送给对应的Tomcat服务器,服务器主要通过springMVC的前端控制器和mybatis请求需要的数据。之后数据库将数据返回到服务器,服务器中前端控制器的handler处理器会返回model and view。最后在服务器返回视图时Spring容器中的视图解析器对model and view进行视图渲染,浏览器最终将内容呈现在用户界面。[5]

3.3 功能模块设计

用户管理模块中,每增加一个智能水表用户时,自来水公司的管理人员就可以增加新的用户,当然,也可以对原来的用户进行修改,删除操作。

水表管理部分展示所有用户的每月用水量信息,可以进行查询,也可以导出到电子表格,方便管理人员对导出来的每户用水量信息进行打印。

缴费管理部分,自来水公司的管理员可以在后台查看每个用户的缴费记录,同时也可以帮用户现场缴费。

公告管理部分,系统管理员可以通过在后台发布公告,然后就会显示在首页,首页中显示的都是最新的公告。

4 多前端设计

多前端Vue库使用HttpsGet、HttpsPost方法请求服务器程序访问数据库,并将返回结果展示在安卓原生、H5APP、及WAP微站。

北向提供的API 是平台与Application之间的https接口,使用安全传输协议TLS1.1/1.2进行加密传输。App程序使用HttpPost方法请求服务器程序访问数据库,并将返回结果展示在及其Web前端页面。表1为几个HttpPost方法API接口功能描述。

表1 API接口描述

5 结论

笔者介绍一款云智能水表开发设计方案,拥有智能硬件水表终端,云服务器,前端Web服务系统及其安卓APP。本套系统从物联网生态链角度解决日益突出的入户抄表难、抄表工作量大的问题,方便了居民和自来水公司对每月用水量的统计与分析。通信协议上采用基于REST架构及其CoAP协议,在资源受限的嵌入式设备上很好适应了应用场景。

猜你喜欢

智能水表模组华为
移动支付近场通信智能水表系统探究
浅析智能水表对用水计量检测装置的性能影响
现在的余华为谁写作?
智能水表的计量特性与应用现状分析
上海为独居老人安装能报警的智能水表
赛力斯华为智选SF5
华为没有成功,只是在成长
光学薄膜技术及在背光模组中的应用研究
华为
高速公路表贴透镜模组设计浅谈