欢迎光临
我们一直在努力

基于STM32的矿井环境监测系统设计(完整项目)

基于STM32的矿井环境监测系统设计

摘要

矿井作业环境复杂多变,温度异常、粉尘浓度超标易引发安全事故,严重威胁井下作业人员的生命安全和矿井生产安全。本文设计并实现了一套基于STM32F103C8T6单片机的矿井环境监测系统,旨在实现矿井环境中温度、粉尘(PM2.5)浓度的实时监测、异常报警及智能调控,为矿井安全生产提供可靠的技术支撑。该系统以STM32F103C8T6单片机为主控制器,采用DS18B20温度传感器采集井下环境温度,粉尘传感器采集PM2.5粉尘浓度;通过OLED显示屏实现监测数据的本地可视化显示,方便现场作业人员实时查看;配备按键模块用于现场手动设置各环境参数阈值;集成声光报警模块,当温度超出预设上下限或粉尘浓度超过设定最大值时,自动触发声光报警;通过继电器控制加湿器实现自动喷雾降尘,同时支持蓝牙模块(BT04A)与手机端通信,手机端可远程接收监测数据、保存数据,并远程控制喷雾功能的启停。本文详细阐述了系统的总体设计、硬件电路设计、软件程序开发及系统测试过程,测试结果表明,该系统数据采集准确、报警响应及时、控制可靠,操作便捷,能够有效监测矿井环境参数,及时处置异常情况,满足矿井安全生产的实际需求,具有较强的实用性和应用价值。

关键词:STM32F103C8T6;矿井环境监测;DS18B20;粉尘传感器;蓝牙通信;智能报警;自动喷雾

第一章 绪论

1.1 研究背景与意义

矿井作业属于高危行业,井下环境封闭、通风条件有限,温度波动、粉尘堆积等问题突出,是引发矿井安全事故的主要诱因之一。井下温度过高易导致作业人员中暑、设备过热损坏,温度过低则可能造成管道冻裂、机械故障;而粉尘(尤其是PM2.5细颗粒物)长期积累,不仅会危害作业人员的呼吸系统健康,还可能引发粉尘爆炸,造成重大人员伤亡和财产损失。因此,实现矿井环境参数的实时监测、异常预警及智能调控,是保障矿井安全生产、保护作业人员生命健康的关键举措。

传统的矿井环境监测多采用人工巡检方式,存在监测效率低、实时性差、数据误差大、异常处置不及时等弊端;现有矿井环境监测系统多存在结构复杂、成本高昂、操作繁琐、维护不便等问题,难以适应中小型矿井的实际使用需求。基于此,本文设计一套基于STM32F103C8T6的低成本、高性能、易操作的矿井环境监测系统,实现温度、粉尘浓度的实时采集、显示、报警及智能调控,同时支持手机端远程监测与控制,不仅能提升矿井环境监测的自动化水平,及时发现安全隐患,还能降低监测成本,为中小型矿井安全生产提供可靠保障,具有重要的理论研究意义和实际应用价值。

1.2 国内外研究现状

国外矿井环境监测技术起步较早,欧美等发达国家已形成较为完善的矿井安全监测体系,其监测系统多采用高精度传感器、无线通信技术(如LoRa、WiFi)及物联网技术,实现环境参数的精准监测、数据远程传输及多设备联动控制,且系统稳定性高、抗干扰能力强,但此类系统成本高昂、技术门槛高,维护难度大,难以在发展中国家的中小型矿井中普及。

国内近年来随着煤矿安全生产要求的不断提高,矿井环境监测技术得到快速发展,众多科研机构和企业纷纷投入相关系统的研发。目前国内系统多以STM32、51单片机为核心,集成温度、粉尘等传感器实现环境参数采集,结合显示模块、报警模块实现基本的监测与报警功能,但部分系统存在数据采集精度低、报警响应滞后、缺乏远程控制功能、抗干扰能力弱等问题,难以适应矿井复杂的恶劣环境(如强电磁干扰、高湿度、高粉尘)。此外,现有系统多未实现手机端数据保存与远程控制,现场操作灵活性不足,无法满足矿井作业的实际需求。

1.3 研究内容与目标

1.3.1 研究内容

本文围绕基于STM32F103C8T6的矿井环境监测系统展开研究,主要研究内容如下:

  • 系统总体方案设计:明确系统的功能需求、性能指标,结合矿井环境特点,设计系统的总体架构,确定各模块的选型、连接方式及控制逻辑,制定合理的硬件布局与软件流程。
  • 硬件电路设计:设计STM32F103C8T6核心控制电路、DS18B20温度采集电路、粉尘传感器采集电路、OLED显示电路、按键阈值设置电路、声光报警电路、继电器驱动电路、BT04A蓝牙通信电路,完成电路原理图绘制与PCB制作。
  • 软件程序开发:基于Keil MDK开发环境,编写STM32主控程序,包括传感器数据采集与处理程序、OLED显示程序、按键阈值设置程序、声光报警程序、继电器控制程序、蓝牙通信程序;开发手机端接收、保存数据及远程控制程序。
  • 系统测试与优化:搭建模拟矿井环境测试平台,对系统的参数采集精度、显示功能、阈值设置功能、报警功能、自动喷雾功能、蓝牙通信功能等进行全面测试,针对测试中出现的问题进行优化,确保系统满足矿井安全生产的实际需求。

