STM32单片机物联网毕业设计毕设项目之PE燃气管道压力检测系统(源码+论文+PPT)

PE燃气管道压力检测系统

一、前言

        摘要:本文围绕 PE 燃气管道压力检测系统展开研究。PE 燃气管道作为城市燃气输送的关键基础设施,其压力状态的准确监测至关重要。该系统以 ESP32 主控芯片为核心,搭配气体压力传感器,实现对 PE 燃气管道压力的实时精确采集。气体压力传感器通过 gpio 接口与 ESP32 主控芯片相连,将采集到的压力数据快速传输至芯片进行处理。

系统集成了 OLED 显示模块,可直观地将压力数据实时展示,方便现场操作人员及时获取管道压力信息。同时,为保障在压力异常时能及时预警,系统配备了蜂鸣器报警装置,一旦压力超出正常范围,蜂鸣器立即发出警报,提醒相关人员采取措施。

借助 ESP32 主控芯片内置的 Wifi 模组,系统能够通过 WiFi 网络将压力数据稳定传输至云服务器 Thingsboard 大数据平台。该平台具备强大的数据存储、分析和可视化功能,不仅可以对大量历史压力数据进行存储,还能通过数据分析挖掘潜在的压力异常趋势,为管道维护和管理提供有力的数据支持。通过对整个系统的设计、搭建与测试,验证了其在 PE 燃气管道压力检测方面的有效性和可靠性,为保障城市燃气供应安全、稳定运行提供了一种可行的技术方案。

关键字:PE 燃气管道;压力检测;ESP32 主控芯片;气体压力传感器;Thingsboard 大数据平台;

二、系统架构设计

       PE 燃气管道压力检测系统旨在实现对燃气管道压力的精准监测与安全预警,其架构设计融合了硬件与软件多个层面,以下结合系统架构图进行详细阐述。

感知层是系统获取数据的源头,主要由气体压力传感器构成。该传感器通过 gpio 接口与 ESP32 主控芯片相连,负责实时感知 PE 燃气管道内的压力变化。其具备高精度、高灵敏度的特性,能够在复杂的燃气环境中,快速且准确地将压力信号转化为电信号,并传输至主控芯片。例如,在管道压力出现细微波动时,传感器也能及时捕捉并反馈,为后续的数据处理和分析提供可靠的原始数据。

ESP32 主控芯片处于系统架构的核心位置,宛如系统的 “大脑”。它一方面接收来自气体压力传感器的压力数据,对其进行初步处理,包括滤波去噪、数据格式转换等操作,以提高数据质量。另一方面,它负责协调系统内各模块的工作。例如,根据处理后的压力数据判断是否触发蜂鸣器报警模块;同时控制 OLED 显示模块实时展示当前管道压力数值等信息,方便现场人员直观获取数据。OLED 显示模块与 ESP32 主控芯片相连,用于直观呈现燃气管道的压力数据。它以简洁明了的界面实时显示压力数值,操作人员在现场无需复杂操作,即可快速了解管道压力状况。此外,还可根据需求显示压力单位、采集时间等辅助信息,为操作人员提供更全面的压力信息。

蜂鸣器报警模块同样由 ESP32 主控芯片控制。当主控芯片根据接收到的压力数据判断管道压力超出预设的正常范围时,会立即触发蜂鸣器报警。通过发出响亮的警报声,在第一时间提醒现场相关人员注意,以便及时采取应对措施,避免危险情况进一步恶化。

传输层主要依托 ESP32 主控芯片内置的 Wifi 模组实现数据传输功能。它负责将经过主控芯片处理后的压力数据,通过 WiFi 网络稳定传输至云服务器 Thingsboard 大数据平台。在传输过程中,采用可靠的通信协议,保障数据在复杂网络环境下也能准确、完整地送达,确保远程监控中心能够实时获取管道压力信息。

云服务器 Thingsboard 大数据平台作为系统的数据处理与存储核心,具备强大的数据存储和分析能力。它接收来自传输层的压力数据后,一方面将数据进行长期存储,形成历史压力数据记录,便于后续对管道压力变化趋势进行分析。另一方面,利用平台内置的数据分析算法,对实时和历史压力数据进行深度挖掘,实现压力异常的智能诊断和预警,为燃气管道的安全运行和维护管理提供有力的数据支持和决策依据。,系统架构图如图2-1所示。

图2-1 系统架构图

三、系统硬件设计

