基于STM32的室内空气质量监测自适应调节系统

2016-05-14 01:22韦海成王淼军魏鑫舒胜
现代电子技术 2016年8期
关键词:传感器

韦海成 王淼军 魏鑫 舒胜

摘 要: 针对现代智能家居室内空气质量的健康问题,设计一种基于STM32单片机的室内空气质量监测自适应调节系统,整个系统使用模块化设计,由主控模块、传感器模块、串口转WiFi模块、显示模块、多级自适应调节模块组成。主要完成室内空气温湿度、AQI值的监测显示及自适应调节,使其维持在适宜人居住的范围以内。此外开发出相应的手机APP,通过串口转WiFi模块,实现监测数据在手机客户端的实时显示。实验表明:该系统运行可靠,灵敏度高,可实现对室内空气质量的实时监测、可视化显示、自适应调节及报警功能,在智能家居领域具有很好的应用前景。

关键词: STM32; 传感器; WiFi模块; 多级自适应调节

中图分类号: TN915?34 文献标识码: A 文章编号: 1004?373X(2016)08?0130?05

Indoor air quality monitoring and adaptive control system based on STM32

WEI Haicheng, WANG Miaojun, WEI Xin, SHU Sheng

(School of Electrical and Information Engineering, Beifang University of Nationalities, Yinchuan 750021, China)

Abstract: Aiming at the problems of indoor air quality in modern smart home, a kind of adaptive regulating system based on STM32 microcontroller was designed. The modular idea is put to use in the design. The whole system consists of main control module, sensor module, module from serial port to WiFi, display module, multi?stage adaptive control module. This system is mainly used to complete monitoring and adaptive regulation of indoor air temperature, humidity and AQI (air quality index). The purpose of the system is to maintain indoor condition within the scope of suitable habitat, develop a corresponding mobile phone APP, and make the monitored data displayed in the mobile terminal. The experimental results show that the system has reliable operation, high sensitivity, can achieve the functions of real?time monitoring, visual display, adaptive adjustment and alarm, and has the very good application prospect in the field of smart home.

Keyword: STM32; sensor; WiFi module; multi?stage adaptive adjustment

随着生活水平的不断改善,人们对居家生活的舒适性、便捷性提出了更高的要求,与此同时也对居家环境的健康性越来越重视。然而现存的智能家居行业普遍存在价格昂贵[1],标准不统一的问题[2]。设计的产品具有一定专用性,但系统之间很难相互移植。目前的智能家居多注重于家电的远程开关[3?5]、智能防盗[6?8]、气体检测[9]等,很少有专门针对人居环境监测自适应调节的系统,尤其是对室内环境空气质量的监测。针对此需求,本文从经济实用的角度出发,选用基于Cortex?M3内核的STM32系列单片机为主控制芯片,设计出一套针对室内空气质量的监测及自适应调节系统。实现了对室内空气温湿度、AQI(Air Quality Index)值的实时监测显示及自适应调节功能,必要的时候还可进行报警提示。为了方便系统后期的嵌入移植,本文采用模块化的设计理念。

1 系统总体设计

系统以STM32单片机为控制芯片构成主控模块,主要完成监测数据的分析处理、各功能模块的协调调度。系统的运行机制如下:上电复位以后,传感器模块对室内空气质量的参数进行采集,空气温湿度的检测由SHTx系列数字温湿度传感器完成,AQI值由GP2Y1010AU0F灰尘传感器完成。检测数据经STM32主控芯片分析处理,送至显示模块进行数据实时显示(OLED显示,手机APP显示)。根据检测值与设定值的差距,启动多级自适应调节模块完成对室内空气质量的自适应调节。系统的总体框图如图1所示。

2 硬件设计

2.1 主控模块设计

