1. 引言
在城市扩张持续推进的背景下,天然气资源于现有能源结构中的重要性正逐步上升。渐渐地,无论居民生活还是生产制造环节,对此类清洁能源需求日益增加,已然形成难以替代的依赖状态[1] [2]。燃气用量如何被准确核算,以及稳定可靠的供给怎么得到保障,这两点目前看已成为整个城镇燃气供应体系正常运转的重要支撑,并且实际情况表明,该议题与群众切身利益及区域经济发展息息相关。在用于流量测定的各类仪器设备之中,燃气表无疑扮演着重心角色,其检测数值是否准确,直接牵动了企业收入状况,还关联到终端用户的基本权益。从真实使用场景来看,早期机械气量监控装置遭遇着不少尴尬问题。其中一件颇具代表性的情况便是气体本身属性容易随外界温区和压力变化大幅波动,使得单纯以传统方式采集流速数据时,每每冒出数字偏移困扰。这些貌似细小的误差,潜移默化地产生影响,不仅让结算过程变得复杂,也时常引发供需双方矛盾摩擦[3] [4]。此外,多出来的信息安全隐患及运行风险,有些时候甚至也暗藏其中。由此可见,一个能够根据实时环境参数进行补偿修正、实现信息读数更加精准的新型测量理念,就成了当下燃气科技领域必须优先攻关的问题[5]。基于上述分析,本文提出基于温度压力补偿的燃气表流量监测补偿及预警控制系统设计。该系统以STM32单片机作为处理器,搭配通过温度传感器和压力传感器检测当前环境温度和压力,利用红外对射光电传感器模拟流量,通过Wi-Fi模块实现手机与单片机的连接并显示相关数据,为燃气流量信息互通及管理智慧升级提供连续保障作用。
2. 控制系统总体设计
本文通过温度传感器和压力传感器检测当前环境温度和压力,利用红外对射光电传感器模拟流量。单片机控制OLED液晶显示屏显示当前检测到的温度、压力、设定值,同时通过按键设置流量值的报警上限,当检测到的流量值超过上限值时,单片机控制蜂鸣器进行报警,整体设计框图如图1所示[6] [7]。系统主要的功能包括以下几点:a) OLED实时显示当前温度值、压力值、流量值及流量阈值;b) 通过温度 + 压力补偿的方式修正流量值;c) 通过按键设置流量阈值;d) 流量超过阈值后蜂鸣器报警;e) 上位机控制,将温度、压力、流量显示到手机上。
Figure 1. Overall block diagram of control system
图1. 控制系统总体框图
3. 硬件模块设计
本文所设计系统主要由单片机系统、液晶显示、温度压力采集模块、液体流量采集模块、通讯模块[8] [9]。采用单片机作为主控芯片,将采集到的温度、压力和模拟流量显示到OLED液晶显示屏上,并基于采集到的温度和压力对流量进行补偿,同时将采集到的温度、压力和模拟流量传输至上位机。
3.1. 单片机系统电路设计
本文单片机模块选择STM32单片机,具体型号为STM32F103C8T6,如图2所示。STM32F103C8T6最小系统电路通常包括启动配置、晶振电路、复位电路及下载端口[10]。a) 晶振电路:采用8 MHz的外部高速晶振,通过倍频和分频后作为单片机的时钟源。b) 复位电路:单片机的NRST引脚只需输入低电平即可复位,故常态下NRST引脚接高电平,按下按钮后接地,单片机复位,松开按钮后,电容C2起到上电复位的作用。c) 下载端口:采用SWD接线方式,除电源线外还有两根信号线分别为:SWCLK(串行时钟线)和SWDIO(串行数据输入输出线)。
Figure 2. Single chip microcontroller module
图2. 单片机模块
Figure 3. Design of LCD display circuit
图3. 液晶显示电路设计
3.2. 液晶显示电路设计
OLED显示屏[11]通过I2C协议与单片机实现通讯,显示区域为128*64的点阵,有电流流过时,每个点均可独立发光,能够显示图案、字母和数字等,数据传输格式为:起始信号–从机地址–写数据模式–应答–数据传输–结束信号。一般情况下SSD1306作为从机的地址为0x79。OLED共有4个引脚,其中VCC为电源正极,GND为接地线,SCL为I2C时钟线,接至单片机,负责传输时钟信号,SDA为I2C数据线,其引脚图如图3所示。
3.3. 温度检测模块
温度检测模块由DS18B20温度传感器组成[12],通过DS18B20温度传感器来测量当前环境的温度,可通过改变测量场地如阳光处,树阴处或通过空调改变当前环境温度,来模拟不同温度下燃气的状态,其电气原理图如图4所示。
Figure 4. Schematic diagram of temperature sensor
图4. 温度传感器原理图
3.4. 压力检测模块
压力检测模块由薄膜压力传感器组成,通过薄膜压力传感器来模拟燃气的气体压力,使用时,可通过按压薄膜区域,来模拟不同压力下燃气的状态。
压力检测模块在薄膜压力传感器未受压力或者压力小于启动压力时,DO口输出高电平,当压力超过设定阈值时,模块DO输出低电平。薄膜压力传感器的电气原理图如图5所示。
Figure 5. Schematic diagram of thin film pressure sensor
图5. 薄膜压力传感器原理图
3.5. 液体流量采集模块
本文选用红外对射光电传感器模拟流量实现液体流量采集模块,其电路设计如图6所示[13]。该模块由3个引脚构成,除了电源的正负极引脚之外,还包括了信号发射或接收引脚,与单片机的PA7口连接。
3.6. 通讯模块
本文通讯模块选择芯片ESP8266,集成Wi-Fi功能和微控制器能力于一身,常用于物联网(IoT)项目中。它的低功耗特性使得它可以长时间运行在电池供电下,广泛应用于智能家居、智能门锁、无线传感器网络等应用中。ESP8266引脚具体作用如表1所示。
Figure 6. Simulated liquid flow acquisition module
图6. 模拟的液体流量采集模块
Table 1. ESP8266 Pin Introduction
表1. ESP8266引脚介绍
名称 |
注释 |
GND |
接地 |
IO2 |
通用IO内部已上拉 |
IO0 |
工作模式选择 |
RXD |
串口接收 |
3V3 |
电源正极3.3 V |
RST |
复位 |
EN |
使能 |
TX |
串口发送 |
ESP8266原理图如图7所示。
Figure 7. Schematic diagram of ESP8266
图7. ESP8266原理图
4. 软件设计
4.1. 主程序设计
在硬件设计调试完成后,接下来需要进行单片机与外设传感器的软件设计。首先进行硬件初始化,随后各个模块开始工作,实时温度,压力,流量值的检测并根据需要进行报警。启动流程如下:首先配置STM32的引脚,温度传感器测量当前的温度,压力传感器检测当前的压力,光电传感器检测当前的槽位值,OLED液晶屏显示当前的各项参数信息。通过按键设置流量值的报警上限。当监测值超过设定的报警上限时,单片机会驱动三极管控制蜂鸣器发出报警。整个主流程如图8所示。
Figure 8. Main flow chart
图8. 主流程图
4.2. OLED显示模块设计
OLED显示屏通过I2C协议与单片机实现通讯,有电流流过时,每个点均可独立发光,能够显示图案、字母和数字等。其数据传输格式为:起始信号–从机地址–模式–应答–数据传输–结束信号。一般情况下SSD1306作为从机的地址为0x79。OLED显示流程图如图9所示。
Figure 9. The flowchart of the display module
图9. 显示模块流程图
4.3. 按键模块设计
本次设计的按键电路功能主要用于设置流量的报警上限值。单片机的按键电路包3个引脚,其中相同的一侧连接在一起,2个按键通过并联连接,只需将相同引脚连接即可。按键的工作原理是检测低电平信号,在主程序中会循环进行检测,当按键的低电平信号被检测到时,单片机会触发中断并进入按键处理子程序。2个按键分别用于加值和减值操作,在不同的页面中执行不同的功能。每个功能由2个独立的函数实现,且需要加入延时操作,以防止误操作。
4.4. 报警模块设计
主函数执行后,系统持续监测当前参数是否在设定范围内。如果参数超出范围,蜂鸣器将发出报警提示。报警电路采用蜂鸣器报警电路,蜂鸣器的工作原理与家用电器中的喇叭类似,通常需要较大的工作电流,而TTL电路无法直接驱动蜂鸣器。因此,需要添加一个电流放大电路来提供足够的电流驱动蜂鸣器。由于单片机的一个引脚无法直接驱动蜂鸣器发声,故使用三极管来增加电流。当三极管导通时,蜂鸣器报警。
4.5. 通讯模块设计
通过ESP8266,将单片机与手机相连,实现单片机与上位机的直接通信,上位机界面通过巴法云构建。巴法云是一个专注于轻量级物联网(I0T)开发的云平台,主要面向智能家居、远程控制、数据监测等场景,提供MQTT协议支持,帮助开发者快速实现设备与云端的数据交互。通讯模块流程图如图10所示。
Figure 10. Communication module flowchart
图10. 通讯模块流程图
5. 实物测试及分析
5.1. 测试方案
本文控制系统的信号检测与数据传送部分,会直接将传感器返回值直接显示在OLED显示屏上,能够直观地反映系统的运行情况,测试按键是否能够正常设置流量的阈值,并测试当前流量超过阈值时,蜂鸣器是否正常报警。
5.2. 功能测试
基于温度压力补偿的燃气表流量监测补偿及预警控制系统设计完成后实物如图11所示。其中包括STM32F103C8T6单片机,DS18B20温度传感器,薄膜压力传感器,红外对射传感器,OLED显示屏,Wi-Fi模块ESP8266,蜂鸣报警器。
给设备插入5V电源,设备刷新启动,屏幕显示联网中,Wi-Fi模块发送连接命令,将手机热点设置为指定的账号和密码,建立连接。联网成功后,显示屏第一行显示温度值,第二行显示压力值,第三行显示流量值,第四行显示阈值。在该系统的测试中,首先对温度采集模块进行了验证,将DS18B20温度连接至单片机并上传相应代码,通过串口监视器实时查看温度值。测试过程中,传感器被放置于不同环境中,如暖气附近和空调下,以检测其对环境变化的响应。测试结果表明,传感器能够准确地采集并显示温度数据,并随环境条件的变化做出相应的变化。压力采集模块使用了薄膜压力传感器,将该传感器与单片机相连,上传程序并通过显示屏查看压力值。为了验证传感器的敏感性,用手按压传感器薄膜。
Figure 11. Physical picture of the system
图11. 系统实物图
Figure 12. Test result chart
图12. 测试结果图
测试结果显示,按压力度越大时,压力传感器测量的压力值越大,即系统能够实时反映压力的变化。
流量采集模块的测试使用了光电传感器,通过金属物品在传感器发射区间和接受区间以不同的速度滑动,得到不同的流量值,速度越快,流量数值越大。通过液晶显示屏与单片机相连,实时显示流量。经过测试,OLED液晶显示屏能够准确、清晰地显示温度、压力和流量的数据,并且数据更新流畅,能够实时反映当前环境状况。测试结果如下图12所示。
在蜂鸣器报警模块的测试中,设置了流量的报警阈值,确保当流量超标时蜂鸣器能够及时发出报警声。当流量超标时,蜂鸣器能够正常工作,持续发出报警声,直到流量值小于阈值。在Wi-Fi模块的测试中,可成功通过Wi-Fi模块实现手机与单片机的连接并显示相关数据。在温度,压力,流量改变时,在上位机端可以成功显示温度,压力,流量值。上位机界面如下图13所示。
Figure 13. Upper computer interface
图13. 上位机界面
由上述系统实物测试结果可得:本文提出基于温度压力补偿的燃气表流量监测补偿及预警控制系统设计,以STM32单片机作为处理器,搭配通过温度传感器和压力传感器检测当前环境温度和压力,利用红外对射光电传感器模拟流量,通过Wi-Fi模块实现手机与单片机的连接,且在温度,压力,流量改变时,在上位机端可以成功显示温度,压力,流量值,从而为燃气表流量监测补偿及预警控制提供实现数据支撑和硬件基础。
6. 结论
传统燃气表在流量监测时,易受温度、压力等环境因素干扰,致使计量出现偏差,这给燃气供应的安全性和经济效益带来了不利影响。基于此,本文提出基于温度压力补偿的燃气表流量监测补偿及预警控制系统设计。该系统主要由单片机系统、液晶显示、温度压力采集模块、液体流量采集模块、通讯模块。采用单片机作为主控芯片,将采集到的温度、压力和模拟流量显示到OLED液晶显示屏上,并基于采集到的温度和压力对流量进行补偿,同时将采集到的温度、压力和模拟流量传输至上位机。软硬件设计完成后通过统一调试,若有故障则需修改后继续调试,并通过实物测试后得出:本文所述系统功能正常方案可行较高,在温度,压力,流量改变时,在上位机端可以成功显示温度,压力,流量值,从而为燃气表流量监测补偿及预警控制提供实现数据支撑和硬件基础。
基金项目
江苏省市场监督管理局科技计划项目(KJ2025083)。