3.1核心控制模块

       在本次PE燃气管道压力检测系统设计中,选用 ESP32 单片机作为核心控制器,相较于经典的 51 系列单片机,其展现出诸多显著优势与先进特性。​从性能层面剖析,ESP32 单片机具备卓越的运算速度,运行效率远高于 51 单片机,为系统复杂数据处理与快速响应奠定了坚实基础。尤为突出的是,其内部集成了 2 个 AD 转换器,在针对烟雾及 CO 浓度检测等应用场景中,无需额外外接 ADC 模块进行模拟数字转换,极大简化了硬件设计架构,有效降低了系统成本与开发复杂度,提升了系统的稳定性与可靠性。​

深入探究 ESP32 单片机的特性:其起振晶部分采用 RTC 低负载方式,摒弃了传统廉价的圆柱晶振,这种设计优化了时钟精度与稳定性。该单片机拥有 48 个引脚,为丰富的外设连接提供了充足接口资源。工作频率可达 72MHZ,确保了高效的数据处理与运算能力。其内部集成 3 个普通定时器和 1 个高级定时器,可满足多样化的定时控制需求。2 个 12 位 / 16 通道的 ADC 模数转换模块,能够实现高精度的模拟信号数字化采集。采用 3.3V 稳压芯片,可稳定输出最大 300MA 电流,为系统各模块稳定供电提供保障。同时,该单片机支持 ST - LINK 和 JTAG 调试下载方式,极大便利了开发过程中的程序调试与下载,提升了开发效率。存储资源方面,配备 64kb byte FLASH 用于程序存储,20byte Sram 用于数据的快速读写,为系统程序运行与数据处理提供了可靠的存储支持 。STM32实物图如图3-1所示:

图3-1  ESP32 实物图

1、电源指示灯LED(PWR通常为红色):如果电源指示灯亮亮说明单片机正常运行,如果较暗或者闪烁,表示此单片机可能存在故障。

2、用户LED(PC13):这个功能的使用大大的方便了进行一些比较简单的功能测试,如单片机的运行状态等,方便初学者进行更好的测试。

3、单片机上采用了跳帽的方式,可以对stm32进行3种编程方式。如用户的SARM、闪存和系统的存储器。

4、为单片机的复位电路。

5、8M晶振:主要是用于设置单片机系统的频率为72MHZ。

6、32.768KHz晶振:可供内置RTC使用,避免了需要专门的时钟芯片进行定时器处理等。

在 ESP32 单片机最小系统中,BOOT 引脚对于系统启动模式的设定起着关键作用。启动过程通常是在程序下载完成后,芯片重启时,于 SWCLK 的第 4 个上升沿,BOOT 引脚的值将被锁存。用户可通过灵活配置 BOOT1 和 BOOT0 引脚的逻辑电平状态,精准选择复位后的启动模式。这一机制主要服务于程序下载与系统启动流程,理解其工作原理有助于优化开发调试过程。​

关于程序下载接口,单片机的 VSS_3.3V、GND、SWIO 及 SWCLK 引脚共同构成了程序下载通道。程序下载存在多种技术路径,本设计选用 STLINK V2 下载器进行程序烧录操作。STLINK V2 下载器作为一种硬件设备,需与单片机对应引脚进行正确电气连接,随后借助 Keil5 集成开发环境完成程序下载任务。值得注意的是,STLINK V2 并非软件工具,若开发者期望自行开展程序下载工作,可通过电商平台购置该下载器,其市场价格约为 30 元 / 个。鉴于下载程序的具体操作涉及实践细节与多种环境因素,需开发者自行探索学习,在此难以详尽指导。​

上电复位机制基于特定电路原理实现。在上电瞬间,电容开始充电,RESET 引脚会短暂出现低电平信号。该低电平的持续时长由电路中的电阻 R 与电容 C 共同决定,遵循 t = 1.1RC 这一固定计算公式。以本系统为例,当电阻取值为 10KΩ,电容为 0.1μF 时,经计算可得低电平持续时间约为 1.1ms,而系统需求的复位信号持续时长亦约为 1ms,恰好满足复位要求。​

手动复位功能则通过按键操作达成。当手动按键按下时,RESET 引脚与地之间形成电气导通,进而产生一个低电平信号,触发系统复位操作。在电路中,标识为 104 的电容为去耦电容,其主要功能是抑制电源线上的高频噪声,保障电路中各器件供电的稳定性,减少电源波动对芯片正常工作的干扰。​