本文选用意法半导体公司基于Cortex?M3内核的STM32F103CBT6单片机为主控芯片。作为整个系统运行的控制中枢,主控模块要完成整个系统各功能模块的协调调度,首先根据数字温湿度传感器特有的数据传输机制建立通信时序,完成与温湿度传感器的数据通信;其次对于灰尘传感器,要对其检测到的AQI值模拟量进行A/D量化处理。然后对这些监测数据进行STM32内部的分析处理,最后调用相关的功能模块完成监测数据的显示与系统的自适应调节。在软件编程方面,STM32单片机自带专门的函数库,可直接调用相应API(Application Program Interface)来配置STM32寄存器实现编程。具有开发周期短、程序可读性强等优点。

图1 系统设计总体框图

2.2 传感器模块电路设计

传感器模块主要完成对室内空气温湿度及AQI值的实时监测。SHT1x系列数字温湿度传感器,其内部集成了A/D转换功能,可直接将检测到的模拟量转化为数字量与STM32进行数据通信。灰尘传感器GP2Y1010AU0F,其AQI值检测输出为模拟量,须借助STM32单片机的A/D转换功能进行数值的量化。

2.2.1 数字温湿度传感器

SHT1x系列单芯片传感器是一款含有已校准数字信号输出的温湿度复合传感器。包括一个电容式聚合体测湿元件和一个能隙式测温元件,体积小、功耗低、且内部自带校准程序及基准电压,测量精确度高。电源供电引脚VDD采用3.3 V电压供电,GND引脚接地。数据通信采用两线制串行接口方式,使得系统集成方便快捷,时钟输入引脚SCK,完成通信的时序同步(与STM32的PA12引脚相连)。数据引脚DATA为数据通信提供传输通道(与STM32的PA11引脚相连)。

2.2.2 灰尘传感器

灰尘传感器GP2Y1010AU0F,由5 V电压供电,具有封装小、功耗低、灵敏度高、精确度好等特点。检测输出的电压模拟量,经10 kΩ和4.7 kΩ电阻分压后,送至STM32端口进行数据转换采集。使用STM32内部的A/D转换通道1(PA1)。GP2Y1010AU0F上电经1 s休眠以后便开始稳定正常地工作,其引脚连接示意如图2所示。

图2 GP2Y1010AU0F引脚连接示意图

2.3 显示模块设计

作为系统的显示单元,为用户提供监测数据的可视化界面。不仅能通过OLED进行显示,也可通过串口转WiFi模块将数据发送至手机端进行显示。

2.3.1 OLED显示屏模块

OLED,即有机发光二极管,具有对比度高、厚度薄、视角广、响应速度快等优点,同时,相对于传统的LCD显示,OLED 具有自发光功能,不需要背光显示,且分辨率高(本设计采用的OLED分辨率为128×64)。在数据传输方面,提供多种对外接口方式,例如I2C(Inter?Integrated Circuit)接口,串行SPI(Serial Peripheral Interface)接口,6800、8080并行接口。 OLED显示屏由芯片SSD1306驱动,SSD1306的GRAM(Graphics Random Access Memory)大小为128×64 b(分8页,每页128 B),通过控制SSD1306,即可实现对OLED的刷新显示。

本设计采用4线制SPI接口方式(刷新速度快),使用的信号线主要有:CS(片选信号)、RES(硬复位)、DC(命令数据标志)、D0(串行时钟线)、D1(串行数据线)。引脚连接如图3所示。

图3 OLED引脚连接示意图

对于传统的OLED 4线制SPI接口显示方式存在的刷新重叠问题(4线制SPI接口只能对SSD1306的GRAM进行写操作,在刷新显示时不能对当前显示位状态进行读判断,显示过程中会出现数据覆盖),本设计采用虚拟SSD1306显存的方法,使用STM32内部SRAM(Static Random Access Memory)建立一个与SSD1306的GRAM大小相同的缓存区。直接在STM32的内部完成数据修改,最后一次性把数据送至SSD1306的GRAM进行OLED的数据显示,这样不仅避免了数据刷新的重叠问题,也提高了数据显示的刷新速度。

2.3.2 串口转WiFi模块

STM32将监测到的数据进行分析处理后,通过此模块转化为WiFi信号,经路由调制,实现监测数据在手机APP上的显示。模块的驱动芯片采用RM04,需要5 V和3.3 V电源同时供电,使用I2C串口总线的方式与主控芯片STM32完成数据通信(ROM4的RX、TX引脚分别连接STM32的PA9、PA10引脚)。

