基于单片机的语音智能疏散系统设计
2021-09-10王中坤
魏 德 夏 冰 王中坤
(平顶山学院 信息工程学院 河南 平顶山 467000)
随着当前综合国力不断提升,社会蓬勃发展,我国的经济水平得到了极大的提高,同时由于我国建筑水平不断地提高,使得我们居住的楼房越来越高,楼房之间的距离越来越紧密,由此带来了一些安全隐患。传统的人工疏散方式对火灾的反应相对滞后,并且可能会造成没有必要的人员伤亡。
本文以STM32F030C8T6为主控芯片,利用单片机控制技术和传感器技术,通过控制烟雾传感器、GSM无线通信模块、语音报警模块、继电器模块和数据处理模块,实现智能语音疏散等相关的基本功能。
1 系统总体设计
系统的硬件电路设计包括 STM32单片机控制模块、GSM无线通信模块、MQ-2烟雾浓度检测模块、5V转3.3V降压模块、按键模块、语音报警模块、128×64分辨率OLED显示模块和HK23F继电器模块。系统的软件设计利用了KEIL5进行编程。其系统总体设计图如图1所示。
图1 系统总体设计图
2 系统硬件设计
硬件设计使用了 STM32单片机、语音报警模块、烟雾采集模块、GSM、OLED屏和按键模块。
2.1 STM32单片机控制模块
本设计采用STM32F030C8T6单片机作为主控芯片。外围电路有复位电路、晶振电路以及电源电路等[1]。复位电路可以实现用按键进行复位,晶振电路采用外接晶振为12 kHz的低频晶振。该芯片工作电压2.4 V-3.6 V,工作主频率为48 MHz,同时具有丰富的片内资源,片内具有内置高速存储器。此外,它还有丰富的IO口和多个先进的通信接口,自带3.3V稳压电路。此系统板具有性能强、功耗低,体积较小且价格低廉。最小系统及外围电路如图 2所示。
图2 STW32最小系统及外围电路
2.2 语音播报模块
本系统采用的语音播报模块是以JQ8400-FL芯片为核心的语音播报模块,并选用了LS57N-12F-R8的 2.25寸高音喇叭。语音模块的驱动芯片为JQ8400-16S,模块采用USATR与单片机进行通信,TX端与单片机 RXD1端连接,RX端与单片机TXD1连接;喇叭通过输出不同电压,产生不同频率的波形来发出不同的声音[2]。语音报警模块接口电路图如图3所示,JQ8400-FL芯片如图4所示。
图3 语音报警模块接口电路
图4 JQ8400-FL芯片
2.3 烟雾采集模块
本设计中的烟雾浓度传感器模块上的电位器可以调节电阻从而调节输出电压来控制对烟雾浓度的灵敏度,其原理为:
其中:Vc为回路电压;Ushuchu为传感器输出电压;R为调节电阻;Rs为传感器体电阻。
本设计中,MQ-2传感器的小板数字开关接口DO悬空,小板模拟量输出接口AO与STM32的IO口中的 PA3相连,通过传感器内部的 AD 转换电路,单片机可以获得周围环境当中气体浓度精准值,完成对室内可燃气体浓度采集。其模块接口电路图如图5所示。
图5 GSM无线通信模块接口电路图
2.4 GSM无线通信模块
本设计中主要使用的GSM模块是SIM800L传感器模块,GSM模块的RX、TX引脚分别与STM32主控芯片的PA15、PA14引脚进行连接,与单片机之间通过USART2进行数据传送,当可燃气体浓度超过一定指标时,MCU会立即控制GSM模块向用户发送报警短信。GSM/GPRS模块接口电路图如图6所示。
图6 GSM无线通信模块接口电路图
2.5 OLED显示模块
为了使测量结果更直观,本次设计采用了128*64分辨率显示的0.96寸OLED显示屏模块。本系统中OLED显示屏模块与单片机数据传输的方式采用SPI通信方式,硬件电路中将SCLK1、MOSI1、OLED_RST和OLED_CS引脚分别连接至单片机的I/O口PB13、PB15、PB6和PB5。写数据时SCLK1先设置为低电平,在产生上升沿之前准备数据,MOSI1给单片机传送数据完成后,SCLK1拉高使OLED读取数据。该模块功能是实时显示室内温烟雾浓度,烟雾浓度阈值调节的显示。其与模块接口电路图如图7所示。
图7 OLED显示屏模块接口电路图块电路
2.6 电源压降模块
本系统中,语音报警模块、GSM无线数据模块、烟雾浓度采集模块供电电压为5V。为了使系统正常工作,用USB为系统提供5V电压,保证语音报警模块、GSM无线通信模块、烟雾浓度采集模块正常工作。OLED显示屏模块供电电压为3.3V,为获得3.3V电压,使用压降模块进行降压,该模块使用AMS1117芯片。AMS1117是一种线性稳压器,它对输出电压采样并将输出电压反馈到输出级调节管的阻抗,当输出电压过低时就调节阻抗变小,而输出电压过高时就调节阻抗变大,从而维持电压的稳定,输入5V时阻抗增加,转化为3.3V。压降模块接口电路图如图8所示。
图8 电源电路模块接口图
2.7 继电器模块
继电器是一种电控制器件,是当输入量的变化达到规定要求时,输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统和被控制系统之间的互动关系,两系统是绝缘隔离的;它实际上是用小电流去控制大电流运作的一种“自动开关”,通常应用于自动化的控制电路中[3]。
本设计采用电磁式继电器,它由铁芯、线圈、弹簧、衔铁(动触点)、常开和常闭触点组成;常开是指继电器常态(不通电时)下触点为打开着,同理,常闭就是闭合着。工作时,线圈两端有电势差,势差引起的电流流过线圈,产生电磁效应,会吸引衔铁克服弹簧弹力与常开触点接触,被控制系统导通;不工作时,在线圈两端没电压,线圈不会吸引衔铁,衔铁因弹簧弹力与常闭触点接触,被控制系统截止;在继电器一次工作过程中可听见短暂“嗒”一声脆响。继电器工作原理图如图9所示。
图9 继电器工作原理图
2.8 按键模块
本系统中,为了使发生报警的烟雾浓度阈值更为方便的调节,除了通过MQ-2上的电位器调节外,还设计了通过按键模块对报警阈值的调节。S1作为烟雾浓度阈值和告警开关的切换按键,系统默认S1为阈值调节状态,通过S2和S3分别增加和减少阈值。当S1按下时,进行阈值调节,此时S3失效,切换为告警开关。当 S2按下时,告警开关关闭,S2再次按下,告警开关开启。按键的调节过程为:按下S1可以调节烟雾浓度阈值,通过S2增加阈值S3减小;再次按下S1可以控制告警开关,上电默认为开,按下 S2后可以关闭告警开关。按键模块接口电路图如图10所示。
图10 按键模块
3 系统软件设计
系统软件使用 C语言在 Keil5环境下基于STM32官方库进行程序开发,使用ST-LINK烧录软件对程序进行下载与调试。
3.1 系统总体软件设计
正常供电后,主程序先对整个系统参数进行初始化,然后对串口、定时器、OLED显示屏模块以及其它各模块进行初始化,紧接着调用OLED显示屏显示函数,将每一位待显示数据传输至OLED显示屏相对应的位置上进行显示。系统的软件设计为:系统上电后,开始系统初始化,然后在死循环中单片机开始不断地获取传感器采集的数据,通过标志位system_point进入switch语句,调用get_sensor函数判断烟雾传感器采集的数据是否大于预设定的烟雾浓度值。如果MQ-2传感器检测的数值大于预设定值,再通过标志位alarm标志位判断告警开关是否开启;若开启,单片机就会驱动语音播报模块进行语音报警同时驱动 GSM 模块发送短信报警。系统主程序流程图如图11 所示。
图11 系统总体程序流程图
3.2 按键模块软件设计
设计中所涉及的按键模块部分主要包含的功能为:按下S1可以调节烟雾浓度阈值,通过S2增加阈值,S3减小阈值;再次按下S1可以控制告警开关,上电默认为开,随后按下 S2后可以关闭告警开关。按键模块程序设计流程图如图12所示。
图12 按键程序流程图
3.3 烟雾浓度采集软件设计
为本系统上电运行后,进行系统参数初始化,先对MQ-2烟雾传感器工作模式进行初始化,再将从传感器的AO引脚读取烟雾浓度数据发送给单片机。MQ-2烟雾传感器主要通过内部ADC转换电路将模拟信号转换为数字信号。烟雾浓度传感器模块上的电位器可以调节烟雾浓度的灵敏度(其原理见2.3)从而对不同的烟雾的浓度进行检测。烟雾传感器采集程序流程图如图13所示。
图13 按键程序流程图
3.4 GSM通信模块模块软件设计
本设计通过单片机的USART2串口2给GSM模块发送AT+CMGF=1指令,随后等待GSM模块响应OK之后发送AT+CSCS=“GSM”,设置TE输入字符集格式为“GSM”格式,再次响应OK之后,发送 AT+“手机号码”编辑短信,再发送PDU格式的短消息响应OK之后,说明信息发送完毕[4]。报警的短信发送流程图如图14所示。
图14 报警短信发送流程图
4 系统测试
硬件测试对于设计一个系统来说尤为重要,因为硬件电路连接部分出现的错误往往会使系统无法实现功能甚至导致电路的损坏[5]。
4.1 硬件测试
首先测试硬件PCB电路连接是否有问题,系统能否正常运行。然后测试语音播报模块能否顺利进行报警,传感器模块能否正常采集数据,当环境异常时 GSM 模块能否给用户发送报警短信等。最后测试OLED显示屏模块长时间工作能否正常显示当前烟雾浓度值以及系统能否长时间运行。
为MQ-2传感器对可燃气体等有一定的敏感度,故可通过用打火机模拟燃气泄漏来测试其是否具备室内环境监测的功能。当释放燃气时,MQ-2检测烟雾浓度达到99%,告警开关为开的状态下,单片机会驱动语音播报模块进行语音播报以及通过GSM发送报警短信。
4.2 软件测试
软件测试是开发设计中必不可少的流程,进行软件测试可以检验系统功能是否完善,同时也可以检测到硬件电路是否正常工作。
4.2.1 OLED屏幕软件测试
OLED显示屏显示部分的软件测试主要检测OLED显示屏的数据显示及清屏功能是否正常,测试方法是在测试程序中分别写入烟雾浓度显示、烟雾浓度阈值显示,下载程序并观察OLED显示屏显示效果。OLED第一行显示主控芯片为STM32,第二行显示当前烟雾浓度,第三行显示当前设定的烟雾浓度阈值,第四行显示的告警开关的开关状态。OLED显示屏显示如图15所示。
图15 OLED显示屏显示图
4.2.2 按键设置阈值软件测试
按键程序设置部分的软件测试主要是为了检测按键能否正常调节触发烟雾报警的阈值和告警开关,测试方法是在程序中写入调节阈值和控制告警开关的程序,在显示屏中查看数值是否能通过按键按下去改变。程序下载完毕之后,默认显示 Max_Gas为30%,Alarm可以通过按键调节为OFF关闭状态。按键调节效果如图16所示。
图16 按键调节效果图
4.2.3 GSM无线通信软件测试
GSM 模块程序的部分主要是当烟雾浓度达到阈值,语音报警模块发生报警之后,手机接到发生火灾的警告。短信效果如图17所示。
图17 短信效果图
5 结语
本文设计了以STM32F030C8T9为核心控制器的语音智能疏散系统。系统对语音报警具有灵敏度高、成本低等优点,具有较高的现实可行性。本设计还需进一步改进,例如系统对火灾的检测,可选用耐热的材料,提高系统的稳定性;系统也可与太阳能路灯共用电源,方便安装和节约成本。