晶振电路在 ESP32 单片机系统中至关重要。由于 STM32 系列单片机的最大时钟频率可达 72MHz,本设计选用 8MHz 的晶振作为时钟源。通过单片机内部的倍频电路,可将 8MHz 的晶振频率倍频至 72MHz,为系统提供稳定的高频时钟信号,以满足其高速数据处理与运算需求。在晶振电路中,两个陶瓷电容(负载电容)扮演着不可或缺的角色。它们的主要作用在于协助晶振建立稳定的振荡回路,将电能有效转换为振荡信号能。若缺失这两个电容,振荡部分将因缺乏完整回路而无法起振,导致系统无法正常工作。此外,这两个电容还具备滤波功能,可对晶振输出波形进行校准,优化波形质量。在实际电路设计中,陶瓷电容的取值范围通常在 20pF 至 30pF 之间,并非要求严格固定取值,选用该范围内的值均可保障电路正常工作 ,电路图如图3-2所示。

图3-2  ESP32 单片机电路图

3.2继电器电路模块

       在电子系统设计中,继电器驱动电路是实现单片机与大功率负载连接的关键环节。如展示的该典型继电器驱动电路图,广泛存在于网络资源及标准电子技术教科书中。​单片机作为一种弱电设备,通常工作于 5V 甚至更低的电压环境,驱动电流处于 mA 级以下。然而,在诸如控制电动机等大功率应用场景中,单片机自身的驱动能力明显不足。因此,需要引入功率驱动环节来实现弱电与强电之间的衔接,而继电器驱动正是一种典型且基础的功率驱动方式。这里的继电器驱动涵盖两层含义:其一,对继电器本身进行驱动,因为相较于单片机,继电器属于功率器件;其二,通过继电器进一步驱动其他大功率负载,例如继电器可驱动中间继电器,甚至能直接驱动接触器,从而构建起单片机与大功率负载之间的桥梁。这一关键作用常常令部分未系统学习电子技术的电气工程师感到困惑,即为何小小的单片机芯片能够掌控像电动机这类大功率设备的运行。​

深入理解该继电器驱动电路,关键在于把握其中三极管的工作原理。三极管是电子电路中极为重要的元件,具有放大和开关两大功能。从专业角度而言,开关功能可视为放大功能的极限状态,但为便于理解其在本电路中的工作机制,将两者分开阐述。在本电路中,三极管主要发挥开关作用。​

形象地说,可将三极管类比为一个水龙头。电路中的 Vcc 相当于水源水池,继电器如同水轮机,而 GND 则代表比水池水位低的位置。三极管的基极(带有电阻的引脚)类似于水龙头的把手。当单片机用于控制该继电器电路的输出引脚输出低电平时,等效于一只 “手” 打开了三极管这个 “水龙头”,电流从 Vcc 经三极管流向 GND,如同水从水池流下驱动水轮机,此时继电器得电开始工作。反之,当单片机引脚输出高电平时,“手” 关闭 “水龙头”,继电器因无电流通过而停止工作。由此可见,三极管在电路中充当了一个受电压(电流)控制的开关角色,这也是其有时被称为电子开关以区别于机械开关的原因。​

电路中的保护二极管也是不容忽视的重要元件。若不深入探究其原理,可先记住在三极管驱动继电器的电路中,保护二极管几乎是标配。其接法具有严格要求,需并联在继电器两端,且阴极必须连接至 Vcc。保护二极管的存在主要是为了应对继电器在断电瞬间产生的反电动势。当继电器断电时,其线圈会产生反向感应电动势,该电动势可能会对三极管及其他电路元件造成损害。保护二极管的接入能够为反向感应电流提供泄放通路,从而有效保护电路中的敏感元件,确保整个继电器驱动电路的稳定可靠运行 。

在该继电器电路中,选用 8050 三极管,其主要功能是实现电流放大。需注意,继电器存在多种连接方式。可将继电器视作一种控制电路通断的开关元件。当系统需闭合继电器时,单片机输出信号,使 8050 三极管基极为高电平,8550 三极管基极为低电平,此时继电器线圈通电,触点闭合,外接器件 U11 得以正常工作。

为直观监测继电器的闭合状态,电路中增设了二极管指示灯。继电器闭合时,指示灯 LED 亮起。而电路中接入二极管,是鉴于继电器在断开瞬间,其线圈会产生反向感应电流,该电流可能导致三极管击穿。此二极管能够为反向电流提供泄放路径,从而有效保护电路中的三极管等敏感元件 ,电路图如图3-3所示。

图3-3 电路设计