2.4 多级自适应调节模块设计

主要完成对室内空气质量的自适应调节,系统通过设定空气质量相关参数的动作阈值,运用PWM技术进行多级调节,有效地降低了系统的能耗。同时引入微调机制,减缓了系统的超调;设定适宜参数范围,避免了机械开关的频繁动作。使用LCD进行级调的可视化显示。

2.4.1 PWM原理在系统中的应用

脉冲宽度调制(PWM)是一种对模拟量进行A/D数字量化编码、利用改变微处理器输出数字量的占空比,来实现对模拟电路输出量进行控制的一种技术。系统根据空气质量相关参数测量值与设定值的偏差等级,进行不同级别的调节。此设计中的加湿器、散热风扇、过滤风扇都是由直流电动机驱动,通过PWM调制改变驱动电机输入电压有效值的大小,从而控制驱动电机的转速,最终实现室内空气质量多级调节的效果。

2.4.2 多级调节动作范围阈值的设定

人居环境最适宜温度范围为23~27 ℃,本系统设定值为25 ℃。由于人体对温度±(1~2) ℃内的变化不敏感[10],故在此波动范围内调节机构不动作,这样就避免了继电开关的频繁开闭,延长了外设的使用寿命。当实际监测的温度与设定温度相差±(2~3) ℃时,启动一级微调(散热风扇或电热风扇)。如若一级微调不能满足环境的变化对室内温度的影响;当监测温度与设定温度差值达到±(3~5) ℃时,便启动二级调节;如若差值继续增加,达到±(5~7) ℃时启动三级调节;如若超出系统的可调范围,便进行报警处理(当差值达到±7 ℃时)。空气湿度、AQI值的调节与温度相同,其分级调节参数阈值设定详见表1。

表1 PWM多级自适应调节参数阈值

3 软件设计

3.1 系统软件总体设计

系统的软件设计采用C语言,在RVMDK开发环境下完成系统程序的编译调试及下载。软件的编程同样使用了模块化的设计思想,各程序模块功能独立,模块之间接口连接。系统软件的总体流程如图4所示。

系统开机初始化以后进行监测数据的采集,将检测到的数据送至STM32进行分析处理。STM32将监测的数据送至显示模块进行显示,另外根据监测值与设定值的比对,确定是否进行分级的自适应调节。对于环境参数严重超标的情况,进行报警处理。程序主要涉及到的功能模块有:

(1) 数字温湿度传感器模块:根据SHTx数字温湿度传感器的通信机制,编写读写时序。

(2) 灰尘传感器模块:对其检测到的AQI值模拟量进行A/D转换。

(3) OLED显示模块:完成SSD1306与STM32的数据通信,实现监测数据在OLED上的刷新显示。

(4) 串口转WiFi模块,完成ROM4与STM32的数据通信,实现监测数据手机在APP上的实时显示。

(5) 自适应调节模块,实现外设PWM多级自适应调节功能。

3.2 数字温湿度传感器软件设计

SHT1x温湿度传感器自身具备A/D转换功能,在软件设计方面主要是完成温湿度传感器与主控芯片之间的数据通信,由于其自身对温湿度的监测具有较高的灵敏性,且集成的A/D转换具备内部校准机制,具有较高的准确性,在软件设计方面主要注重其实时性。数据通信采用两线双向的串口连接方式, 其一组完整的数据传输过程包括:启动传输、指定位写命令、等待传输结束、数据传输、CRC校验。具体介绍如下:

(1) 启动传输。启动SHT1x温湿度传感器数据传输的时序如下:在SCK时钟为高电平期间,DATA由高电平翻转为低电平,在SCK相邻的下一个高电平时。DATA再由低电平翻转为高电平,以此作为数据传输的启动信号。

(2) 指定位写命令。目前用到的写命令地址为:000,SHT1x温湿度传感器监测的温湿度数据由同一条数据线传输,传输数据由5位命令位决定(温度数据:00011;湿度数据:00101),例如:图5为在地址位000写入传输湿度数据命令时序图。

