APP下载

基于NB-IoT的供热温度监测系统设计

2023-11-22王如龙

物联网技术 2023年11期
关键词:服务程序温湿度供热

薛 峰,李 娟,王如龙

(1.北京信息科技大学 自动化学院,北京 100192;2.中热智能(北京)工程技术有限公司,北京 100085)

0 引 言

随着我国城市建设的快速发展,集中供热的规模更加庞大,是我国冬季主要的供暖形式之一。由于供热系统具有大惯性和大滞后等特点[1],供热不均和水力失衡等问题时常出现[2]。为解决此类问题,热力公司需要对室内供暖的实际温度进行获取,以此指导热网的自动化调度工作,调整供热策略,从而达到按需供热的重要目标[3]。

无线通信技术因具有成本低、灵活性高、适应性强和便于维护等优势,在各行业及温度监测领域得到广泛的应用[4-5]。文献[6]利用ZigBee技术进行温度传感器组网,对室内多个点位的温度进行监测。但ZigBee技术仅适用于短距离、小范围内的设备组网,信号穿墙能力弱,不适用于长距离通信。文献[7]采用近年来推出的远距离无线电(Long Range Radio,LoRa)技术设计了一种环境温湿度监测节点,可以实时监测车间内的温湿度变化,对异常情况进行报警提醒。但LoRa网络在实际使用时,除了在现场终端设备中安装LoRa射频模块外,还需根据终端设备的数量,部署相应的汇聚网关,部署难度大,成本较高[8]。文献[9]运用通用无线分组业务(General Packet Radio Service,GPRS)技术对集中供热用户住房内的温度进行监测。但GPRS设备工作电流较大,整体功耗高[10],不适合用于长期由电池供电的工作场景。窄带物联网(Narrow Band Internet of Things,NB-IoT)作为近些年发展较快的物联网无线通信技术,使用授权频段,具有低功耗、低速率和强连接等特点,与非实时、低频次的定时上报数据类业务较契合[11-12]。

因此,本文设计一种基于NB-IoT技术,采用UDP的远程供热温度监测系统,温度终端可用电池供电,按照设置的时间周期定时采集环境和设备的有关信息,并上传至云服务器;热力公司可通过电脑端浏览器打开Web页面查阅当前和历史数据,也可通过手机APP查看当前供热情况。系统对于协助热力公司掌握供热状况、提高供热质量具有实际意义。

1 系统总体设计

基于NB-IoT的供热温度监测系统总体结构如图1所示。由温度终端、移动通信网络、百度云服务器和客户端等四部分组成。温度终端作为现场设备,采集和处理室内的环境温湿度数据和设备相关信息,并通过NB-IoT网络上传至移动通信基站;移动通信基站通过UDP协议与云服务器交换数据,云服务器对数据进行解析、存储;手机APP和电脑Web浏览器可通过HTTP协议访问云服务器查看最新数据。

图1 供热温度监测系统组成

NB-IoT支持TCP、UDP、HTTP、消息队列遥测传输(Message Queuing Telemetry Transport,MQTT)、受限应用协议(Constrained Application Protocol,CoAP)等众多协议。其中,UDP协议的报文结构简单,且无需保持长连接,对流量和电量消耗少,适用于低功耗的应用场景。

2 系统硬件设计

供热温度监测系统终端的硬件总体结构如图2所示,主要由锂电池、低压差线性稳压器、主控单元、NB-IoT通信模组、温湿度传感器和电池电量检测电路等部分组成。

图2 温度终端硬件总体结构

低压差线性稳压器ME6211C33M5G-N将电池电源稳压后给各部分供电;主控单元包括主控微处理器(Micro Control Unit,MCU)及其外围电路,MCU型号为STM32L071CBT6,待机模式的消耗电流为0.85 μA,外围电路包括串行接口电路、供电插口、晶振、滤波电容、复位按钮等;NB-IoT通信模组包括模组本体及其外围电路,模组本体选用中国移动M5310-A,外围电路包括串行接口电路、SIM卡、天线和复位按钮。M5310-A支持UDP协议及其他多种通信协议,在节能模式(Power Saving Mode,PSM)状态下的运行电流低至5 μA;温湿度传感器型号为奥松AHT25,采用I2C协议进行通信,体积小,精度良好,使用1.27 mm间距的插销式接口与MCU连接。

根据电池电量和电压的曲线关系[13],设计了电池电量检测电路。利用电阻分压和ADC采样功能,估算锂电池的剩余电量。电池电量检测电路原理如图3所示。VCC为电池的供电引脚,BAT_ADC为ADC采样引脚,SWITCH引脚用来控制PMOS管Q2的通断,防止分压电阻在设备休眠期间对地产生电流,浪费电能。

