时间:2024-05-04
刘玉洁,李汉荣,陈锦
(珠海城市职业技术学院,广东珠海,519090)
水表是城市供水企业中使用最广、数量最多的计量仪表。长时间以来,水务公司对水表用户抄表采用传统的人工抄表方式,不仅费时费力,而且不能及时准确更新用户的用水情况[1-2]。
因此,采用智能远传水表是城市现代化发展的必然趋势。根据传输方式,远传技术可分为有线远传和无线远传。有线远传需要铺设长距离的通信线,容易造成施工上的不便和困难。而无线远程方式只需要在原有的仪表上技能型改造即可。无线技术如WIFI、蓝牙、Zigbee、UWB 等,这些技术各有优缺点,但最突出的矛盾在于低功耗和远距离传输之间,两者难以同时兼顾。作为一种5G 时代新兴的物联网通信技术低功耗广域网LPWAN,其具备容量大、覆盖范围广、穿透力强、成本低廉等优点,虽然数据传送速率较低,但已经可以满足如智能抄表等小数据定期上报的应用场景。目前主流的LPWAN 技术又可分为工作在非授权频段的LoRa 和授权频段NB-IoT 的两类技术。本项目主要研究NB-IoT 技术在智能水表中的具体应用。
本项目系统总体框图设计如图1 所示,其中终端硬件部分主要由主控模块STM32、水流量监测模块、阀门控制模块和NB-IoT 通信模块组成。终端采用NB-IoT 技术对智能水表采集的水流量数据进行远距离传输到与中移物联OneNET 云平台。云平台可实时监测异常数据,帮助水务公司实现数字化、精准化、智能化管理。本设计最大的优点在于低功耗设计,首先体现在各个模块芯片的选择都是低功耗低成本的器件,然后合理优化系统的工作流程,在软件设计中采用NB 模块断电和唤醒的工作机制。当系统需要用到NB 模块时才为其供电,其他时刻处于断电状态,有效地降低了系统功耗[3]。
图1 系统总体框图
改造传统水表,在水表内部安装磁铁块和霍尼韦尔传感器SL351LT。SL351LT 工作原理和灵敏度同传统的干簧管,当磁铁靠近SL351LT 时,SL351LT 内部簧片吸合;当磁铁离开SL351LT 时,SL351LT 内部簧片断开,从而输出计量脉冲。但其外形更小巧、运行更持久、性能更可靠,且电流消耗低于500 毫微安[4]。智能水表中当水流带动叶轮转动,水表指针转盘旋转一周,磁铁经过SL351LT 一次,便产生一个脉冲,最终根据脉冲的数量得用水量[5]。为提高计量的精确度,本设计采用了双SL351LT 采样,如图2 所示。两个SL351LT 发出两个脉冲信号输入STM32 主控芯片,当两个输入端依次有脉冲输入时,水表判断为一次有效采用,完成一次计数。当只闭合一个SL351LT 时,水表不计量,从而解决水表因抖动而误发信号的问题。
图2 水流量监测电路原理图
主控模块的主要进行水流量数据采集以及数据传输。由于系统较为简单,主控芯片选用了意法半导体有限公司的STM32 L051C8T6,该微控制器基于Cortex-M0 内核。M0 内核的应用场景大多是高性能、低成本、低功耗的嵌入式应用。STM32L051C8T6 拥有的丰富资源,几乎不需要扩展太多的外围电路就能满足本设计要求。STM32L051C8T6 主要特点如下[6]:
(1)超低功耗工作平台
工作电压为1.65~3.6V。具有4 种低功耗工作状态,2 种唤醒状态。在3.3V 供电下,正常工作状态的消耗仅为88μA/MHz,而待机状态的电流可以低至0.27μA。
(2)存储空间
它内置64K 字节的Flash,8K 字节的SRAM,2K 字节的EEPROM,其中Flash 和EEPROM 都应用了错误检查和纠正技术。另外还有20byte 的备用寄存器,保证了程序的高效运行。
(3)丰富的模拟外设
12 位16 通道的的ADC,有9 个定时器,其中有2 个16 位的超低功耗定时器,有I2C、SPI、USART 等通信标准接口。
NB-IoT 通信模块主要实现水表终端和物联网云平台的信息交互,本系统通信模块电路图如图3 所示,由NB-IoT模块、SIM 卡座、电源电路、串口电平转换电话和复位电路组成[7]。NB-IoT 通信模块通过串口与主控模块实现数据交换,可将通信模块的RXD、TXD 连接到STM32L051C8T6的串口对应管脚进行串口通信。
图3 NB—IoT 通信模块电路原理图
其中NB-IoT 模块选用上海移远公司基于联发科MT2625 芯片平台研发的BC26,它可同时支持全球频段,且具有超小体积,尺寸仅为17.7×15.8×2.0mm,支持2.1V~3.63V 的低供电电压,采用易于焊接的LCC 封装,能最大限度满足智能水表这一类低功耗紧凑型终端设备的需求。BC26 兼容移远通信GSM/GPRS 系列的M26 模组,方便现有的2G 客户快速、灵活地切换至NB-IoT 网络。同时BC26 还提供包括UART、SPI、ADC 等丰富的外部接口,以及TCP、CoAP、MQTT 等网络协议,具备OpenCPU 功能,可接入OneNET、EasyIoT、OceanConnect 等物联网云平台[8]。
本系统中的SIM 卡接口电路选用8-pin 的MINISIM 卡座,电路原理图如图4 所示。电源、数据、时钟、复位信号分别对的是SIM_VCC、SIM_DATA、SIM_CLK、SIM_RST,均由BC26 模块提供。天线采用外接方式,驻波比低于2,天线增益为1dB。
图4 SIM 卡接口电路原理图
为了实现通过云平台或者智能终端应用对水流开关进行远程控制,本表在传统水表基础上进行改造,增加电机驱动的水阀开关。当云平台或者智能终端应用发送控制指令后,BC26 模块接收相应的下行报文,再发送给主控模块,STM32L051C8T6 芯片控制电机的转动来实现水阀的开关。本项目中电机驱动芯片采用DRV8832DGV。该芯片能实现电动机阀门的安全启动,以及设备的过压、限流、过温保护,还可通过故障输出引脚向控制器发出故障信号[9]。它的正常工作电压为2.75~6V,输出电流可达1A。为确保电池有更长的使用寿命并保证电机转速的恒定,DRV8832 内部提供PWM 电压控制模式。本系统的阀门电机电源线与DRV8832 的OUT1 和OUT2 端口相连,而DRV8832 的输入端则连接STM32L051C8T6 的PB6 和PB5,从而实现GPIO 通过控制电平的高低来实现电机的正反转。
由于水表量多,且分布广泛,为方便用户,减少勤更换电池麻烦。本系统采用大容量锂电池供电方式,电池型号为武汉瀚兴日月ER26500M,供电电压为3.6V,容量为9000mAh。因为STM32L051C8T6 芯片具有出色的电源管理和功耗控制功能,可以使智能水表具有很低的休眠功耗。采用一节ER26500 可以使智能水表工作达1 年以上。同时由于没有设计再充电电路,锂电池使用到一定时间,将无法正常为系统提供电能。为解决制约智能水表电源工作的瓶颈问题,本设计设置使用超级电容作为备用电源,同时在软件设计中实现电池电量监测,从而有效减少无法计费、无法可靠关闭水阀等情况出现。
图5 电源电路原理图
软件主程序流程图如图6 所示。整个系统硬件设计采用低功耗设计,MCU 采用低功耗配置,平时进入低功耗模式,通过RTC 每50ms 唤醒一次,采集水表脉冲数据,转换成水表读数存储在MCU 的EEPROM 中,MCU 打开内部实时时钟,与设定的定时上传时间进行匹配,若时间一致,立即打开NB 模块供电,开机,NB 模块初始化配置,MCU 实时时钟与基站时钟进行校时,获取当前NB 模块的信号值,供电电池电压,当前水表累计读数,打包所需水表参数成JSON 格式,连接ONENET 平台,上传打包好的数据,上传完成后等待ONENET 平台回复应答指令,整个上传过程结束。关闭外设进入低功耗模式,等待下次上传定时时间。
图6 主程序流程图
当智能水表上电复位后,主控模块STM32L051C8T6进行系统初始化,包括初始化时钟、GPIO、串口,读取主控芯片EEPROM 中的水表配置参数,如当前水表脉冲数等。同时将PB13、PB14 设置为输入引脚,用于采集水流量计量脉冲。当未到达采样脉冲数据或者上传数据时间时,系统进入低功耗睡眠模式。
当达到设定上传时间时,NB 模块启动工作。第一步需要成功接入NB 网络,BC26 模块入网的对接流程见图7。BC26 模组上电复位后,通过执行AT 指令,即可完成水表终端与NB-IoT 网络对接。首先通过AT 指令判断MCU 能否与NB 模块进行正常通信,如果可以则配置NB 模块,包括设置通信波特率,通信频段,打开射频功能,然后查询SIM卡卡号,获取当前NB 网络信号值,信号正常的情况下就可以通过BC26 附着到NB 网络。
图7 BC26 模块入网的对接流程
主控芯片STM32L051C8T6 将采集的水流量数据解析后通过串口发送给BC26,BC26 通过COAP(Constrained Application Protocol)协议将水流量数据传输至物联网云平台。本系统使用的是云平台为中移物联的OneNET。OneNET 是中国移动推出的定位为PaaS 服务的物联网开放云平台,平台提供了丰富的API,能帮助用户通过简单的调用,使得终端设备快速接入。智能水表属于NB-IoT 领域下的物联网应用,要实现水表终端与OneNET 平台通信,应用层需采用LwM2M(Lighetweight Machine-To-Machine)协议,它是一种基于UDP 协议之上的具有重传机制的轻量级M2M 协议,聚焦于低功耗广覆盖物联网应用。LwM2M协议可通过引导接口、客户端注册接口、客户管理与服务实现接口、信息上报接口来实现数据的传输[10]。BC26 模块通过AT 指令采用LwM2M 协议接入OneNET 云平台流程如图8 所示。
图8 BC26 接入云平台流程
智能水表外观如图9 所示。水表电源端与万用表串联,测量水表终端待机状态以及工作状态下的电流。测得待机状态下的电流为7.89μA,如图10 所示;系统处于工作状态下的工作电流为30mA;假设水表每个月采集并发送数据10次,每次采集数据到发送数据需要的时间在2s 以内。因此,采用9000mAh 左右的电池并考虑20%的功率损耗,在理论上可以使用一年,实现了低功耗系统设计要求。
图9 智能水表外观
图10 智能水表待机电流
系统设置每隔15 分钟上传水流量数据至云平台一次。服务器通过API 接口将水流量数据推送到OneNET 云平台,云平台以折现的方式展示实时用水情况,如图11 所示。本系统实现了远程监控功能,用户可以在前端网页进行实时监控,且历史数据不会丢失。此外,在OneNET 云平台还可以添加报警触发器,当智能水表上传到云平台的水流量参数高于或低于设定阈值会进行报警。
图11 OneNET 云平台监控数据
为了适应智慧城市智能抄表管理的需求,本文设计开发了一套基于STM32L051C8T6 和NB-IoT 通信模块BC26 的智能远传水表。该系统利用嵌入式和窄带物联网技术,可以通过PC 等终端远程采集水表水流量数据,同时可及时获取异常报警信息,方便水务公司实现数字化、精准化、智能化管理。测试结果表明,该智能水表实现了远程低功耗数据采集,运行稳定,达到了预期设计目标。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!