(3) 等待测量结束。为了保证温湿度监测的实时性,软件的编程采用交差采集的方法,即温度与湿度的数据采集交替进行。但同时为了兼顾数据采集的完整性,在写入测量切换命令以后,要经过至少320 ms的延时,等待上一组数据测量结束。SHT1x通过下拉 DATA四个时钟周期表示进入空闲模式。接下来是2 B的测量数据,其传输时序如图6所示,传输的为湿度数据:100100110001,对应湿度75.79 %RH。为确保传输数据的正确性,选择 8位CRC奇偶校验码进行校验。此外,当SHT1x温湿度传感器与主控芯片STM32的数据通信发生异常时,SHT1x温湿度传感器将DATA拉高9个时钟周期,产生复位信号。

3.3 灰尘传感器软件设计

GP2Y1010AU0F灰尘传感器自身不具备A/D转化功能,本设计借助STM32内部自带的A/D转换功能完成对灰尘传感器采集数据模拟量的量化。A/D转换通过调用STM32内部库函数实现,为确保其转换精度,转换过程中使用两次均值滤波。对模拟量进行连续10次数字采集,然后依次排序,去掉最大值和最小值,最后求平均值作为A/D转换的模拟量输入。对量化后的数字量进行同样的均值滤波处理,以提高A/D转化的精度。

3.4 PWM多级调节的软件设计

此设计使用STM32内部定时器3的4个独立通道(TIM3_CH1,TIM3_CH2,TIM3_CH3,TIM3_CH4)分别控制散热风扇、加湿器、过滤风扇、电热风扇的驱动电路。脉冲控制调制可以产生一个由TIM3_ARR(捕获/比较寄存器)确定频率,由TIM3_CCR(自动重装载寄存器)确定占空比的信号。当定时器的计数CNT小于CCR的值时,对应GPIO口输出低电平(有效电平),当定时器的计数CNT大于CCR的值时,对应GPIO口输出高电平。通过调整TIM3_CCR的重装载值,即可调整GPIO输出电压的占空比,从而达到I/O控制外设实现多级调节的效果。其控制原理如图7所示。

3.5 OLED显示模块软件设计

OLED模块主要实现监测数据在液晶屏上的实时显示,软件设计主要针对OLED的驱动芯片SSD1306进行编程。OLED显示屏采用4线SPI的方式与主控芯片STM32进行数据通信,在此传输方式下,只支持对SSD1306芯片的写操作,其时序如图8所示。传输过程中,每个数据长度为8 b,CS作为片选信号,低电平有效。DC命令数据引脚,低电平表示写命令,高电平表示写数据。数据通过串行数据线SDIN,以高位在前的顺序,在SCLK的上升沿移入SSD1306。

另外对传统的OLED 4线制SPI接口通信数据重叠的问题,本文以软件的方式,通过虚拟SSD1306显存的方法予以解决。通过构建OLED_Refresh_Gram 函数。在STM32内部定义了一个缓存区SRAM:u8 OLED_GRAM[128][8];此部分 SRAM 对应 SSD1306芯片的 GRAM。每次数据刷新的时候,只要修改 STM32 内部的缓存区GRAM,然后通过OLED_Refresh_Gram 函数把缓存区的数据一次性刷新到 OLED 的 GRAM 上。另外,每次显示前对数据的逐位修改都发生在STM332缓存区的内部,这样大大提高了刷新速度。

3.6 串口转WiFi模块软件设计

WiFi模块的引入只要是为了实现监测数据在用户手机APP客户端进行实时显示,在主控芯片STM32与手机APP客户端之间起到数据传输的桥梁作用。 此模块程序主要完成了ROM4与主控芯片STM32之间的I2C串口通信(包括GPIO的工作模式、串行通信的初始化、中断函数的初始化、数据的接收等)。

4 系统测试

系统测试主要是针对系统设计的可行性及系统运行的稳定性、实时性、灵敏性进行验证。室内空气质量检测级自适应调节系统硬件实物如图9所示。