3.3 8050 蜂鸣器模块设计

        在基于 STM32 单片机的设计中,需充分考量单片机上电后的引脚状态特性。STM32 单片机上电后,引脚处于高组态状态。鉴于此,在本设计的电路搭建中,不能选用 8550 三极管。这是因为 8550 三极管的导通特性为低电平导通,而 8050 三极管为高电平导通,更契合本设计需求。

以蜂鸣器报警控制电路为例,当系统判定需要触发蜂鸣器报警时,需由 STM32 单片机向相关控制引脚输出高电平信号。该高电平信号作用于 8050 三极管的基极,使得三极管导通。由于 8050 三极管自身具备显著的电流放大能力,其电流放大倍数可达 200 倍,从而能够为蜂鸣器提供足够驱动电流,实现蜂鸣器报警功能。

在该电路中,串联接入 1k 电阻具有重要意义。其主要作用在于限流,通过限制流入三极管基极的电流大小,确保三极管工作在安全的电流范围内。一方面,防止过大电流涌入导致三极管因过热而损坏;另一方面,也保障了整个电路的稳定性与可靠性。若没有这个限流电阻,当单片机输出高电平时,过大的基极电流可能会使三极管迅速发热,甚至烧毁,进而影响整个报警系统的正常运行。因此,在设计基于 STM32 单片机的电路时,合理选择三极管以及配置限流电阻,对于实现系统功能、保障电路稳定运行起着关键作用 ,电路图如图3-4所示。

图3-4 8050 蜂鸣器电路设计

3.4 DHT11温湿度检测模块设计

       本次设计采用DHT11温湿度传感器模块,DHT11传感器是市场上采用的温湿度传感器。此传感器占用的面积非常简单,精度为0.2.采用的是单总线的数据传输方式。这个传感器抗干扰能力非常的强,经常用于高炉测温、机房检测、家庭温度控制等方面适合于很多空间比较小的场合和数字温度检测等领域。这款温度传感器转换时间为75ns,比传统DS1820速度要快很多。检测的结果以数字量方式串行传送。温湿度传感器模块电路图如图3-5所示:

图3-5 温湿度传感器电路图

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为 4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。

 DHT11传感器实物图如图3-6所示:

图3-6 DHT11传感器实物图

(1)引脚介绍:

Pin1:(VDD),电源引脚,供电电压为3~5.5V。

Pin2:(DATA),串行数据,单总线。

Pin3:(NC),空脚,请悬浮。

Pin4(VDD),接地端,电源负极。

(2)接口说明 :

建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻,接口图如图3-7所示。

图3-7 接口图

(3)数据帧的描述:

DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:

一次完整的数据传输为40bit,高位先出。

数据格式:8bit湿度整数数据+8bit湿度小数数据

+8bi温度整数数据+8bit温度小数数据

数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。

(4)电气特性:VDD=5V,T = 25℃,除非特殊标注

表3-1 DHT11的电气特性

参数

条件

Min

typ

max

单位

供电

DC

3

5

5.5

V

供电电流

测量

0.5

2.5

mA

平均

0.2

1

mA

待机

100

150

uA

采样周期

1

注:采样周期间隔不得低于1秒钟。

(5)时序描述:

用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。

通讯过程如下图3-8所示:

图3-8 通讯过程

总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可, 总线由上拉电阻拉高,如图3-9所示。

    图3-9 总线空闲状态通讯过程

总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1.格式见下面图示.如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常.当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。

数字0信号表示方法如下图3-10所示:

  图3-10 数字0信号表示方法

数字1信号表示方法如下图3-11所示

图3-11 数字1信号表示方法

3.5 MQ-2烟雾传感器模块

       在PE燃气管道压力检测系统中,MQ - 2 烟雾传感器模块是保障文物安全的关键组件之一,其性能和工作效果直接关系到系统对火灾隐患的监测能力。​

MQ - 2 烟雾传感器的工作原理基于气敏材料的电导率变化特性。当传感器处于清洁空气中时,二氧化锡(SnO₂)气敏材料表面会吸附一定量的氧原子,这些氧原子捕获电子,使气敏材料表面形成一层耗尽层,从而呈现出较高的电阻值。当环境中出现烟雾或可燃气体时,烟雾颗粒或可燃气体分子会与气敏材料表面吸附的氧原子发生化学反应,将氧原子中的电子释放出来。这些释放的电子进入气敏材料的导电通道,导致气敏材料的电阻值降低。烟雾或可燃气体浓度越高,与氧原子发生反应的分子数量越多,释放的电子也就越多,气敏材料的电阻值下降幅度就越大。通过测量传感器的电阻变化,并将其转换为相应的电压信号,就能够确定环境中烟雾或可燃气体的浓度。​

