基于NB-IoT智能水表抄表系统设计与实现*
2019-11-18吴正平张兆蒙马占稳
吴正平, 张兆蒙, 李 东, 颜 华, 尹 凡, 马占稳
(1.三峡大学 电气与新能源学院,湖北 宜昌 443002;2.深圳市 兴源智能仪表股份有限公司,广东 深圳 518000)
0 引 言
目前大部分的供水公司采用人工抄表和智能卡表模式。人工抄表模式存在信息采集周期长、错抄、漏抄、估抄的现象,影响供水公司的经济效益和社会形象[1]。智能卡表模式,IC卡预付费方式虽然方便公司管理收费,但存在生产IC卡增加成本且智能卡表无法联网不能反馈用户用水信息,供水公司难以把握供水的调度和均衡[2],为此无线抄表研究被广大研究者所关注。对于传统的无线抄表技术研究最为广泛的是ZigBee[2~4],Wi-Fi[5,6],GPRS[7,8]技术。对于ZigBee、Wi-Fi技术,覆盖范围小、传输距离短、需要基站多,不适合进行远程抄表[2,8]。GPRS是专为手机设计的授权频段网络,虽然传输距离远,可以有效避免外界信号的干扰,但是它的功耗过大、接入量少,当水表处在地下室或者位置较深的地方,GPRS信号薄弱,无法保证通信的可靠性[1]。而窄带物联网(narrow-band Internet of thing,NB-IoT)是专为满足广域、低速率的物联网需求设计的无线通信技术,相比于上述的无线通信技术它更具有信号强、覆盖广、大连接、功耗低和成本低等优点。如果水表处在信号不好的地方,同样可以保证通信的可靠性[2,9]。因此,在无线抄表领域,NB-IoT将会成为未来主要发展趋势。
本文采用NB-IoT无线通信技术对智能水表实现远程抄表,通过BC95模块把采集水表数据远程传输到应用管理系统 ,便于供水公司对水表数据进行实时监控和智能管理。
1 系统总体框架结构设计
智能水表抄表系统以NB-IoT技术为基础,该系统主要包括智能水表(成熟产品,无需设计)、集中器、中国电信物联网平台和应用管理平台。集中器完成水表数据的采集、数据向云平台发送、接收从云平台下发的命令等功能。中国电信物联网平台作为桥梁,连接起应用管理系统和集中器,实现集中器采集数据的上传和应用管理系统命令的下发。应用管理平台通过中国电信物联网云平台和集中器,实现智能水表的远程控制与数据采集。集中器平时处于低功耗的待机状态,当需要采集和上报数据时,被自动唤醒,待其完成工作之后,又进入待机状态。
2 系统硬件设计
系统硬件总体结构如图1所示。STM32主控制器[10]通过其引脚与各个模块进行连接,使各模块协调工作,实现系统功能。显示模块用于显示NB-IoT集中器所处环境下的温湿度、时间参数、电量、BC95模块的信号强度等信息。BC95模块主要实现集中器和云平台之间的通信,进而实现应用管理平台的数据采集和命令下发。报警模块用于实时监测智能水表是否被偷水或者漏水,如有偷水或漏水,报警模块进行报警,并向应用管理平台上传报警信号,以便维修和处理。存储模块用于存储采集水表的数据信息。温湿度传感器模块主要检测集中器所处环境温湿度,防止集中器处在恶劣环境下而损坏。电源模块分别为STM32,BC95、数据采集等模块分片提供电压,以保证模块正常工作和系统的低功耗运行。
图1 硬件结构
2.1 STM32主控制器模块
集中器选用STM32F103RCT6A单片机作为主控芯片,其外部设有晶振电路、复位电路以及电源电路,组成最小的工作系统,确保集中器的主控芯片能正常工作。
2.2 采集模块
本系统使用RS—485通信协议的智能水表。集中器上设置1~4组RS—485接口,通过RS—485接口与一组或者多组智能水表进行通信,实现水表数据的采集。
2.3 BC95模块
BC95模块是一种高性能、低功耗的NB-IoT无线通信模块,华为海思产品。相比与其它的无线通信模块,BC95具有覆盖更强、大连接、功耗低和成本低等优点[9]。BC95模块工作电路主要包括:电源模块、复位模块、串口通信模块、天线模块、SIM(subscriber identity module)卡接口模块[11]。本系统采用BC95模块与主控制器的PA10与PA9相连接,实现数据的发送与接收,通信电路如图2所示。
图2 BC95模块通信电路
2.4 电源模块
电源模块供电电路,通过LM2575降压电源开关芯片把12 V直流电分别降压为5,3.6,3.3 V,为RS—485,BC95模块、STM32主控制器以及其它功能模块提供额定工作电压。单片机根据需要控制是否对RS485模块、BC95模块供电,实现系统低功耗运行。
3 系统软件设计
系统软件设计是在Keil5平台下利用C语言进行开发的,主要包括BC95通信程序和主程序设计。
3.1 BC95通信设计
BC95模块入网通信流程如图3所示。
图3 BC95模块入网通信流程
3.2 主程序设计
集中器主程序由采集数据、发送数据、数据接收、定时、低功耗运行等主要功能组成。
系统通电以后,首先进行初始化工作,初始化工作完成以后,STM32主控制器进入待机模式,待采集时间到,主控制器被唤醒,把采集的表编号、表读数、系统时间存储到FLASH中。如果此时距设置的上传时间点小于120 s,主控制器待上传时间到,把FLASH中的水表数据通过BC95模块实现上传,若距设置的上传时间点大于120 s,主控制器进入待机模式,待上传时间到,主控制器被唤醒,把FLASH中的水表数据通过BC95模块实现上传。在上传水表数据的同时,主控制器把集中器运行状态数据如系统时间、温度、湿度、电池电压、控制器电压、信号强度等信息通过BC95模块一起上传,从而可以及时掌握集中器的运行状态。待集中器把运行状态数据和水表数据上传完成以后,主控制器上传一条指令到云平台,云平台收到数据会采取订阅的方式通知应用管理平台,询问是否有下发命令:如果有,命令下发到平台,然后立即下发到集中器,主控制器进行处理,如果没有,主控制器进入待机模式,集中器实现低功耗运行。
4 系统测试
设计了完整的硬件和软件系统,并对系统进行了测试。系统测试首先通过应用管理平台下发命令,设置集中器的工作参数。集中器按照设定的工作参数工作。当工作参数中设置的采集时间到时,集中自动唤醒,进行数据采集;当工作参数中设置的上传时间到时,集中自动唤醒,将采集到的数据通过BC95模块上传到云平台, 最后应用管理平台在通过中国电信物联网平台提供的应用IP和端口采取订阅的方式把云平台解析数据提取出来,可以在应用管理平台监视采集到的数据,集中器的运行状态等(如图4所示)。与此同时,应用管理平台,把采集到的水表数据存储到数据库中,方便供水公司实现智能管理。
图4 应用管理平台界面
5 结 论
对系统实测结果表明:基于NB-IoT智能水表抄表系统,能够稳定地将采集的水表数据和集中器的温湿度等状态信息传输到应用管理系统,实现远距离传输,在集中器位于楼栋信号不好的位置,系统也能保证通信的稳定性。能够更好地解决传统水表抄表系统的传输距离短、覆盖范围小、穿透力不强、数据传输稳定性差等问题,具有很强的实用性。一旦该系统运用到供水行业,能实现供水公司对水表数据实时监控以及智能化管理。