图3 电池电量检测电路

3 系统软件设计

系统软件设计包括温度终端嵌入式程序、监测系统服务程序和安卓APP三部分。嵌入式程序开发工具为MDK5和STM32CubeMX,STM32CubeMX可对MCU进行初始化配置,提高开发效率;监测系统服务程序和安卓APP的开发工具分别为IntelliJ IDEA 2021.2.2和Android Studio 2021.3.1。

3.1 嵌入式程序设计

嵌入式程序主要包括终端初始化、数据收集及处理、通信配置、数据发送、休眠与唤醒。程序流程如图4所示。

图4 嵌入式程序流程

终端上电启动,MCU完成时钟、USART、GPIO、I2C、ADC转换等初始化任务,同时M5310-A完成驻网工作等初始化任务;初始化成功后,分别通过AHT25、电池电量检测电路、AT命令收集需要发送的各类数据,如环境温湿度、设备温度、信号值等,并将数据处理成字符串形式以备数据发送任务;进行通信配置任务,指定服务器地址和端口,发送UDP数据。发送完毕,M5310-A进入PSM模式,MCU启动RTC,定时5 min,进入待机模式。此时的测温周期为5 min,即MCU的待机时间。MCU待机时间到则被唤醒,随即唤醒M5310-A使其退出PSM模式,再次进行数据收发任务。M5310-A使用的AT命令见表1所列。

表1 AT命令

在数据收集和处理过程中,对于环境温湿度数据,可以重复多次读取传感器的数值并进行均值滤波处理,使数据更加准确。

3.2 监测系统服务程序设计

监测系统服务程序部署于百度云服务器内,通过9999端口与M5310-A进行通信,M5310-A通过UDP协议向云服务器的9999端口发送数据。监测系统服务程序一方面负责接收、解析、存储M5310-A发送的数据,并将历史数据以电脑端Web页面可视化呈现;另一方面向外提供接口给手机APP查询最新数据使用。监测系统服务程序整体使用Spring Boot框架进行搭建,数据的存储和查询使用持久层框架Mybatis,数据库采用MySQL,针对Web页面使用Thymeleaf和Echarts进行页面可视化效果的渲染和显示;使用Netty网络程序应用框架接收并处理M5310-A发送的UDP数据。系统服务程序结构如图5所示。

图5 系统服务程序结构

3.3 手机APP设计

手机APP采用原生开发方式,基于Java语言编写,通过HTTP协议与百度云服务器通信,采用OkHttp网络请求框架[14]向云服务器发送GET请求,云服务器中的系统服务程序接收到GET请求后会回复一组响应数据;APP使用Gson库将获取到的HTTP响应数据解析为Java对象,最终将Java对象显示到绑定的界面控件上,完成数据显示任务。手机APP设计框图如图6所示。

图6 手机APP设计框图

4 系统测试

由于百度云服务器拥有公网IP且具有防火墙功能,因此在测试前,需打开相应端口的防火墙权限,放行Web和APP对云服务器的请求。

使用IDEA内置的MAVEN工具将服务程序打包成jar包,将jar包上传至云服务器并启动,启动服务程序界面如图7所示。

图7 启动服务程序界面

服务程序成功启动后,将终端上电,等待其以5 min的时间间隔发送10次数据。发送完毕后,使用Chrome浏览器访问云服务器的8080端口,服务器显示的Web界面如图8所示。

图8 Web界面

启动手机APP查询最近一次设备上报的数据。点击“获取最新数据”按钮,数据界面可显示最新一次上报的时间、环境温湿度、设备温度、设备电量、信号强度和测温周期等数据。数据显示界面如图9所示。观察Web界面和手机APP显示,二者的温湿度等数据一致且完整。

图9 APP数据显示界面

5 结 语

本文主要开发了一种基于NB-IoT的远程供热温度监测系统,该系统运用UDP协议进行数据传输,具有运行稳定、数据传输完整和功耗低等特点。热力公司工作人员可使用电脑端Web页面和安卓APP查看历史和最新数据,实现了物联网技术与集中供热系统的结合,为集中供热系统向智慧化、低碳化转变提供了参考。后续研究将丰富手机APP等功能。

猜你喜欢

服务程序温湿度供热
近期实施的供热国家标准
温湿度控制器在回收砂冷却系统中的应用
SylixOS系统的中断嵌套机制研究与实现
基于C#的进程守护程序的设计
基于DSP的多路温湿度监测系统
基于温湿度控制的天气预测装置
蒸发冷却温湿度独立控制空调系统的应用
PPP模式应用于城市供热项目分析
水利工程施工监理服务程序及质量控制
风电供热之路该如何走