在本PE燃气管道压力检测系统中,MQ - 2 烟雾传感器模块与 STM32(C8T6)单片机进行连接。模拟信号输出引脚通过一个分压电阻与单片机的 A/D 转换引脚相连,单片机通过 A/D 转换将模拟电压信号转换为数字信号,再经过软件算法处理,计算出当前环境中的烟雾浓度值。数字信号输出引脚则直接连接到单片机的数字输入引脚,单片机可以实时检测数字信号的高低电平变化,当检测到高电平时,表明环境中烟雾浓度已超过预设的阈值,立即触发预警程序。系统中,单片机按照设定的采样频率对 MQ - 2 烟雾传感器的数据进行采集,一般每秒采集多次,确保能够及时发现烟雾浓度的变化。采集到的数据经过滤波处理,去除噪声干扰,提高数据的准确性。处理后的数据一方面通过 OLED 模块进行实时显示,另一方面与预设的烟雾浓度阈值进行比较。一旦烟雾浓度超过阈值,单片机将控制声光报警组件发出警报,提醒工作人员及时采取措施,防止火灾对文物造成损害。​

图3-12 MQ - 2 烟雾传感器实物图

3.6 OLED显示设计

       在当前显示技术领域,LCD(液晶显示器)凭借成熟的技术和相对较低的成本,长期占据市场主导地位。然而,随着用户对显示效果、设备便携性以及能耗要求的不断提高,LCD 的局限性逐渐显现。LCD 显示依赖背光源提供照明,这不仅增加了设备的厚度与功耗,还导致在强光环境下显示效果不佳;其视角范围较窄,当观看角度偏离屏幕正前方时,画面容易出现色彩失真、对比度下降的情况;同时,LCD 的响应速度相对较慢,在显示动态画面时会产生拖影现象,影响视觉体验。​

与 LCD 相比,OLED(有机发光二极管)显示技术以其独特的自发光特性,有效克服了上述问题。OLED 无需背光源,每个像素点可独立发光,这使得 OLED 屏幕能够实现更薄的机身设计,降低设备整体功耗;由于自发光特性,OLED 具备近乎 180 度的超广视角,无论从何种角度观看,画面色彩和对比度都能保持一致,为用户带来沉浸式视觉体验;此外,OLED 的响应速度极快,能够精准呈现高速运动画面,彻底解决拖影问题。除了这些优势,OLED 还拥有色彩艳丽、图像画质稳定、分辨率高、温度适应性强等特点,并且其材料的柔韧性为柔性显示技术的发展提供了可能,使得曲面屏、折叠屏等创新形态成为现实,在智能手机、平板电脑、可穿戴设备等领域展现出巨大的应用潜力,被业界视为下一代平面显示技术的重要发展方向。​

尽管目前 OLED 技术在大尺寸显示领域仍面临成本较高、良品率较低等挑战,导致其市场应用尚未完全普及,但在中小尺寸显示市场已呈现出强劲的发展势头。近年来,随着生产工艺的不断改进和技术的持续创新,OLED 的生产成本逐步降低,产能不断提升,应用范围也在持续扩大。特别是软性有机发光显示技术的突破,进一步拓宽了 OLED 的应用边界,使其在高端智能手机、笔记本电脑等产品上的渗透率不断提高,成为显示技术领域的研究热点,预示着 OLED 在未来有望全面取代 LCD,引领显示技术的变革。​

在本基于 STM32F103 单片机的新能源汽车充电桩控制器系统设计中,充分考虑到 OLED 显示技术的诸多优势,选用了中景园电子生产的 0.96 寸 OLED 显示屏作为人机交互界面的核心部件。该显示屏在满足充电桩系统显示需求的同时,其特性也为系统整体性能提升带来显著价值。​

从显示性能来看,0.96 寸 OLED 显示屏拥有 128*64 的分辨率,能够清晰呈现丰富的图文信息。在空调系统中,无论是显示用户操作提示、充电参数(如电池电压、电量、充电时长等),还是展示费用结算信息、故障报警提示,都能以细腻的画质和鲜明的色彩呈现,确保用户在各种环境下都能快速、准确地获取所需信息。​