(1) 监测及显示功能测试。主要测试传感器模块对室内空气温湿度、AQI值监测的实时性、灵敏性以及显示模块功能的实现。系统上电复位以后(约3 s),OLED显示屏便开始进行室内空气温湿度、AQI值的实时显示,检测数据大约每2 s刷新一次。另外,通过串口转WiFi模块,经路由调制实现了监测数据手机客户端的实时显示。

监测数据显示界面如图10所示。

(2) 多级自适应调节测试。主要对系统的多级自适应调节功能进行测试,使用吹风机改变系统传感器局部的温湿度来模拟室内空气温湿度的变化,利用香烟改变灰尘传感器局部AQI值模拟室内空气AQI值的变化。为了使实验现象更加明显,此处使用LCD显示屏进行级调的可视化显示。实验表明:在室内空气质量相关参数可调的范围内,系统可进行有效的多级自适应调节。

(3) 系统报警功能测试。主要是对室内空气质量相关参数的过度超标温度进行报警提示,将吹风机调至热风靠近温湿度传感器,温度迅速超过40 ℃(湿度变化较慢),报警单元动作(蜂鸣器报警,红色LED闪烁)。报警复位后将点燃的香烟靠近灰尘传感器,AQI值迅速超过200,报警单元进行报警提示。

(4) 系统运行可靠性测试。为验证系统运行的可靠性,在宁夏银川北方民族大学智能建筑实验室进行了数据的测试,其中24 h的监测数据走势如图11所示。

5 结 语

本文针对居家环境室内空气质量的问题,设计出了一套以STM32F103CBT6 为主控芯片的室内空气质量监测多级自适应调节系统。本系统可很好地完成对室内空气温湿度、AQI值的实时监测显示、多级自适应调节及报警功能。系统软硬件均采用模块化设计思想,不仅有利于系统的维护升级,也方便本设计在智能家居领域的嵌入。实验表明:该系统在室内空气质量监测的过程中具有很好的实时性及灵敏性,且运行稳定,达到了预期设计的效果,在智能家居领域具有一定的应用前景。

参考文献

[1] 马季.智能家居远程监控系统的研究与实现[D].青岛:中国海洋大学,2009:2?7.

[2] 胡曼冬.基于本体的智能家居关键技术研究[D].青岛:中国海洋大学,2014:2?6.

[3] RAOOFAT M. Simultaneous allocation of DGs and remote controllable switches in distribution networks considering multilevel load model [J]. International journal of electrical power and energy systems, 2011, 33(8): 1429?1436.

[4] 李治斌,邓小芳,张余明,等.基于ZigBee技术的智能调光开关设计[J].传感器与微系统,2014,33(1):60?63.

[5] 吴卓葵,曾涛.基于GSM的远程开关控制装置设计[J].自动化与仪器仪表,2014(8):47?49.

[6] ZHANG Junge, SHAN Yanhu, HUANG Kaiqi. ISEE smart home (ISH): Smart video analysis for home security [J]. Neucom,2014, 8(2): 752?766.

[7] 孙旭光,高方平,陈丹琪,等.基于无线传感器网络的防盗监测系统设计[J].传感器与微系统,2009,28(10):67?69.

[8] 高鹏,郑超,任岐鸣,等.ARM和ZigBee的智能家居监控网络设计[J].计算机测量与控制,2014(10):3206?3209.

[9] 郭威彤,宋海声,杨鸿武,等.一种便携式室内空气质量快速检测仪设计[J].传感器与微系统,2015,34(4):92?94.

[10] 于连广,端木琳.温度突变环境下人体平均温度变化及热感觉预测[J].制冷空调与电力机械,2006,27(1):8?12.

猜你喜欢
传感器
康奈尔大学制造出可拉伸传感器
简述传感器在物联网中的应用
“传感器新闻”会带来什么
跟踪导练(三)2
光电传感器在自动检测和分拣中的应用
基于扩展卡尔曼滤波的PMSM无位置传感器控制