王 东,莫 先
(重庆理工大学 计算机科学与工程学院,重庆 400054)
基于STM32智能家居的燃气检测系统设计与实现
王东,莫先
(重庆理工大学 计算机科学与工程学院,重庆400054)
摘要:针对厨房中燃气管道接口、燃气灶、燃气热水器等可能出现的燃气泄露问题,设计并实现了基于低功耗系列单片机——STM32L系列的燃气泄露和温度检测系统。详细介绍了系统的总体设计、硬件设计以及软件设计,通过实验对系统进行测试,实现了燃气浓度和温度的实时、连续、可靠的检测,测试结果验证了系统的实用性和有效性。
关键词:STM32;燃气检测;温度检测;智能家居
随着科学技术的进步以及国民经济的快速发展,液化气和天然气逐渐成为我国居民的主要燃料。燃气在为人们提供经济、快捷、生态生活的同时,也会由于使用不当导致燃气泄漏,因此引发的事故会严重损害人们的生命财产安全。液化气的主要成份是CO,如果发生泄漏,当屋内的CO浓度高于0.06%时,人的身体会出现头痛、头晕、呕吐、恶心、四肢乏力等症状;当CO浓度超过0.1%时,持续吸入半小时,人会昏睡,进而昏迷;达到0.4%时,持续吸入1 h就可导致死亡,可见当燃气泄露时及时发现并妥善处理极为重要。天然气主要由甲烷组成,不同于CO,天然气无毒、无害。但如果发生天然气泄漏,当室内天然气的浓度较高时,室内的O2浓度不能保证正常的O2呼入,也会致人死亡。无论何种燃气,将它们用做燃料时,当其泄露在空气中超过一定浓度,就会发生爆炸,造成巨大的生命财产损失[1]。
基于低功耗单片机STM32L系列的室内燃气泄露监测系统能实时掌握室内温度和燃气浓度的变化,当在室内检测到可燃气体时会自动报警,提醒人们发生室内燃气泄漏,方便人们及时进行处理,为家庭安全提供保障[2]。
1系统总体介绍
本系统主要由MQ-4燃气检测传感器、DS18B20温度检测传感器、LCD显示屏、STM32L151单片机、电源模块和报警装置组成。
1.1MCU 介绍
采用ST低功耗L系列单片机—STM32L151作为系统的主控芯片。
STM32L处理器的工作模式划分为6种,使其在任何设定时间内都能以最低的功耗完成任务。具体模式如下:
1) 10.4 μA低功耗运行模式:32 kHz运行频率;
2) 6.1 μA低功耗睡眠模式:1个计时器工作;
3) 1.3 μA 停机模式:实时时钟(RTC)运行,保存上下文,保留RAM内容;
4) 0.5 μA 停机模式:无实时时钟运行,保存上下文,保留RAM内容;
5) 1.0 μA待机模式:实时时钟运行,保存后备寄存器;
6) 270 nA待机模式:无实时时钟运行,保存后备寄存器
STM32L根据当前所处的状态实现6种模式的切换,保证了功耗性。
1.2MQ-4天然气、甲烷传感器模块介绍
MQ-4气体传感器使用的气敏材料是在空气中电导率较低的 SnO2。当MQ-4所在的环境中有可燃气体存在时,MQ-4的电导率将会随周围可燃气体浓度的增加而增大。使用较简单的电路即可将电导率的变化转换为与该气体浓度相对应的模拟信号输出。 MQ-4气体传感器对甲烷的灵敏度较高,对丙烷、丁烷也有较好的敏感度。MQ-4可检测多种可燃性气体,特别是天然气,是一款适合多种应用的低成本传感器[4]。
MQ-4适用于家庭或工厂的甲烷气体、天然气气体等的检测,可测试天然气、甲烷的浓度范围为(300 ~10 000)×10-6。
图1 MQ-4模块
1.3DS18B20温度传感器介绍
温度检测时一般选用热敏电阻作为传感器,可检测温度范围为40~90 ℃。热敏电阻同其他检测方法相比其稳定性不高,准确度较低,对于1 ℃ 以下的温度检测适用性不大,它必须经过传感器内部专门的ADC转换成数字信号才能由MCU进行读取[6]。
目前,通常使用的MCU与外部设备之间进行数据通信的串行总线方式主要有spi总线、i2c总线等。i2c以串行方式通过1条数据线和1条时钟线与外部设备进行通信,SPI则以串行方式通过1条数据发送线、1条数据接收线、1条时钟线的三线方式与外部设备进行通信。DS18B20使用1条总线的方式与外部设备进行通信,发送数据和接收数据都在一条总线上面进行。 MCU只需要1个IO口就可以和挂在上面的许多外部设备进行通信,从而简化逻辑电路和减少IO口的使用。这种单总线通信方式与其他通信方式相比具有极大的优势[7]。单总线通信方式只使用一根总线实现MCU与外部设备的通信,数据和控制信号传输等都通过这根总线分时完成[8-9]。MCU或从机通过1个三态端口或漏极开路接到该总线。当设备不发送数据时,释放总线,把总线分配给其他外部设备使用。由于IO口驱动能力有限,因此要在单总线上接1个外部上拉电阻,当总线处于空闲状态时为高。
DS18B20数字信号输出温度检测传感器与传统温度传感器的不同之处在于使用单总线与MCU通信,采用直接数字输出,转换速度快,可扩展性强。
1.4系统总体架构
系统总体架构包括前端2个MQ-4和2个DS18B20温度传感器,可分别采集厨房和燃气热水器气管处的燃气浓度和温度。MQ-4有AO和DO输出,DO直接输出至蜂鸣器进行报警,AO输出至STM32L151 PA0 ADC口进行模数转换,结果通过LCD和串口显示。DS18B20使用PA1口进行单总线数据传输,温度结果通过LCD和串口打印显示。当用户需要温度和浓度数据时,可以发送一条指令给GSM系统,系统收到指令时,会把温度信息和燃气浓度信息发送到手机。当燃气浓度高于一定值时,系统也会主动发送数据信息到手机。整个系统采用聚合物锂电池供电,系统总体架构如图2所示。
2系统硬件设计
2.1燃气检测硬件设计
图3为MQ-4的基本电路。MQ-4传感器施加了2个电压:加热电压(VH)和测试传感器电压(VC)。其中,VH电压用于加热传感器,为其提供工作所需的温度,可采用AC或者DC。 VRL是传感器串联的负载电阻(RL)上的电压。VC是为负载电阻RL提供测试的电压,须采用DC。
图2 系统总体架构
图3 MQ-4基本电路
图4为MQ-4接口,由上到下分别有4个接口。前面2个分别为电源正、负级接口;第3个为D0输出接口。当检测到有燃气泄露时,输出低电平,否则输出高电平,此接口直接接蜂鸣器,当有燃气泄露时可以进行报警;最后一个接口为AO输出接口,相对无污染状态下输出0.1~0.3 V,最高浓度电压为4 V左右,因此接MCU的ADC接口直接进行模数转换,得到燃气浓度的精确值。
图4 MQ-4接口
2.2温度检测硬件设计
温度传感器复位及应答时序流程:温度传感器在进行复位和应答时,首先是MCU释放总线;然后将总线拉为低电平,延时480 μs后,把总线拉为高电平;等待15~60 μs,温度传感器将返回MCU一个低电平信号,该信号即存在信号,MCU检测到存在信号后,释放总线;最后,MCU与温度传感器达成通信协议以进行通信。DS18B20复位及应答示意图如图5。
图5 DS18B20 复位及应答示意图
写数据时,MCU首先将总线拉低,之后芯片会对总线上的数据进行采样。具体操作方法为:MCU先将总线拉为低电平保持15 μs,如果写0,延时至少45 μs,之后再将其拉高;如果写1,先将其拉高,延时至少45 μs。DS18B20写时间隙见图6。
图6 DS18B20 写时间隙
读数据时, MCU首先释放总线,然后把总线拉为低电平,延时保持1 μs以上,该信号表示即将开始读,然后释放总线,温度传感器发送内部数据位给总线,MCU会在15 μs内读完总线上的数据,读完后不解除对总线的控制权,保持45 μs的延时以保证数据读取所需时间。DS18B20读时间隙见图7。
MCU与温度传感器进行数据传输主要依靠MCU 根据单总线协议在一条总线上面产生各种时序实现。
图7 DS18B20读时间隙
2.3LCD硬件设计
LCD采用四线SPI协议与MCU进行通信。 SPI 接口一般由4根数据线组成,包括CS片选信号线,SCLK时钟信号线,MISO主机输入、从机输出数据线和MOSI主机输出、从机输入数据线。其中,CS为使能信号,只有当使能信号为低时,该设备才被选中。选中后,MOSI和MISO可进行数据传输[10]。
读操作为:在前8个时钟主机发送地址给从机,后8个时钟从机接收到地址后返回数据给主机。当主机发送地址给从机时,会在地址的最高位加0以表示读,其余后7位为从机内部寄存器地址,从机接收到高位读标志和后面的7位寄存器地址后,会在后面返回寄存器的值给主机,完成1次读操作。读操作时序图见图8。
写操作同样由16个时钟组成,前8个时钟主机发送8位将要写的地址到从机,后8个时钟主机发送8位要写入的数据。当写操作开始时,首位表示写标志位,SPI协议写操作规定首位为1,因此,在写操作时,8位数据由1位写标志位和7位地址组成。当从机接收到由1位写标志位和7位地址组成的数据后,从机等待第2次发送的数据,将第2次发送的数据写入刚刚的地址寄存器,完成1次写操作。写操作时序图见图9。
图8 读操作时序图
图9 写操作时序图
LCD液晶显示屏主要用于室内燃气浓度高时的实时显示和温度的实时显示。图10为LCD详细电路。
图10 LCD详细电路
2.4电源管理
系统采用锂电池供电。充电器输出5 V电压直接提供管理锂电池的充电芯片,使用管理芯片实现对锂电池的充电管理。锂电池充电电压为5 V,容量为500 mAh。由于锂电池在放电过程中输出电压会下降,而系统工作在3.3V,因此需要增加1个稳压器以保证系统正常工作。稳压芯片的输出电压稳定在3.3 V,可以输出500 mA的电流,压差最低可达70 mV,外围电路简单,满足电源要求。电源管理电路见图11。
图11 电源管理电路
3系统软件设计
3.1燃气检测软件设计
由于MQ-4会根据检测气体浓度状态的不同直接输出模拟信号,输出的信号实时更新,因此燃气检测采用ADC和DMA方式进行传送。ADC能把模拟电压直接转换成数字信号,便于存储器存储和传送。软件设计流程如下:首先初始化ADC和DMA,使ADC工作于DMA方式,进行数据传输;ADC获得总线上的电压值后,自动将电压转换成12位的数字信号,此时DMA把ADC转换后的数字信号传送到内存,期间无需CPU干预,可节约CPU资源;将内存的值除以4 096后再乘以4获得当前电压值(ADC为12,所以除以4 096,浓度最高时电压为4 V,所以乘以4),将电压值乘25获得浓度(传感器特性是电压线性变化),最后送显示。按照该流程循环得到实时燃气浓度值,如图12所示。
3.2温度检测软件设计
首先,MCU发送指令初始化DS18B20,让通信双方达成基本通信协议。由于总线上只挂了一个DS18B20温度传感器,因此直接跳过ROM发出温度转换指令0x44h,DS18B20接收指令后准备好温度数据,在读温度前至少等待750 μs,之后重新初始化读取存储器中已经准备好的数据,然后经过计算获得准确温度值,最后将计算出来的温度值传送到串口和LCD上面显示以方便测试。由于温度在短时间内不会有大的变化,因此采用定时器中断方式执行中断程序。程序设计每2 s中断1次读取温度传感器,即每2 s执行1次温度获取流程(见图13)。
图13 温度获取流程
4系统实现
4.1系统测试软件设计
采用定时器中断方式获取温度值,每2 s获取1次。在这2 s内,CPU可执行其他程序以节约CPU资源,也可实时获得最新温度值满足实际需要。燃气传感器500 ms中断1次获得当前浓度信息,并将所有信息传送到LCD和串口进行显示。系统测试流程见图14。
图14 系统测试流程
4.2系统实现结果
4.2.1系统实现实物图
为了测试系统性能,本文分别给出了燃气泄露前后的实验数据,并使用普通打火机进行测试,系统实物如图15所示。
图15 系统实物
在无燃气泄露情况下,可以看到LCD和串口温度显示都是26℃,即当前室温,测试结果正确。MQ-4在没有检测到燃气的时候,AO口也会输出0.1~0.6 V电压,故浓度显示在15%左右,测试结果正确。
图16 无燃气前LCD数据
图17 无燃气前串口数据
图18 施加燃气
在有燃气泄露的情况下,温度显示为26 ℃,室内温度没有变化,温度显示正确。燃气浓度由99.98%变为24.54%,原因是:当燃气接近传感器时,浓度达到最大,故此时燃气浓度显示99.98%,一旦燃气泄露中止,空气中的燃气浓度将慢慢降下来,因为空气会稀释燃气浓度,因此燃气浓度显示结果为24.54%,如串口和LCD显示。
图19 施加燃气后LCD数据
图20 施加燃气后串口数据
4.2.2系统测试分析
实验室室内温度为20 ℃左右。经过100次测试,显示平均温度为19.9 ℃,方差为0.3,证明温度系统具有稳定性(见图21)。
图21 温度测试数据
图22是施加燃气前后的100次数据。由于每次施加燃气时都存在之前余留的一定浓度的燃气,因此实际浓度有所上升。统计结果显示:施加燃气前平均浓度为13.4%,方差为0.005;施加燃气后平均浓度为60.8%,方差为0.15,测试数据证明了系统的稳定性。
图22 燃气浓度测试数据
5结束语
本文从测量准确性、功耗、家庭实用性等角度出发实现了燃气浓度和温度检测系统。所选用芯片和模块符合低功耗的原则,具有体积小、可靠性高、性价比高、结构简单等优势,可用于家庭燃气浓度和温度的实时、连续检测,具有较高的实用价值。
参考文献:
[1]孙立云.室内温湿度及燃气泄露监测系统[J].物联网技术,2013(1):15-17.
[2]梁磊.基于GIS的城市燃气管网信息管理预警系统研究与开发[D].成都:西南交通大学,2013.
[3]XIONGLI GU,PENG LIU,MEI YANG,et al.An efficient scheduler of RTOS for multi/many-core system[J].Computers and Electrical Engineering,2012,38(3):785-800.
[4]曲豪,史梁.基于GSM短消息的燃气检漏报警器设计与实现[J].河南广播电视大学学报,2012(3):106-107.
[5]钱游,王飞.基于HT46RU232单片机的沼气实时监测预防报警装置[J].城市建设理论研究(电子版),2012(16):42-44.
[6]边晓欣.温度控制系统设计的工作原理及意义[J].科技创业家,2011(13):115.
[7]张扬清.基于双机通信的电压和温度监控系统[J].科技风,2013(23):104-105.
[8]卢贶.智能家居无线温度监测系统[J].襄樊职业技术学院学报,2012(6):15-18.
[9]ZHEN YA LIU.Hardware Design of Smart Home System based on zigBee Wireless Sensor Network[J].AASRI Procedia,2014(8):75-81.
[10]吴智龙,李伟彤.基于事件驱动方式的高速串口通信方案的设计[J].工业控制计算机,2014(5):14-16.
(责任编辑杨黎丽)
Design and Implementation Smart Home of Gas Detection System Based on STM32
WANG Dong, MO Xian
(College of Computer Science and Engineering,Chongqing University of Technology, Chongqing 400054, China)
Abstract:In the family kitchen, gas pipeline interface, kitchen burning gas, gas water heater may have gas leak problems. The detection gas leakage and temperature detection system was designed and implemented based on low power consumption MCU-STM32L series. The overall design, system hardware design, system software design of the system were introduced in detail, and the system realized the real-time, continuous and reliable detection of the gas concentration and temperature. The test result verifies the practicability and effectiveness of the system.
Key words:STM32; gas detection; temperature detection; smart home
文章编号:1674-8425(2016)04-0108-08
中图分类号:TP393
文献标识码:A
doi:10.3969/j.issn.1674-8425(z).2016.04.019
作者简介:王东(1969—),男,江苏人,副教授,主要从事嵌入式技术研究; 莫先(1990—),男,四川南充人,硕士研究生,主要从事嵌入式技术研究。
基金项目:重庆市教委科学技术研究项目 (KJ1400907); 重庆市自然科学基金计划资助项目(cstc2011jjA40026)
收稿日期:2015-12-10
引用格式:王东,莫先.基于STM32智能家居的燃气检测系统设计与实现[J].重庆理工大学学报(自然科学),2016(4):108-115.
Citation format:WANG Dong, MO Xian.Design and Implementation Smart Home of Gas Detection System Based on STM32 [J].Journal of Chongqing University of Technology(Natural Science),2016(4):108-115.