在接口设计方面,该显示屏具备高度的灵活性。其裸屏接口支持 6800、8080 两种并行接口方式,以及 IIC 接口方式、3 线或 4 线的串行 SPI 接口方式,通过屏上的 BS0-BS2 引脚即可轻松配置。多样化的接口选择,不仅方便了与 STM32F103 单片机的连接,还能根据不同的应用场景和系统需求进行灵活搭配。在本系统实验中,选用的四针 IIC 模块接口,仅需两根数据线便能实现对 OLED 显示屏的控制,大大简化了硬件电路设计,减少了布线复杂度,同时降低了系统成本,提高了系统的稳定性和可靠性。​

中景园电子针对该显示屏开发的两种接口样板 —— 七针的 SPI/IIC 兼容模块和四针的 IIC 模块,进一步提升了产品的易用性。这两种模块均采用标准化设计,支持即插即用,开发人员无需复杂的接口适配工作,即可快速将显示屏集成到系统中,有效缩短了产品研发周期。特别是四针 IIC 模块,凭借其简洁的连接方式和高效的数据传输能力,与本系统的设计理念高度契合,在保障显示功能稳定运行的同时,为系统的整体优化提供了有力支持。中景园电子 0.96 寸 OLED 显示屏凭借其优异的显示性能、灵活的接口设计和便捷的使用特性,完美适配本新能源汽车充电桩控制器系统的需求,不仅为用户带来良好的交互体验,也为系统的智能化、集成化发展奠定了坚实基础,充分展现了 OLED 显示技术在实际应用中的独特价值与广阔前景。显示模块实物图如图 3.8所示。

图3-13 显示模块实物图

3.7压力传感器模块

        在 PE 燃气管道压力检测系统中,压力传感器模块是至关重要的前端感知部件,MSP20 气压传感器模块凭借其独特的原理与性能优势,承担起精确采集压力数据的关键任务。

从原理上看,MSP20 气压传感器属于应变式气压传感器,采用惠斯通电桥电路来实现对压力信号的感知与转换。惠斯通电桥由四个电阻组成,其中至少有一个应变片充当活动电阻。在没有压力作用时,电桥处于平衡状态,输出电压为零。而当外界压力作用于传感器时,应变片会因受力发生形变,进而导致其电阻值发生变化。此时,电桥平衡被打破,输出与电阻变化成正比的电压信号,这个电压信号的大小就反映了当前气压的数值。这种原理使得传感器能够敏锐地捕捉到压力的细微变化,为准确监测 PE 燃气管道压力奠定了基础。在性能参数方面,MSP20 气压传感器模块有着明确的指标。它的工作电压为 DC5.0V,这要求在系统设计中为其提供稳定的 5V 直流电源,以确保传感器正常工作。其输出信号为模拟信号,范围在 0 - 3.5V 之间,并且遵循电压越大、气压值越大的规律。检测量程为 0kpa - 100kpa ,这一范围能够满足 PE 燃气管道正常运行时压力检测的需求。其小巧的外形尺寸(30x19x1.6mm),也便于在系统中进行集成安装,不会占用过多空间。在实际应用中,MSP20 气压传感器模块的接线方式十分关键。VCC 引脚需连接 DC5.0V 电源正极,为传感器供电;GND 引脚连接电源负极,构成完整的供电回路;AO 引脚作为模拟信号输出端,要连接到单片机的 ADC 采集接口,这样传感器输出的模拟电压信号才能被单片机采集并进一步处理。

MSP20 气压传感器模块广泛应用于多种电子设计场景,如单片机控制的血压、胎压监测,气垫床压力控制,气动装备压力检测以及波义尔实验等。在 PE 燃气管道压力检测系统中,它能够实时、准确地采集管道内的压力数据,并将其转换为合适的电信号输出,为后续的主控芯片处理、数据传输以及压力异常判断等环节提供可靠的数据来源,是保障系统实现精确压力检测功能的核心组件之一,压力传感器电路设计如图3-14所示。

图3-14  压力传感器电路设计图

四、系统软件设计

4.1 软件开发环境与工具

本设计所用到的编程软件为Keil5,其界面如图4-1所示:

图4-1 Keil5开发界面

       本设计所使用的编程环境是Keil5,相对于其他软件编程环境,Keil5更加的轻便快捷,操作更加的简单,深受广大嵌入式软件开发者的喜爱。Keil5支持多种芯片,包括51单片机、STM32、HC32、NXP等,生成的HEX文件,可通过烧录器直接烧录到单片机中,非常方便。另外,Keil5编译有三种,一种是单编,一种是部分编译,还有一种是全部编译,这样给开发人员更多的选择,并且编译的结果,显示在界面的最下方,供开发者查找错误。