1.3.2 研究目标

本研究的目标是设计并实现一套基于STM32F103C8T6的矿井环境监测系统,具体目标如下:

  • 实现环境参数精准采集:能够实时采集矿井环境中的温度、PM2.5粉尘浓度数据,温度测量误差不超过±0.5℃,粉尘浓度测量误差不超过±10μg/m³,采集响应时间小于3秒。
  • 实现数据可视化显示:通过OLED显示屏清晰显示温度、粉尘浓度的实时测量值,以及各参数的预设阈值、系统工作状态(报警、喷雾、蓝牙连接),更新及时、显示准确。
  • 实现阈值灵活设置:支持通过按键现场手动设置温度上下限、粉尘浓度最大值,阈值设置范围合理,操作便捷,设置后立即生效。
  • 实现异常声光报警:当温度超出预设上下限或粉尘浓度超过设定最大值时,系统自动触发有源蜂鸣器发声、LED灯闪烁,报警响应时间≤1秒,提醒现场作业人员及时处置。
  • 实现智能喷雾降尘:当粉尘浓度超过设定最大值时,系统自动控制加湿器(喷雾设备)启动,进行喷雾降尘;粉尘浓度降至阈值以下时,自动停止喷雾;同时支持手机端远程开关喷雾。
  • 实现蓝牙远程通信:通过BT04A蓝牙模块实现系统与手机端的通信,手机端可实时接收温度、粉尘浓度数据,支持数据保存,可远程控制喷雾功能的启停,通信稳定、无丢包现象。
  • 保证系统稳定可靠:系统具备较强的抗干扰能力,能够适应矿井高湿度、高粉尘、强电磁干扰的环境,长期运行稳定,故障率低,满足井下长期监测需求。

1.4 论文结构安排

本文共分为6章,具体结构安排如下:

第1章为绪论,阐述研究背景与意义、国内外研究现状、研究内容与目标及论文结构安排。

第2章为系统总体方案设计,明确系统功能需求与性能指标,设计系统总体架构,完成各模块的选型及材料清单梳理,确定控制逻辑。

第3章为系统硬件电路设计,详细设计各模块的硬件电路,包括核心控制电路、传感器采集电路、显示电路、按键电路、报警电路、驱动电路、蓝牙通信电路等,绘制电路原理图与PCB图。

第4章为系统软件程序开发,介绍软件开发环境,编写各模块的软件程序,阐述阈值设置、报警控制、自动喷雾、蓝牙通信的核心逻辑。

第5章为系统测试与结果分析,搭建测试平台,对系统各功能、性能进行测试,分析测试结果,验证系统的可行性与稳定性。

第6章为总结与展望,总结本文的研究成果,分析系统存在的不足,并对未来的改进方向进行展望。

第二章 系统总体方案设计

2.1 系统功能需求分析

