基于STM32 的吸烟室控制系统设计
2023-05-29张代元陈念标曹吉阳凌远志周卢婧秦建华
张代元,陈念标,曹吉阳,凌远志,周卢婧,秦建华
(1.桂林理工大学 机械与控制工程学院,广西桂林,541004;2.广西烟草公司桂林分公司,广西桂林,541004)
0 引言
目前我国的吸烟室主要为钢结构预制吸烟室,通过百叶窗和排气扇排出室内的烟雾,由于吸烟室的排气扇长期处于开启状态,排气速度较快时,可有效排出吸烟室内的烟雾,但不节能;排气速度慢时,不能有效排出吸烟室内的烟雾,会对吸烟者的健康造成一定的危害。基于钢结构预制吸烟室无法自主调节室内温度、排气扇的排气速度等不足,利用STM32、烟雾浓度传感器、温湿度传感器和排气扇构成的吸烟室控制系统,既能提高排出吸烟室烟雾的速度,又能节能减排。同时可根据温湿度传感器调节空调模式,使吸烟室的环境更舒适,对吸烟室控制系统的改进具有一定的参考意义。
1 系统总体设计
吸烟室控制系统由传感器、LCD 显示屏、执行器组成。传感器模块由温湿度采集传感器DHT11[1~3]、烟雾浓度传感器MQ-2 组成。执行器包括排气扇和空调,其连接示意图如图1 所示。
图1 系统总体设计框架图
2 系统主要模块介绍
2.1 整体硬件电路图
吸烟室的控制系统整体硬件电路图如图2 所示,由基础电路模块和扩展电路模块两部分组成。基础电路模块:包括USB 串口输出电路、DC 接口供电电路、下载电路、USB接口供电电源、复位电路、按键电路,如图2(a)所示。
图2 整体硬件电路图
扩展电路模块:包括LCD 显示屏连接电路、DHT11 温湿度传感器电路、MQ-2 烟雾浓传感器模块、L9110 电机驱动电路,如图2(a)和图2(b)所示。
电源是电路系统必不可少的,此电路提供两种供电方式,DC 接口供电和USB 接口供电,可任选其一即可。JTAG 为下载电路程序烧录所必须的,也可以与下载器、编程软件一起对代码进行调试,方便快速查找问题。复位电路的作用是使电路恢复到起始状态,可以有效解决外部干扰导致的程序错乱问题。LED 可用来指示程序的运行状态,比如主程序运行时LED 闪烁,串口接收到外部数据时LED 闪烁等,方便了解程序的整体运行状态。按键是一个外部输入量,可自行定义一些模式,方便切换功能。
2.2 温湿度传感器模块
DHT11 是一款具有校验位的数字输出型的复合温湿度传感器,其内置了一片8 位单片机,单片机的内存中存储了对温湿度数据线性化补偿的函数,通过专门的数字模块采集技术和温湿度传感技术,有效的提升了传感器的精度,且具备极高的稳定性和抗干扰能力,最后将模拟信号转化为数字信号输出,减少了模拟信号在采集时产生的误差。其电路如图3 所示。DQ 引脚为数据输出端,一次输出40 位的数据,前32 位分别是8 位湿度整数+8 位湿度小数+8 位温度整数+8 位温度小数,最后8 位是检验位,校验位的数值为前4 个8 位的和,并取其后8 位,如果接收的校验位与计算的校验值相等,则接收的数据正确。通过校验位可有效避免因数据传输错误导致的系统异常。
图3 DHT11 温湿度传感器模块电路
由于STM32 输出的高电平只有约3.3V,上拉能力不足,如果线路较长时,容易产生较大的寄生电容,从而演变为RC 充放电,而一个位的数据传输都是微秒级的单位,电容充放电需要花费一定的时间,如果这个时间偏大,就会影响数据传输的稳定性。为了使系统能更稳定的工作,故在DHT11 的DQ 端接一个4.7k 的上拉电阻,外部5V 电源能有效的缩短寄生电容的充放电时间,提高数据传输的稳定性。
2.3 烟雾浓传感器模块
MQ-2 传感器适用于液化气、苯、烷、酒精、氢气等气体的检测,尤其对香烟产生的烷类烟雾有很高的灵敏度,其内部气敏材料的表面与烟雾接触时,这种气敏材料的电阻率会迅速下降,具有极高的灵敏度,烟雾浓度越大,输出端输出的模拟信号就越大,并且气敏材料与烟雾浓度有较高的线性度,测量精度高。烟雾浓度数据通过STM32 的ADC 采样MQ-2 的模拟信号输出引脚AOUT,其电路如图4 所示。通过建立ADC 采样值和烟雾浓度的函数关系,即可获得相对的烟雾浓度。为了得到更准确的烟雾浓度数据,烟雾浓度模块内置了电热丝,在模块启动时,通过电热丝对传感器的气敏材料加热20s 的时间,减少因温度漂移带来的测量误差。
图4 MQ-2 烟雾浓度传感器电路
2.4 执行模块
排气扇和空调模块由L9110 电机模块代替,其供电 电 压 为2.5~12V, 最 大 工作电流为0.8A,电源参数皆在单片机的供电范围内。其INTA 和INTB 是控制风扇正反转的控制端,INTA 为高电平、INTB 为低电平时,风扇正转,反之,则反转。通过调节INTA 和INTB 中某一个引脚的PWM 占空比,此时需另一引脚为低电平,可实现对电机的转速进行控制,INTA 和INTB 的关系对换,则风扇换向,即此模块可实现调速和换向功能,其电路如图5 所示。
图5 电机驱动模块电路
2.5 LCD 显示模块
选用的LCD 液晶显示屏是由广州星翼电子有限公司生产的2.8 寸薄膜晶体管液晶显示器模块,其实物图如图6 所示。该模块是由薄膜晶体管液晶显示器(TFT-LCD)和驱动芯片ST7789 组成,支持262K 色显示,显示分辨率为320×240,接口为16 位的8080 并口,自带触摸屏。该模块以ST7789 作为LCD 控制芯片,ST7789 芯片自带显存,采用RGB565 格式存储颜色数据,其自带的指令集能够以GRAM 自增方式控制LCD 扫描方向。显示内容时,使用官方提供的字库,通过调用显示函数,仅需填写显示内容的初始坐标、字体颜色,设置字体的大小即可实现内容的实时显示,更改显示函数的参数,多次调用,即可快速完成多项内容的显示,极大的方便了程序的编写。
图6 LCD 显示模块
3 系统软件设计
3.1 系统软件设计框架
软件部分使用的是ST 官方提供的库函数,该系统包括DHT11 驱动程序、MQ-2 烟雾浓度传感器驱动程序、PWM控制电机转速程序[4]、LCD 显示屏驱动程序。
3.2 系统软件设计基础理论
首先是对DHT11 模块数据的读取,其时序图如图7 所示,数据读取时序是通过MCU 拉低数据总线DQ 端18μs,向温湿度传感器发出开始信号,然后拉高数据总线电平并延时30μs。DHT11 成功接收到开始信号后会发出80μs 低电平作为应答信号,DHT11 再拉高数据总线电平80μs,准备输出数据,每一位的数据都以12~14μs 的低电平作为起始点,以高电平持续时间的长短代表数据位为0 还是为1,数据位为0 时高电平持续时间约为26~28μs,数据位为1时高电平持续时间约为70μs,该模块的校验数据是通过计算式 (data1+ data2+ data3+ data4)&oxff = CRC 实现校验,其中data1、data2、data3、data4是前32 位温湿度数据,CRC 是最后8 位校验位,如果两个的结果相同,则使用这组数据,否则重新向DHT11 发送读取数据指令。
图7 DHT11 数据传输时序图
然后MQ-2 烟雾浓度传感器与PA1 引脚相连,并将PA1引脚配置为ADC 模式,精度设置为最高的12 位,即数据被分成4095 份,烟雾浓度计算式为smog=C×adc/4095,其中smog 是烟雾相对浓度,adc 是STM32 的采样值,C是校正系数,纠正模块可能存在的误差,通过该计算式即可将ADC 采样值转化为烟雾的相对浓度,最后是配置STM32定时器1 的4 个PWM 通道,分别通过四个引脚连接4 个电机的驱动模块。
3.3 系统软件设计流程图
初始化完成后,判断DHT11 模块读取是否正常,如果正常则继续运行程序,否则通过显示屏报告DHT11 模块异常并结束程序运行。由于烟雾浓度检测模块需要加热20s以读取更准确的数据,故在20s 加热时间未结束前,一直循环DHT11 温湿度传感器数据的读取、在LCD 屏幕上显示温湿度和控制空调模式的程序,20s 加热时间结束后,并且成功读取到烟雾浓度传感器模块的数据后,再通过烟雾浓度传感器模块反馈的数据控制排气扇的工作模式,其程序流程图如图8 所示。
图8 程序流程图
4 实验结果
4.1 温度模拟控制试验
温度模拟试验环境的初始环境参数:环境温度27℃,相对湿度在41%~53%之间,烟雾浓度约为0。通过人工改变外部环境的温度,进而测试控制器能否根据DHT11 反馈的温度数据改变空调的工作模式[5~6]。试验数据如表1 所示。
表1 温控试验数据
图9 为温控硬件运行状态,可以观察到a,b,c 图中的最右侧作为空调替代设施的直流电机旋转,此时的LCD屏幕上显示室内温度分别为28.5℃、30.8℃、33.4℃,相对湿度分别为44%、48%、48%,空调工作模式分别为模式1、模式2、模式3,三个风扇的旋转转速依次递增。
图9 温控硬件运行状态
通过温度模拟控制试验可知,温度控制空调模式功能可以正常工作,并在LCD 屏幕显示测量温度、相对湿度、以及空调的工作模式。
4.2 烟雾浓度模拟控制试验
烟雾浓度模拟试验环境初始环境参数:环境温度25℃,相对湿度在41%~53%之间,烟雾浓度约为0,通过人工改变外部环境的烟雾浓度,进而测试控制器能否根据MQ-2 烟雾传感器反馈的数据改变排气扇的工作模式。试验数据如表2 所示。
表2 烟雾浓度试验数据
图10 为烟雾浓度控制硬件运行的状态图,此时的烟雾浓度分别是17.8%、36.3%、47.9%,对应的模式分别是模式一、模式二、模式三,三个风扇的旋转转速依次递增,左侧三个作为排气扇替代设施的直流电机旋转,左1 和左2作为排气扇正向旋转,左3 作为进气扇反向旋转。
图10 烟控硬件运行状态
通过烟雾浓度模拟控制试验,该系统可通过烟雾浓度控制排气扇的工作模式并可以将工作模式显示在LCD 屏幕,符合设计要求。
4.3 湿度模拟控制试验
湿度控制模拟试验环境初始环境参数:环境温度25℃,相对湿度在50%~60%之间,烟雾浓度约为0。通过人工改变外部环境的湿度,使得温湿度传感器DHT11 检测到外部环境的湿度变化,进而控制空调的除湿模式。试验数据如表3 所示。
表3 湿控试验数据
图11 为湿度模拟控制试验硬件运行状态图,我们可以观察到最右侧作为空调替代设施的直流电机旋转,LCD 屏幕显示室内温度为33.4℃,湿度为72%,空调除湿模式开。
图11 湿控硬件运行状态
通过湿度模拟控制试验,该系统可根据湿度数据开启或关闭空调的除湿模式并将工作模式显示在LCD 屏幕,符合设计要求。
5 结论
基于STM32 的吸烟室控制系统可以根据烟雾传感器的反馈数据自动调节排气扇运行模式、显示烟雾浓度数值,根据温湿度传感器反馈的温度数据调节空调模式、湿度数据选择是否开启除湿模式,使吸烟室环境更舒适,对吸烟室控制系统的研究具有参考意义。