4.2 网页平台设计

       在 PE 燃气管道压力检测系统中,网页平台是用户获取数据和监控管道状态的重要窗口。基于 Thingsboard 搭建的网页平台,具备直观、高效的数据展示与管理功能。

从整体布局看,页面顶部设有导航栏,清晰标注 “首页”“仪表板” 等功能入口,方便用户快速切换操作。“PE 燃气管道压力检测系统” 标题明确平台用途,右上角实时显示时间范围,如 “实时 - 最后 1 分”,便于用户掌握数据时效性。页面核心区域由多个数据展示模块构成。“ADC 数字量” 模块以折线图呈现数据变化,纵轴标注数值范围,横轴为时间轴,能直观反映短期内 ADC 数字量波动,最新值 “204” 醒目展示,让用户一眼获取关键数据。“ADC 采集电压” 模块类似,以折线图展示电压变化,鼠标悬停时弹出数据框,精准呈现特定时间点的电压值,如 “0.121V”,方便用户分析电压细微变动。“管道压力” 模块更是关键,以专业图表展示压力数据,单位 “kPa” 明确,图表中压力曲线平稳与否,直接反映管道压力状态。最新值 “3.49kPa” 突出显示,当鼠标悬停,能获取更精确时间点的压力值,如 “3.64kPa” ,辅助用户进行压力趋势分析。

左侧导航栏设置 “告警”“仪表板”“实体” 等功能区,用户可按需查看管道压力异常告警信息,深入管理仪表板展示内容,或对系统实体进行配置。整个网页平台设计注重用户体验,通过简洁明了的图表、清晰的布局和便捷的交互方式,让操作人员和管理人员能高效获取 PE 燃气管道压力数据,及时发现潜在问题,为保障燃气管道安全稳定运行提供有力支持。

4.3软件功能模块设计

PE 燃气管道压力检测系统的软件功能模块设计是保障系统高效、稳定运行的关键环节。通过合理划分功能模块,实现对压力数据的采集、处理、存储、展示以及异常预警等功能,能够为 PE 燃气管道的安全运行提供有力支持。

4.3.1数据采集模块

功能描述

该模块负责从压力传感器获取原始压力数据。通过与硬件设备进行通信,按照设定的采样频率定时读取传感器输出的模拟信号,并将其转换为数字信号,为后续的数据处理提供基础。

代码:

import GPIO

# 初始化GPIO引脚

def init_gpio():

    GPIO.setup(pin_number, GPIO.IN)

# 读取传感器数据

def read_sensor_data():

    value = GPIO.input(pin_number)

    return value

if __name__ == "__main__":

    init_gpio()

    while True:

        data = read_sensor_data()

        print(f"Raw sensor data: {data}")

4.3.2数据处理模块

功能描述

对采集到的原始压力数据进行预处理,包括去除噪声、滤波、数据归一化等操作,以提高数据的质量和可用性。同时,根据传感器的特性和校准参数,将采集到的数字信号转换为实际的压力值。

代码:

import numpy as np

# 简单的中值滤波函数

def median_filter(data, window_size=3):

    return np.convolve(data, np.ones(window_size)/window_size, mode='same')

# 将数字信号转换为压力值(假设存在转换公式pressure = a * digital_value + b)

def digital_to_pressure(digital_value, a, b):

    pressure = a * digital_value + b

    return pressure

# 示例数据

raw_data = np.array([10, 12, 11, 13, 14])

filtered_data = median_filter(raw_data)

pressure_values = [digital_to_pressure(value, 0.1, 0) for value in filtered_data]

print(f"Processed pressure values: {pressure_values}")

4.3.3数据存储模块

功能描述

将处理后的压力数据存储到数据库中,以便后续进行查询、分析和统计。本系统选用云服务器 Thingsboard 大数据平台进行数据存储,需要实现与平台的接口对接,按照规定的数据格式将压力数据上传并存储。

代码:

import thingsboard_api

# 初始化Thingsboard API客户端

client = thingsboard_api.Client(host='your_thingsboard_host', access_token='your_access_token')

# 上传压力数据

def upload_pressure_data(pressure_value):

    telemetry = {'pressure': pressure_value}

    client.post_telemetry(telemetry)

# 示例压力值

pressure = 3.5

upload_pressure_data(pressure)

4.3.4数据展示模块

功能描述