结合矿井环境监测的实际需求,本系统需实现监测、显示、阈值设置、报警、智能控制、蓝牙远程通信六大核心功能,具体如下:

  • 监测功能:以STM32F103C8T6单片机为主控制器,通过DS18B20温度传感器实时采集矿井环境温度,通过粉尘传感器实时采集矿井环境PM2.5粉尘浓度,确保数据采集的实时性与准确性。
  • 显示功能:通过OLED显示屏实时显示温度测量值、粉尘浓度测量值,同时显示温度上下限阈值、粉尘浓度最大值阈值,以及系统工作状态(正常、温度报警、粉尘报警、喷雾中、蓝牙已连接/未连接)。
  • 阈值设置功能:通过独立按键现场手动设置温度上下限、粉尘浓度最大值,支持阈值的增加、减少、确认操作,设置完成后自动保存,断电后不丢失。
  • 声光报警功能:当采集到的温度超出预设上下限,或粉尘浓度超过设定最大值时,系统自动触发有源蜂鸣器发声、LED灯闪烁,实现声光同步报警,直至参数恢复正常或手动关闭报警。
  • 智能喷雾功能:当粉尘浓度超过设定最大值时,系统通过继电器自动控制加湿器(喷雾设备)启动,进行喷雾降尘;当粉尘浓度降至阈值以下时,自动控制加湿器停止工作;同时支持手机端远程开关喷雾功能。
  • 蓝牙通信功能:通过BT04A蓝牙模块实现系统与手机端的双向通信,手机端可实时接收温度、粉尘浓度数据,支持数据本地保存;手机端可发送控制指令,远程开启或关闭喷雾功能,查看当前阈值设置。
  • 2.2 系统性能指标

    结合矿井环境的特殊性和实际使用需求,制定以下系统性能指标:

    • 采集精度:温度测量范围-55℃~125℃,精度±0.5℃;粉尘浓度测量范围0~500μg/m³,精度±10μg/m³。
    • 显示性能:OLED显示屏分辨率128×64,显示刷新频率1次/秒,显示清晰、无残影,适应井下弱光环境。
    • 响应速度:传感器采集响应时间≤3s,报警响应时间≤1s,喷雾控制响应时间≤1s,蓝牙通信响应时间≤2s。
    • 蓝牙通信:BT04A蓝牙模块通信距离≥10m(井下封闭环境),通信稳定,数据丢包率≤1%,支持手机端数据保存。
    • 阈值设置:温度上下限可在0℃~60℃范围内设置,粉尘浓度最大值可在0~300μg/m³范围内设置,按键操作便捷,设置后立即生效。
    • 工作环境:适应矿井井下环境,工作温度-10℃~60℃,相对湿度≤95%(无凝结),具备抗电磁干扰、抗粉尘干扰能力。
    • 工作电压:系统工作电压为5V,可通过USB供电或锂电池供电,功耗低,适合井下长期连续运行。
    • 稳定性:系统连续运行72小时无死机、无数据异常、无控制失效,故障率≤0.5%。

    2.3 系统总体架构设计

    本系统采用“感知层-控制层-交互层”三层架构设计,各层协同工作,实现系统的全部功能,总体架构如图2-1所示(此处省略图表,论文中可插入架构图)。

    2.3.1 感知层

    感知层是系统的数据采集核心,负责采集矿井环境中的温度、粉尘浓度参数,主要由DS18B20温度传感器、粉尘传感器组成。各传感器将采集到的模拟信号或数字信号传输至控制层,为系统的控制决策提供精准的数据支持,是实现矿井环境监测的基础。

    2.3.2 控制层

    控制层是系统的核心控制单元,以STM32F103C8T6单片机为核心,负责接收感知层传输的数据,进行数据处理、分析与决策;同时控制交互层的显示、报警、喷雾等模块工作,处理按键操作信号和蓝牙通信信号,实现阈值设置、异常报警、自动喷雾、远程控制等功能,是系统的“大脑”。

    2.3.3 交互层

    交互层主要为用户提供人机交互接口,分为本地交互和远程交互两部分。本地交互包括OLED显示屏(显示数据与系统状态)、按键模块(设置阈值)、声光报警模块(异常提醒)、加湿器(喷雾降尘);远程交互包括BT04A蓝牙模块和手机端APP,实现远程数据接收、数据保存、远程控制喷雾功能。

    2.4 系统核心模块选型及材料清单

    根据系统总体方案和性能指标,结合矿井环境特点、成本、兼容性、实用性等因素,对系统各核心模块进行选型,梳理详细材料清单,具体如下:

    2.4.1 材料清单

    序号

    元器件名称

    型号规格

    数量

    用途

    1

    单片机

    STM32F103C8T6

    1

    系统主控制器,负责数据处理与各模块控制

    2

    显示模块

    OLED屏幕(128×64,I2C接口)

    1

    显示温度、粉尘浓度、阈值及系统状态

    3

    温度传感器

    DS18B20

    1

    采集矿井环境温度

    4

    粉尘传感器

    GP2Y1014AU0F(PM2.5)

    1

    采集矿井环境PM2.5粉尘浓度

    5

    蓝牙模块

    BT04A

    1

    实现系统与手机端的蓝牙通信

    6

    继电器模块

    5V单路继电器

    1

    驱动加湿器(喷雾设备)启停

    7

    报警模块

    有源蜂鸣器(5V)、LED灯

    各1

    实现声光报警,提醒异常情况

    8

    执行设备

    加湿器(5V)

    1

    喷雾降尘,降低矿井粉尘浓度

    9

    按键模块

    独立按键

    3

    设置温度上下限、粉尘浓度最大值

    10

    辅助元器件

    电阻、电容、面包板、杜邦线、电源适配器(5V)

    若干

    电路连接、供电、滤波等

    2.4.2 核心模块选型说明

    • 核心控制模块:选用STM32F103C8T6单片机,该单片机基于ARM Cortex-M3内核,最高工作频率达72MHz,具有64KB闪存和20KB SRAM,具备丰富的外设资源(ADC、GPIO、UART、I2C等),可满足多传感器数据采集、显示控制、报警控制、蓝牙通信、继电器驱动等需求。其成本较低、功耗低、稳定性高、抗干扰能力强,适合矿井恶劣环境下的长期运行,是嵌入式系统设计中常用的核心器件。
    • 温度传感器:选用DS18B20传感器,该传感器为数字式温度传感器,采用单总线接口,无需复杂的信号调理电路,可直接与STM32单片机通信。其测量范围广(-55℃~125℃),精度高(±0.5℃),响应速度快,抗干扰能力强,适合矿井温度波动较大的环境,且接线简单、成本低廉。
    • 粉尘传感器:选用GP2Y1014AU0F光学粉尘传感器,主要用于检测空气中的PM2.5颗粒物,测量范围0~500μg/m³,精度±10μg/m³,工作电压5V。该传感器通过红外LED发射光线,检测散射光强度来测量颗粒物浓度,输出模拟信号,经STM32的ADC模块采集处理,响应时间快,适合矿井粉尘浓度的实时监测,且体积小、安装方便。
    • 显示模块:选用128×64分辨率的OLED显示屏,采用I2C通信接口,具有功耗低、对比度高、响应速度快、显示清晰、体积小等优点,无需背光即可在弱光环境下清晰显示,适合井下弱光作业环境,可实时显示各类监测数据和系统状态。
    • 蓝牙模块:选用BT04A蓝牙模块,该模块工作电压3.3V,通过UART接口与STM32单片机通信,支持蓝牙4.0协议,通信距离远(室内≥10m,井下封闭环境≥5m),通信稳定,功耗低,可实现系统与手机端的双向通信,支持数据传输和指令接收,满足远程监测与控制需求。
    • 执行器与驱动模块:选用5V单路继电器模块驱动加湿器,继电器模块工作可靠,可将STM32单片机的弱信号转换为强信号,驱动加湿器启停;加湿器选用5V小型加湿器,体积小、功耗低,喷雾效果好,适合矿井局部区域的降尘作业。
    • 报警模块:选用5V有源蜂鸣器和LED灯组成声光报警模块,有源蜂鸣器无需额外驱动电路,通过STM32的GPIO引脚直接控制,发声响亮;LED灯选用红色高亮款,在井下弱光环境下醒目,两者配合实现声光同步报警,确保异常情况能够及时被发现。
    • 按键模块:选用3个独立按键,分别用于阈值的增加、减少、确认操作,按键操作便捷,响应灵敏,可实现温度上下限、粉尘浓度最大值的现场手动设置,满足井下现场操作需求。

    2.5 系统控制逻辑设计

    系统上电后,首先完成各模块初始化(单片机初始化、传感器初始化、OLED显示初始化、蓝牙模块初始化、继电器初始化),初始化完成后,系统进入正常工作状态,具体控制逻辑如下:

  • 数据采集:STM32单片机周期性采集DS18B20温度传感器、粉尘传感器的输出信号,对采集到的信号进行滤波、校准等处理,转换为实际的温度、粉尘浓度数值。
  • 数据显示:将处理后的温度、粉尘浓度数值,以及预设的温度上下限、粉尘浓度最大值,系统工作状态(正常、报警、喷雾、蓝牙连接状态)实时显示在OLED显示屏上,刷新频率为1次/秒。
  • 阈值设置:用户通过按键模块可手动设置温度上下限、粉尘浓度最大值,按下“增加”键阈值递增,按下“减少”键阈值递减,按下“确认”键保存设置并生效,设置过程中OLED显示屏实时显示当前设置值。
  • 异常报警判断:将采集到的温度、粉尘浓度数值与预设阈值进行对比:
            
    • 若温度<温度下限或温度>温度上限,触发声光报警(蜂鸣器发声、LED灯闪烁),直至温度恢复至阈值范围内或手动关闭报警;
    • 若粉尘浓度>粉尘浓度最大值,触发声光报警,同时通过继电器控制加湿器启动,进行喷雾降尘;当粉尘浓度降至阈值以下时,停止声光报警,控制加湿器停止工作。
  • 蓝牙通信:BT04A蓝牙模块与手机端建立连接后,系统将实时采集的温度、粉尘浓度数据、阈值设置、系统工作状态上传至手机端,手机端可接收并保存数据;同时,手机端可发送控制指令,远程开启或关闭加湿器(喷雾功能),系统接收指令后执行相应操作,并将操作结果反馈至手机端。
  • 异常处理:系统实时检测各模块工作状态,若传感器采集异常、蓝牙通信中断,在OLED显示屏显示异常提示,同时蜂鸣器发出短音报警,提醒用户检查设备;若加湿器未按控制指令运行,重新发送控制指令,连续3次失败则显示执行器异常提示。
  • 第三章 系统硬件电路设计

    3.1 硬件电路设计原则

    结合矿井环境的特殊性(高湿度、高粉尘、强电磁干扰)和系统功能需求,硬件电路设计遵循以下原则:

    • 可靠性:选用抗干扰能力强、性能稳定的元器件,优化电路设计,减少电磁干扰、粉尘干扰和湿度干扰,确保系统在矿井恶劣环境下长期稳定运行。
    • 实用性:电路设计符合系统功能需求,布局合理,接口清晰,便于安装、调试和维护,适合井下现场使用。
    • 低成本:在满足性能要求和可靠性的前提下,选用性价比高的元器件,降低系统整体成本,适合中小型矿井推广使用。
    • 抗干扰性:在电路中加入滤波、隔离等设计,减少电源噪声、电磁干扰对传感器采集和单片机控制的影响,确保数据采集准确、控制可靠。
    • 安全性:电路设计符合电气安全标准,加入限流、保护电路,防止元器件损坏和短路,确保系统运行安全,避免引发井下安全隐患。

    3.2 核心控制电路设计

    核心控制电路以STM32F103C8T6单片机为核心,主要包括电源电路、复位电路、晶振电路,是系统的控制中枢,负责协调各模块工作,确保系统正常运行。

    3.2.1 电源电路

    系统工作电压为5V,可通过USB接口供电或5V锂电池供电,为确保各模块获得稳定的电源,电源电路采用AMS1117-3.3稳压芯片,将5V输入电压稳压至3.3V,为STM32F103C8T6单片机、OLED显示屏、BT04A蓝牙模块提供稳定的3.3V电源;同时,直接为DS18B20温度传感器、粉尘传感器、继电器模块、有源蜂鸣器、加湿器提供5V电源。电路中加入100nF电容和10μF电容组成滤波电路,减少电源噪声干扰,提高电路稳定性;加入二极管防止电源反接,保护电路元器件。

    3.2.2 复位电路

    复位电路采用手动复位方式,由复位按键、10kΩ电阻和10μF电容组成。当按下复位按键时,STM32F103C8T6单片机的复位引脚(NRST)接低电平,实现系统复位;松开按键后,复位引脚通过电阻拉为高电平,系统正常启动。复位电路的设计确保系统在出现异常时能够快速复位,恢复正常工作,适应矿井复杂环境下的使用需求。

    3.2.3 晶振电路

    晶振电路采用外部晶振,选用8MHz晶振和32.768kHz晶振,为STM32F103C8T6单片机提供稳定的时钟信号。8MHz晶振用于系统主时钟,经倍频后可达72MHz,满足单片机高速运行、数据处理和多模块控制的需求;32.768kHz晶振用于实时时钟(RTC),实现时间计时功能,便于记录环境参数的采集时间,为数据追溯提供支持。晶振电路中加入22pF电容,确保晶振稳定振荡,减少时钟信号干扰。

    3.3 传感器采集电路设计

    传感器采集电路负责将温度、粉尘浓度信号转换为单片机可识别的数字信号或模拟信号,传输至STM32F103C8T6单片机进行处理,各传感器电路设计如下:

    3.3.1 温度传感器电路(DS18B20)

    DS18B20传感器采用单总线接口与STM32F103C8T6单片机连接,传感器的VCC引脚接5V电源,GND引脚接地,DQ引脚(数据引脚)通过4.7kΩ上拉电阻连接至STM32的GPIO引脚(如PA0),确保信号稳定性,防止信号失真。DS18B20传感器内部集成温度采集、A/D转换模块,可直接输出数字信号,无需额外的信号调理电路,STM32单片机通过精确的时序控制(初始化、ROM指令、功能指令)读取传感器输出的温度数据,并进行校验和转换,得到实际的温度数值。为提高抗干扰能力,传感器与单片机之间的接线尽量短,且在DQ引脚与GND之间并联100nF电容,减少电磁干扰。

    3.3.2 粉尘传感器电路(GP2Y1014AU0F)

    GP2Y1014AU0F传感器为模拟输出型粉尘传感器,工作电压5V,传感器的VCC引脚接5V电源,GND引脚接地,LED引脚(红外LED控制端)连接至STM32的GPIO引脚(如PA1),用于控制红外LED的启停;OUT引脚(模拟输出端)通过RC低通滤波器(1kΩ电阻和100nF电容,截止频率10Hz)连接至STM32的ADC输入通道(如PA2),消除高频噪声,确保采集到的模拟信号稳定。该传感器通过红外LED发射光线,当空气中有PM2.5颗粒物时,部分光线被散射,光电晶体管检测散射光强度,输出相应的电压信号(电压与粉尘浓度成正比),STM32单片机通过ADC模块将模拟电压信号转换为数字信号,再通过校准公式转换为实际的PM2.5粉尘浓度值。传感器安装时需设置进风口和出风口,确保空气流通,避免粉尘堆积影响检测精度,同时在传感器引脚处涂抹三防漆,增强抗湿度、抗粉尘能力。

    3.4 OLED显示电路设计

    OLED显示屏采用I2C通信接口与STM32F103C8T6单片机连接,显示屏的VCC引脚接3.3V电源,GND引脚接地,SCL引脚(时钟线)连接至STM32的GPIO引脚(如PB10),SDA引脚(数据线)连接至STM32的另一个GPIO引脚(如PB11)。I2C通信接口具有接线简单、占用IO口少、功耗低的优点,适合小型显示模块的连接。电路中在SCL和SDA引脚分别串联1kΩ电阻,增强抗干扰能力,同时在VCC与GND之间并联100nF电容,滤波降噪,确保通信信号稳定。STM32单片机通过I2C协议向OLED显示屏发送控制指令和显示数据,实现温度、粉尘浓度、阈值、系统状态的实时显示,显示界面分为多个区域,布局清晰,便于井下作业人员快速查看。具体引脚连接如下:

    • OLED_VCC → 3.3V
    • OLED_GND → GND
    • OLED_SCL → PB10
    • OLED_SDA → PB11

    3.5 按键阈值设置电路设计

    按键阈值设置电路采用3个独立按键,分别实现阈值增加、减少、确认功能,按键一端接地,另一端通过10kΩ上拉电阻连接至STM32的GPIO引脚(如PB0、PB1、PB2),同时在按键两端并联100nF电容,消除按键抖动,确保按键操作的准确性。当按下按键时,对应的GPIO引脚接低电平;松开按键时,GPIO引脚通过上拉电阻拉为高电平,STM32单片机通过检测GPIO引脚的电平变化,识别按键操作,进而实现阈值的调整与保存。按键电路设计简单、可靠,操作便捷,适合井下现场手动设置阈值,具体按键功能分配如下:

    • 按键1(PB0):阈值增加键,按下时当前设置的阈值递增(温度每次递增1℃,粉尘浓度每次递增10μg/m³);
    • 按键2(PB1):阈值减少键,按下时当前设置的阈值递减(温度每次递减1℃,粉尘浓度每次递减10μg/m³);
    • 按键3(PB2):确认保存键,按下时保存当前设置的阈值,并退出阈值设置模式,返回正常监测模式。

    3.6 声光报警电路设计

    声光报警电路由有源蜂鸣器、红色LED灯和限流电阻组成,用于当温度异常、粉尘浓度超标时发出声光报警提示。有源蜂鸣器的VCC引脚接5V电源,GND引脚通过1kΩ限流电阻连接至STM32的GPIO引脚(如PA3);LED灯的阳极通过220Ω限流电阻接5V电源,阴极连接至STM32的GPIO引脚(如PA4)。当系统检测到异常时,STM32单片机输出低电平,有源蜂鸣器通电发声,LED灯通电点亮,实现声光同步报警;当异常解除或手动关闭报警时,STM32单片机输出高电平,蜂鸣器停止发声,LED灯熄灭。电路中加入限流电阻,防止电流过大损坏蜂鸣器和LED灯,确保报警模块稳定工作。

    3.7 继电器与加湿器驱动电路设计

    由于STM32F103C8T6单片机的GPIO引脚输出电流较小(最大20mA),无法直接驱动加湿器,因此需要通过继电器模块进行驱动。继电器模块选用5V单路继电器,继电器的VCC引脚接5V电源,GND引脚接地,IN引脚(控制端)连接至STM32的GPIO引脚(如PA5),继电器的公共端(COM)接5V电源,常开端(NO)连接至加湿器的VCC引脚,加湿器的GND引脚接地。当STM32单片机输出高电平时,继电器吸合,加湿器通电启动,进行喷雾降尘;当输出低电平时,继电器断开,加湿器停止工作。电路中在继电器线圈两端并联一个二极管(1N4001),用于保护继电器线圈,防止反向电动势损坏电路元器件;同时在加湿器供电回路中串联一个保险丝,防止短路,确保电路安全。

    3.8 蓝牙通信电路设计

    蓝牙通信电路采用BT04A蓝牙模块,该模块通过UART接口与STM32F103C8T6单片机通信,实现数据传输和指令接收。BT04A模块的VCC引脚接3.3V电源,GND引脚接地,TX引脚(发送端)连接至STM32的UART接收引脚(如PA10),RX引脚(接收端)连接至STM32的UART发送引脚(如PA9)。由于BT04A模块的逻辑电平为3.3V,与STM32单片机的逻辑电平一致,无需额外的电平转换芯片,简化了电路设计。电路中在VCC与GND之间并联100nF电容,滤波降噪,减少通信噪声干扰;同时在TX、RX引脚与STM32单片机之间串联1kΩ电阻,增强抗干扰能力,确保蓝牙通信稳定。BT04A模块上电后自动进入配对模式,手机端打开蓝牙搜索并配对成功后,即可实现与系统的双向通信,传输数据和控制指令。

    3.9 PCB设计

    根据上述硬件电路设计,使用Altium Designer软件绘制电路原理图和PCB图,PCB设计结合矿井环境特点,遵循以下原则:

    • 布局合理:将核心控制模块(STM32单片机)、传感器模块、显示模块、按键模块、报警模块、继电器模块、蓝牙模块分开布局,减少模块间的干扰;传感器模块尽量靠近PCB边缘,便于安装和采集环境参数;蓝牙模块远离继电器模块,避免电磁干扰。
    • 布线优化:电源线和地线尽量粗(电源线≥1mm,地线≥1.5mm),减少线阻和电压降,降低电源噪声;信号线尽量短、直,避免交叉布线和过长布线,减少电磁干扰;模拟信号(粉尘传感器输出信号)与数字信号分开布线,防止数字信号干扰模拟信号采集。
    • 抗干扰设计:在PCB上增加接地铜箔,将所有GND引脚连接至接地铜箔,增强抗干扰能力;在各模块电源引脚附近放置滤波电容,就近滤波,减少电源噪声;对传感器、蓝牙模块的引脚进行防护,涂抹三防漆,增强抗湿度、抗粉尘能力。
    • 安装与维护:PCB预留安装孔,便于固定在矿井现场的支架上;接口清晰,预留测试点,便于后续调试和维护;元器件布局紧凑,缩小PCB体积,适应井下狭小的安装空间。

    PCB图采用双面板设计,提高电路的稳定性和可靠性,绘制完成后进行PCB打样、元器件焊接和电路调试,确保各模块电路工作正常。

    第四章 系统软件程序开发

    4.1 软件开发环境

    本系统的软件程序开发基于Keil MDK5开发环境,该环境是ARM Cortex-M系列单片机常用的开发工具,支持C语言编程,具有强大的编译、调试功能,可实现程序的编写、编译、下载和调试,同时支持STM32固件库,为程序开发提供丰富的函数接口,简化程序开发流程,提高开发效率。

    手机端程序开发采用Android Studio开发环境,基于Java语言编程,实现与BT04A蓝牙模块的通信,完成环境数据的接收、显示、保存,以及远程控制喷雾功能的启停,APP界面设计简洁、易用,适合井下作业人员操作。

    软件开发过程中,采用模块化编程思想,将程序分为多个功能模块,每个模块负责实现特定的功能,模块间通过函数调用实现数据交互,提高程序的可读性、可维护性和可扩展性,便于后续功能优化和升级。

    4.2 软件总体设计思路

    系统软件总体流程如下:系统上电后,首先进行各模块初始化,包括STM32F103C8T6单片机初始化(系统时钟、GPIO、ADC、UART、I2C等外设初始化)、DS18B20温度传感器初始化、粉尘传感器初始化、OLED显示初始化、按键模块初始化、声光报警模块初始化、继电器模块初始化、BT04A蓝牙模块初始化;初始化完成后,系统读取默认阈值(若有手动设置的阈值则读取保存的阈值),进入正常监测模式。

    在正常监测模式下,系统周期性采集温度、粉尘浓度数据,进行滤波、校准处理后,将数据显示在OLED显示屏上;同时将数据通过蓝牙模块上传至手机端(若蓝牙已连接);系统实时将采集到的数据与预设阈值进行对比,判断是否存在异常,若存在异常则触发声光报警,并根据异常类型执行相应的控制操作(如粉尘超标启动喷雾);系统实时监听按键操作,若有按键按下则进入阈值设置模式,完成阈值设置后返回正常监测模式;系统实时监听蓝牙指令,若收到手机端的控制指令(开启/关闭喷雾),则执行相应操作,并将操作结果反馈至手机端。系统循环执行上述流程,确保各功能正常实现,直至系统断电。

    4.3 各模块软件程序开发

    4.3.1 系统初始化程序

    系统初始化程序是系统运行的基础,负责对各模块进行初始化配置,确保各模块能够正常工作,初始化程序主要包括以下内容:

    • STM32单片机初始化:配置系统时钟(72MHz),初始化GPIO引脚(设置输入/输出模式,如按键引脚为输入模式,报警、继电器、蓝牙引脚为输出模式),初始化ADC模块(用于采集粉尘传感器模拟信号),初始化UART模块(用于与蓝牙模块通信,波特率设置为9600bps),初始化I2C模块(用于与OLED显示屏通信),开启中断(如按键中断、UART接收中断)。
    • 传感器初始化:对DS18B20温度传感器进行初始化,发送复位指令和存在脉冲检测指令,确认传感器正常工作;对粉尘传感器进行初始化,设置红外LED的启停时序,确保传感器能够正常采集粉尘浓度信号。
    • OLED显示初始化:发送OLED初始化指令,配置显示模式、亮度、对比度等参数,清屏处理,在显示屏上显示系统标题(“矿井环境监测系统”)和初始界面(默认阈值、等待采集数据提示)。
    • 其他模块初始化:初始化按键模块(开启按键中断,消除按键抖动),初始化声光报警模块(设置报警初始状态为关闭),初始化继电器模块(设置继电器初始状态为断开,加湿器关闭),初始化蓝牙模块(设置蓝牙通信参数,进入配对模式)。

    4.3.2 传感器数据采集与处理程序

    传感器数据采集与处理程序负责实时采集DS18B20温度传感器、粉尘传感器的输出信号,进行滤波、校准等处理,得到准确的温度、粉尘浓度数值,为系统控制决策提供数据支持。

    • 温度数据采集与处理:通过STM32的GPIO引脚向DS18B20传感器发送采集指令,读取传感器输出的16位数字信号,经过校验(判断数据是否有效)后,解析出温度数据(整数部分和小数部分),转换为十进制数值。为提高采集精度,采用多次采集(每次采集间隔100ms,共采集5次)取平均值的方式,消除随机误差;同时对采集到的数据进行范围判断,若数据超出DS18B20的测量范围(-55℃~125℃),则视为无效数据,丢弃并重新采集。
    • 粉尘浓度数据采集与处理:通过STM32的GPIO引脚控制粉尘传感器的红外LED启动,延迟一段时间(确保传感器稳定工作)后,通过ADC模块采集传感器OUT引脚的模拟电压信号,将模拟信号转换为12位数字信号(0~4095)。根据传感器的校准公式(浓度=(数字信号/4095)×500μg/m³),将数字信号转换为实际的PM2.5粉尘浓度值。同样采用多次采集取平均值的方式减少误差,同时加入滑动平均滤波算法,消除高频噪声,确保数据稳定;若采集到的浓度值超出传感器测量范围(0~500μg/m³),则视为无效数据,丢弃并重新采集。

    数据处理完成后,将温度、粉尘浓度数值存储在指定的变量中,用于后续的显示、报警判断和蓝牙上传。

    4.3.3 OLED显示程序

    OLED显示程序负责将采集到的温度、粉尘浓度数据,预设的阈值,系统工作状态实时显示在OLED显示屏上,显示内容清晰、直观,更新及时,适合井下作业人员查看。程序采用模块化设计,包括OLED初始化函数、显示字符函数、显示数字函数、显示汉字函数、显示界面更新函数等,具体实现如下:

    • OLED初始化函数:向OLED显示屏发送一系列初始化指令,包括设置显示模式(页地址模式)、亮度(默认中等亮度)、对比度等参数,完成显示屏的初始化,清屏后显示系统标题。
    • 显示字符/数字函数:通过I2C协议向OLED发送字符、数字的点阵数据,支持不同位置、不同大小的显示,可显示0~9、A~Z、常用符号等,用于显示温度、粉尘浓度的数值和阈值。
    • 显示汉字函数:预先存储常用汉字的点阵数据(如“温度”“粉尘浓度”“上限”“下限”“报警”“喷雾”“蓝牙连接”等),通过函数调用,将汉字显示在OLED屏幕上,用于标识显示内容。
    • 显示界面更新函数:周期性(1次/秒)更新显示内容,将处理后的温度、粉尘浓度数值,预设的温度上下限、粉尘浓度最大值,以及系统工作状态(正常、温度报警、粉尘报警、喷雾中、蓝牙已连接/未连接)显示在对应的区域,确保显示内容与系统实际状态一致。

    OLED显示界面布局设计:屏幕上方显示系统标题“矿井环境监测系统”;中间左侧显示温度相关信息(“温度:XX.XX℃”“温度上限:XX℃”“温度下限:XX℃”),中间右侧显示粉尘浓度相关信息(“粉尘浓度:XXμg/m³”“粉尘上限:XXμg/m³”);屏幕下方显示系统工作状态(如“正常”“温度报警”“粉尘报警+喷雾中”“蓝牙已连接”)。

    4.3.4 按键阈值设置程序

    按键阈值设置程序负责处理按键操作,实现温度上下限、粉尘浓度最大值的手动设置与保存,程序通过检测按键的电平变化,识别按键操作,具体实现如下:

    • 按键中断处理:开启按键中断,当有按键按下时,触发中断,进入中断服务函数,通过延时消抖(10ms)确认按键有效,避免按键抖动导致的误操作。
    • 阈值设置模式切换:默认状态下系统处于正常监测模式,当长按确认键(3秒)后,系统进入阈值设置模式,OLED显示屏显示当前设置的阈值,并提示“设置温度上限”,此时可通过增加、减少键调整温度上限;按下确认键,保存温度上限,切换至“设置温度下限”,同理调整并保存温度下限;再次按下确认键,切换至“设置粉尘上限”,调整并保存粉尘浓度最大值;最后按下确认键,退出阈值设置模式,返回正常监测模式,所有设置的阈值自动保存到STM32的Flash中,断电后不丢失。
    • 阈值范围限制:在阈值设置过程中,对温度上下限、粉尘浓度最大值进行范围限制,温度上限范围为0~60℃,温度下限范围为0~温度上限(确保下限不大于上限),粉尘浓度最大值范围为0~300μg/m³,若调整超出范围,阈值保持不变,并在OLED显示屏上提示“超出范围”。

    4.3.5 声光报警程序

    声光报警程序负责根据传感器采集的数据与预设阈值的对比结果,触发声光报警,提醒用户异常情况,具体实现如下:

    • 报警判断逻辑:系统实时将采集到的温度、粉尘浓度数值与预设阈值进行对比,若温度<温度下限或温度>温度上限,触发温度报警;若粉尘浓度>粉尘浓度最大值,触发粉尘报警,同时启动喷雾功能。
    • 报警控制:当触发报警时,STM32单片机控制对应的GPIO引脚输出低电平,有源蜂鸣器通电发声,红色LED灯闪烁(闪烁频率为1次/秒);当温度恢复至阈值范围内、粉尘浓度降至阈值以下时,自动停止报警(蜂鸣器停止发声,LED灯熄灭);同时支持手动关闭报警(短按确认键),手动关闭报警后,若异常仍未解除,10秒后重新触发报警。
    • 报警优先级:若温度异常和粉尘浓度异常同时发生,系统优先触发粉尘报警(因为粉尘超标可能

    赞(0)
    未经允许不得转载:171主机测评 » 基于STM32的矿井环境监测系统设计(完整项目)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址