一、项目介绍
摘 要
为了解决传统厨房安全检测设备功能单一、反应迟钝、误报率高这些问题,本文设计出一套基于STM32的厨房燃气-烟雾双重检测以及应急系统。本系统用STM32F103C8T6单片机做核心控制器,集成MQ-4燃气传感器、MQ-2烟雾传感器、DS18B20温度传感器、火焰传感器等,可以实现厨房环境各方面的实时监测。当检测到燃气泄漏或者烟雾浓度超标的时候,系统可以发出声光报警,并且会自动开启排风扇进行通风换气;当检测到明火的时候,系统会自动切断燃气阀门,并启动水泵灭火。同时系统用ESP8266 Wi-Fi模块实现了远程报警功能,把险情信息立即发送给用户的手机。实际调试和测试结果表明,该系统运行稳定,反应快,可靠性好,可以明显提高厨房的安全防护能力,有较好的实用性及推广前景。
关键词: STM32;燃气检测;烟雾监测;应急控制
主要研究内容
本课题主要的研究内容有系统方案设计、硬件电路设计、软件程序编写和系统测试四个部分。就系统方案设计而言,首先要分析厨房安全监测的实际需求,确定系统应该具有的燃气检测、烟雾检测、温度检测、火焰检测、声光报警、自动排风、阀门控制、水泵灭火和远程通信等全部功能。在此基础上确定以STM32F103C8T6单片机为核心控制器的系统总体结构,完成各个功能模块的方案选择和任务分配,保证系统可以高效地协调地完成各种监测和控制任务。
从硬件电路设计上来说,主要完成了STM32最小系统的时钟电路、复位电路、电源电路。同时对燃气传感器和烟雾传感器的信号调理电路进行设计,使传感器输出的模拟信号可以稳定、可靠地送入单片机进行模数转换。另外还要设计继电器驱动电路来控制排风扇、水泵的开启和关闭,设计舵机控制电路来控制燃气阀门的开闭,设计蜂鸣器驱动电路来发出声音和光效的报警,设计OLED显示电路用来显示相关信息,设计按键电路用来进行参数的设置,设计ESP8266无线通信电路来进行远程报警。软件程序开发时需要写传感器数据采集与滤波算法、阈值判断与应急控制逻辑、OLED显示驱动、按键扫描程序和Wi-Fi模块通信程序。最后搭建实验环境做单元测试和整机联调,保证数据采集的准确性、报警响应的及时性、应急动作的可靠性、远程通信的有效性,使系统可以稳定可靠地工作。
系统总体架构设计
本系统总体结构采用模块化的设计思想,把整个系统分成传感器采集模块、主控模块、输出控制模块、人机交互模块、无线通信模块五个部分。传感器采集模块可以获取厨房环境信息,即MQ-4气体传感器来检测天然气、甲烷的浓度、MQ-2烟雾传感器来检测烟雾的浓度、DS18B20数字温度传感器来检测环境温度、火焰传感器来检测是否有明火。传感器把物理量转换成电信号,然后以模拟量或者数字量的形式传递给主控模块进行处理。传感器采集模块选择的目的是为了让厨房环境更加适应。因此选择了具有较强的抗干扰能力、响应速度快、稳定性好等特点的传感器产品。
主控模块采用的是STM32F103C8T6单片机作为主要处理器,该单片机使用的是ARM Cortex-M3内核,工作频率可以达到72MHz,存储容量为64KB,片内的RAM有20KB,片内包含有12位的ADC模数转换电路以及多通信接口,完全可以满足本系统数据处理以及控制的要求。主控模块负责把传感器采集模块传来的信号做模数转换以及数据处理,然后依据事先设定的算法来判定当下安全情况并据此下达应急指令到输出模块。输出控制模块由蜂鸣器发出声音光报警、继电器控制排风扇水泵启停、舵机控制燃气阀门开关。人机交互模块由OLED显示屏实时显示各项监测参数、系统状态,3个独立按键做参数设置、手动控制。无线通信模块使用ESP8266 Wi-Fi模块,负责把报警信息经由无线网络传送到用户的手机上,从而达到远程监控的效果。各个模块之间依靠合理的接口来实现协调工作的,从而构成一个完整的厨房安全监测和应急处理系统。
主要器件选型
本系统主要根据性能、成本、功耗、开发资源等条件,最后确定选用STM32F103C8T6单片机。该单片机使用的是ARM Cortex-M3内核,工作频率可达72MHz,有64KB的Flash存储空间和20KB的SRAM,在片内还集成有2个12位ADC模数转换器、多个16位定时器等模块。STM32的运算速度比传统的51系列单片机要高很多,并且它拥有更多的外设资源,可以满足本系统对于多个传感器信号采集以及实时控制的要求。同时stm32系列单片机资料齐全,开发环境好,编程成本低,适合系统开发调试。该芯片使用的是LQFP48封装,共有48个引脚,其中可利用的I/O口有39个,可以满足本系统各个功能模块之间的连接。
在传感器的选择上,根据检测对象的不同,选用不同的传感器。燃气检测用MQ-4气体传感器,该传感器对甲烷、天然气等可燃气体有较高的灵敏度,检测范围广,响应快,工作电压为5V,输出为模拟电压信号,便于单片机进行模数转换。烟雾检测采用MQ-2烟雾传感器,MQ-2烟雾传感器能检测液化气、丙烷、氢气、烟雾等多种气体,稳定性好,使用寿命长。温度检测使用DS18B20数字温度传感器,该传感器是单总线通信方式,只需要一个I/O口就能完成数据的读取,体积小、精度高、抗干扰性强等特点得到体现,测温范围为-55℃到125℃,完全能满足厨房环境温度监测的要求。火焰检测使用的是红外接收式火焰传感器模块,它能检测760nm到1100nm范围内的红外光,对于火焰的光谱很敏感,响应时间小于2微秒,直接和单片机I/O口相连。在无线通信模块的选择上,本文所用到的无线通信模块为ESP8266 Wi-Fi模块,此模块自带串口通信功能,并内建TCP/IP协议栈,可以支持AP、STA、AP+STA三种模式,通过AT命令进行配置,体积小巧、能耗低、价格便宜,适合做远程报警系统使用。
主要研究内容
本课题主要的研究内容有系统方案设计、硬件电路设计、软件程序编写和系统测试四个部分。就系统方案设计而言,首先要分析厨房安全监测的实际需求,确定系统应该具有的燃气检测、烟雾检测、温度检测、火焰检测、声光报警、自动排风、阀门控制、水泵灭火和远程通信等全部功能。在此基础上确定以STM32F103C8T6单片机为核心控制器的系统总体结构,完成各个功能模块的方案选择和任务分配,保证系统可以高效地协调地完成各种监测和控制任务。
从硬件电路设计上来说,主要完成了STM32最小系统的时钟电路、复位电路、电源电路。同时对燃气传感器和烟雾传感器的信号调理电路进行设计,使传感器输出的模拟信号可以稳定、可靠地送入单片机进行模数转换。另外还要设计继电器驱动电路来控制排风扇、水泵的开启和关闭,设计舵机控制电路来控制燃气阀门的开闭,设计蜂鸣器驱动电路来发出声音和光效的报警,设计OLED显示电路用来显示相关信息,设计按键电路用来进行参数的设置,设计ESP8266无线通信电路来进行远程报警。软件程序开发时需要写传感器数据采集与滤波算法、阈值判断与应急控制逻辑、OLED显示驱动、按键扫描程序和Wi-Fi模块通信程序。最后搭建实验环境做单元测试和整机联调,保证数据采集的准确性、报警响应的及时性、应急动作的可靠性、远程通信的有效性,使系统可以稳定可靠地工作。
二、文档介绍
三、项目设计
本系统硬件电路设计以模块化、可靠性、抗干扰性三大原则为指导,将整个系统分成单片机最小系统、传感器检测电路、输出控制电路、人机交互电路、无线通信电路五个部分。系统以STM32F103C8T6单片机作为主要的控制单元,各个功能模块经由各自的接口同STM32F103C8T6单片机相连,从而构建起一个整体的硬件平台。单片机最小系统是单片机正常工作必须具备的条件,包括电源电路、时钟电路和复位电路,其内部结构主要包括微处理器、数据存储器、程序存储器、并行I/O口、串行口、定时器计数器、中断系统和特殊功能寄存器等,它们用片内单一总线连接在一起。在硬件电路的设计过程中,考虑到厨房环境的特点,在传感器信号输入端加装了滤波电路来抑制干扰,在输出控制端加上了隔离保护装置来防止反向电动势损坏单片机,保证整个系统的长期稳定可靠。整个硬件系统结构紧凑、功能齐全,给软件开发提供了一个可靠的硬件平台。以上就是单片机最小系统的简单结构。
STM32F103C8T6单片机是本系统的核心控制器件,该单片机是一款低电压、高性能的微处理器,基于ARM Cortex-M3内核设计,工作频率可达72MHz,具有64KB的Flash存储器和20KB的SRAM。该芯片用LQFP48封装,共有48个引脚,可用的I/O口有39个,工作电压范围是2到3.6V。该芯片集成有2个12位ADC模数转换器、多个16位定时器、USART、I2C、SPI等多种通信接口等,方便传感器信号的采集以及外设的控制。stm32f103c8t6比传统的51系列单片机速度要快得多,外设资源也更充足,功耗小得多,可以满足本系统的多路传感器信号采集和实时控制的要求。该芯片支持ST-LINK以及JTAG调试下载,有利于程序的开发和调试。
传感器检测电路设计
温度检测属于厨房安全监测的一部分,本系统使用DS18B20数字温度传感器对环境温度进行采集。DS18B20是美国达拉斯半导体公司研制出的单总线技术数字温度传感器,它把半导体温敏器件、A/D转换器、存储器等集成在一个很小的集成电路芯片上。该传感器使用单总线通信方式,只需要一根数据线就可以和单片机完成双向通信,占用I/O资源少,体积小、精度高、抗干扰能力强等特点,测温范围是-55℃到125℃,可以满足厨房环境温度监测的要求。传感器输出信号直接连接到单片机的引脚上,用10K上拉电阻实现电气隔离和防干扰的效果。相比K型铠装热电偶、铂铑热电偶等昂贵、使用复杂的温度传感器来说,DS18B20性价比高、使用方便。
系统主程序流程
系统主程序属于整个软件的主要控制部分,它对各个功能模块的工作进程以及时间顺序实行协调掌控。主程序采用顺序执行和中断响应结合的方式,在保证数据采集实时性的同时,也考虑到了系统的能耗问题。系统上电后主程序先做初始化工作,即单片机时钟初始化、GPIO引脚配置、ADC模数转换器初始化、定时器初始化、串口初始化、I2C总线初始化、OLED显示屏初始化。完成以上初始化工作之后,系统就进入了主循环,不断地重复执行传感器数据采集、数据处理、阈值判断、显示刷新、通信检查等任务。为提高系统的响应速度,按键扫描、串口数据接收等功能采用中断方式实现,按键按下或者无线数据接收完毕之后,系统就停止主循环去处理相应的事件。
主程序完成初始化之后会显示系统启动成功的提示信息,然后就进入到一个不断地读取各个传感器数据的循环当中。每次循环中程序先读燃气浓度、烟雾浓度的模拟电压值,用单总线读取DS18B20的温度值,用I/O口检测火焰传感器的电平状态。程序得到原始数据之后,对其进行数字滤波来消除偶然的噪声干扰,接着利用事先标定过的转换公式求出各个参数的准确值。接着是阈值判断,把计算得到的浓度值同用户设定的报警阈值做比较,大于等于阈值就按超标类型、严重程度做出相应报警、控制操作。最后刷新OLED显示屏的数据,用Wi-Fi模块检查有无远程控制指令到达,全部主循环使用非阻塞方式,不等某个操作完成后就进行下一个任务的处理。
传感器数据采集程序
传感器数据采集程序主要是对厨房环境各项参数进行获取,把物理量转化成可以被后端处理的数字量。对气体传感器输出的模拟电压信号,用STM32片内12位ADC模块进行模数转换。ADC采集使用连续转换模式,为了保证采集到的数据更加稳定,程序对于每一个采样通道连续采样多次数据,然后使用中位值平均滤波算法处理,即将最大值、最小值去掉,剩下的求平均值,从而达到抑制偶然性干扰和周期性噪声的效果。ADC的参考电压是3.3V,通过计算可得输入模拟电压值,然后根据传感器输出电压与气体浓度的标定关系曲线,得到燃气浓度和烟雾浓度的数值。为了保证浓度计算的准确性,程序在正式使用前做了标定工作,在洁净空气中输入传感器输出值作为基准零点。
对DS18B20温度传感器数据的读取,程序严格按照单总线协议要求,按时序控制信号。读取温度时需要经过四个步骤,先发出复位脉冲,把总线拉低后释放,等传感器发出现存在脉冲响应;再跳过ROM命令直接对传感器操作;然后发出温度转换命令开始温度测量;最后发出读取暂存器命令连续读取16位温度数据。由于温度转换要经过一段时间,所以程序在发出温度转换命令之后会有一段延时才读取数据。读回来的16位温度数据是以二进制补码的形式存在的,其中高5位为符号位,低11位是温度值,将温度值乘以0.0625就可以得到实际温度值。火焰传感器数据读取比较简单,只需要读取连接该传感器I/O口的电平状态,低电平为检测到火焰,高电平为未检测到火焰。
显示与按键程序
显示和按键程序完成系统的人机交互功能,即对OLED显示屏的参数显示以及按键输入的识别处理。OLED显示屏用SSD1306驱动芯片做I2C总线和单片机通信。显示程序主要是初始化、清屏、显示字符、显示数字等基本功能。初始化函数按照SSD1306芯片要求,依次发送显示关闭、设置显示时钟、设置复用率、设置显示偏移、设置起始行、设置对比度、设置电荷泵、设置寻址方式、设置段重定向、设置行扫描方向、开启显示等命令来完成显示屏的初始化配置。显示字符函数要配合字库使用,程序把需要显示的文字以点阵的形式存放在数组里,调用显示函数时会把点阵数据一行行地写入到显示存储器中,从而在屏幕上显示出现需要显示的文字、数字等。利用OLED显示屏可以方便、直观地了解到目前厨房安全状态。
总 结
本课题完成的是以STC89C51为控制器的厨房燃气-烟雾复合检测与应急报警系统的方案设计及程序编写。方案设计阶段确定了系统需要具有的功能有燃气检测、烟雾检测、温度检测、火焰检测、声光报警、自动排风、阀门控制、水泵灭火、远程通信等,完成总体架构设计及器件选型。在硬件设计阶段完成STM32最小系统电路、传感器检测电路、输出控制电路、人机交互电路和无线通信电路的设计。软件设计阶段完成传感器数据采集程序、显示和按键程序、报警和应急控制程序、无线通信程序的编写工作。调试验证阶段对各个模块进行了功能测试以及系统联调,保证系统采集数据准确,报警及时,应急可靠,通信有效。整个系统的结构合理,功能齐全,达到了预定目的。
本系统相比传统的厨房安全监测设备有诸多不同的地方。采用燃气、烟雾、温度、火焰四个参数的复合监测方式,克服单个传感器的盲区问题,用多传感器数据融合降低误报率和漏报率。二是建立了分级报警和应急联动系统,对险情的轻重缓急作出区分并予以不同的应对办法。三是实现了自动应急控制功能,在检测到危险的时候可以自动开启排风扇、关闭燃气阀门、启动水泵灭火。四为将Wi-Fi无线通信功能集成进去,可以实现远程报警、信息查询等功能。五是结构紧凑、成本低,有较高的推广价值。
尽管本系统已经实现了预期的功能,但是还存在不足。传感器的精度、稳定性不高,气体传感器对温度、湿度敏感度大;报警阈值采用固定设置,不能进行自适应调节;远程通讯依靠Wi-Fi网络,没有备用通道;系统缺少数据存储与统计分析功能。未来的可以使用更高级别的传感器、温度湿度补偿、自适应阈值算法、备用通信方式GSM模块等设备和软件开发出相应的手机APP。经过这些改进之后,系统的性能就会得到进一步的提高,更好地适应厨房安全监测的实际需要。