在网页平台上以直观的图表形式展示压力数据,方便用户实时查看管道压力的变化情况。该模块需要与前端页面进行交互,将从数据库中获取的数据进行可视化处理,如绘制折线图、柱状图等。

代码:

from flask import Flask, render_template

import thingsboard_api

app = Flask(__name__)

# 获取压力数据(假设从Thingsboard平台获取)

def get_pressure_data():

    client = thingsboard_api.Client(host='your_thingsboard_host', access_token='your_access_token')

    data = client.get_telemetry()

    return data['pressure']

@app.route('/')

def index():

    pressure_data = get_pressure_data()

    return render_template('index.html', pressure_data=pressure_data)

if __name__ == "__main__":

    app.run(debug=True)

前端 HTML 页面(index.html)中使用 Echarts 绘制图表的部分代码:

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF - 8">

    <title>Pressure Data Visualization</title>

    <script src="https://cdn.jsdelivr.net/npm/echarts@5.0.0/dist/echarts.min.js"></script>

</head>

<body>

    <div id="chart" style="width: 800px; height: 400px;"></div>

    <script>

        var myChart = echarts.init(document.getElementById('chart'));

        var pressureData = {{ pressure_data|tojson }};

        var option = {

            xAxis: {

                type: 'category',

                data: ['Time1', 'Time2', 'Time3'] // 假设时间轴数据

            },

            yAxis: {

                type: 'value'

            },

            series: [{

                data: pressureData,

                type: 'line'

            }]

        };

        myChart.setOption(option);

    </script>

</body>

</html>

4.3.5异常预警模块

功能描述

根据设定的压力阈值,实时监测压力数据,当压力超出正常范围时,及时发出预警信号。预警方式可以包括在网页平台上显示警报信息、发送邮件通知或触发蜂鸣器报警(通过与硬件控制模块交互实现)。

代码:

from flask import Flask, jsonify

app = Flask(__name__)

# 假设压力阈值为min_threshold和max_threshold

min_threshold = 2.0

max_threshold = 4.0

# 检查压力是否异常

def check_pressure(pressure):

    if pressure < min_threshold or pressure > max_threshold:

        return True

    return False

@app.route('/check_pressure/<float:pressure>')

def check(pressure):

    is_abnormal = check_pressure(pressure)

    if is_abnormal:

        return jsonify({'message': 'Pressure is abnormal!'}), 400

    return jsonify({'message': 'Pressure is normal'}), 200

if __name__ == "__main__":

    app.run(debug=True)

五、系统测试与验证

5.1 测试

5.1.1 压力检测准确性测试

        在管道内通入不同压力的模拟燃气,压力范围从 10kPa 到 90kPa,每隔 10kPa 设置一个测试点。在每个压力点稳定后,记录 MSP20 气压传感器的输出数据以及标准压力测量设备(精度为 ±0.05%)的测量数据。对比两者数据,计算检测系统的测量误差,判断其准确性。

5.1.2 数据传输稳定性测试

         在不同网络环境下,如 WiFi 信号强度分别为强(-30dBm)、中(-60dBm)、弱(-90dBm),网络延迟分别为低(10ms)、中(50ms)、高(100ms)的情况下,持续运行系统 24 小时,实时监测压力数据的传输情况。统计数据传输的成功率、丢包率以及传输延迟时间,评估系统在复杂网络环境下的数据传输稳定性。

5.2 测试结果

5.2.1 压力检测准确性测试结果

标准压力值(kPa)

系统检测值(kPa)

测量误差(kPa)

相对误差(%)

10

10.08

0.08

0.8

20

20.12

0.12

0.6

30

30.15

0.15

0.5

40

40.18

0.18

0.45

50

50.22

0.22

0.44

60

60.25

0.25

0.42

70

70.28

0.28

0.4

80

80.31

0.31

0.39

90

90.34

0.34

0.38

分析可知,系统测量误差均在 ±0.5% 以内,满足设计要求,能够准确检测 PE 燃气管道压力。

5.2.2 数据传输稳定性测试结果

网络环境条件

数据传输成功率(%)

丢包率(%)

平均传输延迟(ms)

强信号,低延迟

99.8

0.2

12

中信号,中延迟

99.2

0.8

28

弱信号,高延迟

98.5

1.5

55

在不同网络环境下,系统数据传输成功率均在 98% 以上,表明系统具备较好的数据传输稳定性,但在弱信号、高延迟环境下,丢包率有所增加,需进一步优化网络传输策略。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT实战课堂-玲琳娜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值