摘 要
为了尽早发现和预防各类危险气体减少对人的危害,保护自己和个人或公共财产的安全,需要使用自动报警器对人进行预警。
本文中作为危险气体检测系统的主要技术采用了传感器和单片机,该系统基于STM32F103单片机无线数据传输系统和通过气体传感器MQ-4对危险气体的浓度进行监测,并通过AD模数转换模块将模拟量转换为数字值,再发送给单片机,LCD1602液晶显示屏显示当前检测到的气体浓度值,单片机通过ESP8266无线模块和手机进行传通讯将当前数据发送至手机上显示,通过按钮设置气体浓度报警上限数值,当气体浓度超过上限值时,启动蜂鸣器进行报警。实现了液晶显示危险气体的浓度和报警的功能,对气体检测报警系统的实现技术展开了较为深入地研究,为有害气体监测技术的实现提供了参考。
关键词:气体监测;传感器;单片机;无线数据传输
1 控制系统设计
1.1系统方案设计
本次设计主要是用来检测有害气体,具有报警功能的设备。目前化工厂内的工作环境并不理想,通过实习我发现整个厂区内的危险气体如甲烷等浓度特别高,工人作业时有害气体吸入量特别的大,而且一旦气体泄漏后极易造成火灾、爆炸等事故,危害极大。所以,本设计应当实现以下三项功能:检测室内的危险气体浓度、达到对应浓度报警、手机远程显示室内气体浓度值。本设计的完成,整体控制方案的选择尤为重要,根据上面提到的要求,下面列举出几种可行的控制方案,并进行对比,选出最适合本设计的方案。
方案一:
采用单片机作为控制器,将功能部件集成在芯片上,集成度高、体积自然小、内部总线结构的单片机,减少了芯片之间的通信,使其具有可靠性和抗干扰能力。 由于单片机的体积小,可以很容易采取电磁屏蔽或密封措施,适合在恶劣环境下工作。 而且,单片机指令丰富,功耗低,电压低,易于生产便携产品,易于扩展,可靠性高,价格低,经济效益高,能达到预期的功能。
方案二:
使用集成电路作为控制器,电路很简单。由于集成电路的引入,集成电路简化了设计、调试和安装完整电路。集成电路具有很高的可靠性优势。但是集成电路很难理解。许多集成电路指标在修复和拆卸方面非常困难,修理的成本也会增加。当集成电路内电路中的部分电路出现故障时,通常必须整块一起修理。
综上所述,集成电路如果出现故障不方便拆卸与修理,而单片机既能满足本设计所要实现的功能,又具有低成本的优点,故选择方案一。
1.2系统工作原理
本次设计采用LED1602液晶显示器显示采集到气体浓度值,单片机作用为STM32F103,MQ-4传感器时刻检测当前环境气体浓度。按键用来设定气体浓度报警上限值,通过模转换将采集到的气体浓度值模拟值转换为数字量,并传输给单片机进行计算。ESP8266无线模块用于单片机和手机之间的通信,将采集到的数据无线发送到手机端进行展示。包含两个按键,用来设置气体浓度报警上限值。危险气体浓度值大于设置的上限时,单片机驱动三极管控制蜂鸣器进行报警。系统的工作原理图如1.1所示。
图1.1 系统工作原理图
2 硬件设计
2.1 主电路
2.1.1 单片机最小系统
单片机最小系统由晶振电路、STM32F103芯片和复位电路组成。只要有这三者存在,单片机就可以正常的工作。[1]
单片机最小系统框图如图2.1所示。
图2.1 单片机最小系统框图
2.1.2 STM32F103单片机
STM32F103单片机是一款低功耗、高性能的微控制器,是STC公司早期生产用于工业控制的单片机。其作用是控制各种传感器和外设,自行计算处理得到的数据和信号,并进行相应的操作[2],在工业生产中起到大脑的作用。
对于本次设计选择的是STM32F103C8T6单片机。此单片机和51系列相比多了很多功能,不但运行速度比51单片机要快很多,自带2个AD转换,方便我们在设计烟雾的时候免去了需要加外部ADC进行转换,非常方便;
STM32有着很强大的通信功能和控制功能。这一点是51单片机无法比拟的。因为51单片机只有1个串口进行通信,而32单片机具有5个串口进行通信,所以对一些要求用串口进行通信的模块而且就不需要通过CD4052等双串口模块来转换,所以这一点被市场上广泛的运用,32单片机因为本身可以进行多种不同的时钟模数来进行工作,所以在功耗要求比较严格的产品中占有一席之地。
STM32特点:
(1)STM32C8T6系列的起振晶部分采用了RTC,低负载的方式,而没有像传统的比较廉价的圆柱晶振。
(2)引脚个数为48个。
(3)工作频率为72MHZ。
(4)单片机具有3个普通定时器和1个高级定时器。
(5)单片机具有2个2位/16通道的ADC模数转换。
(6)使用了3.3V稳压芯片,可以保证最大输出300MA电流。
(7)支持ST-LINK和JTAG调试下载。
(8)存储资源为64kb byte FLASH和20byte Sram。
STM32实物图如图2.2所示。
图2.2 STM32F103C8T6 实物图
(1)电源指示灯LED(PWR通常为红色):如果电源指示灯亮亮说明单片机正常运行,如果较暗或者闪烁,表示此单片机可能存在故障。
(2)用户LED(PC13):这个功能的使用大大的方便了我们进行一些比较简单的功能测试,如单片机的运行状态等,方便初学者进行更好的测试。
(3)单片机上采用了跳帽的方式,我们可以对stm32进行3种编程方式。如用户的SARM、闪存和系统的存储器。
(4)为单片机的复位电路。
(5)8M晶振:主要是用于设置单片机系统的频率为72MHZ。
(6)32.768KHz晶振:可供内置RTC使用,避免了需要专门的时钟芯片进行定时器处理等。
3 软件设计
3.1 系统主程序设计
系统的主流程图如图3.1所示。各个模块开始工作开始,实时检测甲烷气体浓度值,并进行相应的报警操作。启动的步骤为:ESP8266wifi模块初始化,MQ-4传感器接收到目前的气体浓度,按下按键设置报警上限。当超出上限值时,单片机驱动三极管来控制蜂鸣器触发警报,单片机将检测到的气体浓度值数据通过ESP8266wifi无线模块发送给手机端进行显示。
图3.1 系统流程图
3.2.5 报警程序设计
主函数执行后,通过检测来判断是否发生中断,用设定好按键的形式来设定气体浓度的报警上限,检测是否超出了报警上限,通过函数的循环来判断是否超出浓度上限,如果超过,那么蜂鸣器报警。报警流程图如3.6所示:
图3.6 报警流程图
4 结 论
通过以上分析本系统控制器方面采用STM32F103C8T6单片机完全符合本设计的控制需求。MQ-4烟雾传感器完成采集室内的甲烷气体浓度,并通过A/D转换芯片ADC0832将数据传递到LCD1602显示屏上,并设定上限值,只要数值超过设置的上限值就会立马报警,从而通知人及时快速到达现场清理甲烷气体,保障室内甲烷气体正常浓度值的操作。具体工作体现在整体电路的设计与制作,系统调试,程序的编写等多个步骤。其中电路设计为重点,本设计通过五个模块达到了检测室内的气体浓度、达到对应浓度报警、显示当前环境下的气体浓度三个功能。并首次通过自己的努力,在Altium Designer10上绘出PCB图。
本设计成功完成了采集数据、设定数值和显示屏显示的功能,具有精度高,便于携带,成本较低等优点。通过该系统的每个环节从各个方面展现出这个系统的设计思路以及原理。例如从硬件设计和软件设计方面等等。运用了许多技术比如单片机、传感器、信息的采集和处理等方面,对于不同室内空气环境有着很好的监控作用。通过在工厂内的实地测试,可以正常实现所有操作,所以本设计有实际应用价值,可以应用于化工厂附近的住宅区,生产车间等高污染区域。