1、毕 业 设 计学生姓名: , 学 号: 学 院: 电气工程学院 专 业: 电气工程及其自动化 题 目: 基于单片机办公室用空气 净化器控制系统设计 指导老师: 评阅老师: 6月毕 业 设 计 中 文 摘 要 伴随中国现代化进程脚步不停加紧,各地方PM2.5值居高不下。针对这一现象,本课题以STM32单片机为控制关键,首先对中国外空气净化器做了具体分析,给出了一个电压可调式办公室用空气净化器总体设计方案;其次,依据市场需求及方案可行性对比,对MCU最小系统单元、TFT_LCD液晶显示模块、L298N驱动模块、DHT11温湿度传感器、SDS011激光传感器进行了硬件电路设计,搭建了完整硬件平台;再
2、次,基于嵌入式操作系统采取模块化编程方法,完成了对主程序、显示子程序、PWM输出子程序、数据采集子程序、上位机控制台操作子程序等设计;最终,进行空气净化器整体测试,据试验结果可知,本设计实现了数据采集、触屏控制、档位选择、开关机设定、无线通信等功效。关键词 STM32单片机 空气净化器 液晶显示 激光传感器 触屏控制毕 业 设 计 外 文 摘 要Title Design of Office Air Purifier Control System Based on Single Chip Microcomputer AbstractWith the development of Chinas m
3、odernization pace continues to accelerate, the local PM2.5 value is very highIn view of this phenomenon,This paper uses STM32 MCU as control core,First of all domestic and international air purifier has done a detailed analysis,A voltage adjustable office with the overall design scheme of air purifi
4、erSecondly,According to the market demand and the feasibility of scheme comparison,A minimum system of MCU unit,TFT_LCD liquid crystal display module,The L298N driver module,DHT11 temperature and humidity sensor,SDS011 laser sensor was designed,It has built a complete hardware platformAgain,The embe
5、dded operating system uses modular programming method based on,The completion of the main program, PWM display subroutine, output subroutine, data acquisition subprogram, PC console subroutine and so onThe last,The overall test of air purifier is finished,According to the test results,The design and
6、 implementation of data acquisition, touch screen control, gear selection, switch setting, wireless communication are realizedKey Words STM32Singlechip Air Cleaner LCD Laser Sensor Touch Screen Control目 录1 引言11.1 课题研究背景及意义11.2 中国外发展情况11.3 课题关键工作32 控制器方案设计42.1 控制器总体方案设计42.2 方案论证对比43 控制器硬件电路设计73.1 单片机
7、控制电路设计73.2 显示电路设计93.3 驱动电路设计123.4 按键电路设计133.5 数据采集电路设计134 控制器软件设计164.1 主程序设计164.2 显示子程序设计164.3 PWM输出子程序设计224.4 数据采集程序设计234.5 上位机程序设计274.6 其它子程序设计275 试验和调试305.1 DHT11温湿度传感器试验和调试305.2 SDS011激光传感器试验和调试305.3 上位机控制器试验和调试315.4 试验和调试32结论38致谢39参考文件40附录A :空气净化器主电路原理图41附录B :下位机C语言主程序42附录C :上位机C#语言主程序441 引言1.1
8、 课题研究背景及意义现在,在社会快速发展进步同时,空气污染情况也在日益加剧。伴随中国近几年发展,化石燃料和汽车尾气排放,使得中国空气质量严重下降,尤其是PM2.5细小微粒成为污染物罪魁祸首。其关键来自于大自然天然产生和人类实践活动。大自然污染关键来自于风沙、火灾和其它极端天气。人类活动污染关键表现在汽车尾气排放、煤炭发电厂、吸烟等社会活动。研究表明,PM2.5对人类生活健康水平有着极其恶劣影响,它能够经过呼吸道进入体内,对人体器官造成伤害。所以,检测出室内PM2.5浓度并进行有效治理直接关系到大家生活水平和身心健康。所以,依据这一现象,市面上出现了越来越多空气净化装置。其中,空气净化器使得这一
9、问题得以处理。对于长时间处于室内工作大家来说,空气净化器尤为关键。空气净化器能够对室内多个气体污染和灰尘颗粒等悬浮物进行有效处理,经过机内通风装置使室内空气循环流动,让空气得以净化。所以,对空气净化器研究有着十分现实意义。1.2 中国外发展情况多年来,受空气污染影响,空气净化技术蓬勃发展。由此,改善空气质量方法也逐步增多。现在,在市场上主流净化空气方法关键有:源控制、通风和空气净化。源控制是指对污染源头进行控制处理,其能有效从根本上处理空气污染问题,是国外很多城市处理空气污染关键手段。即使控制效果不错,但其成本也着实不低。通风控制也能降低室内空气污染程度,但其需要良好有效控制调整装置。空气净化
10、是指利用物理或化学等手段对空气中污染物进行吸附过滤等处理。或对部分有毒不良气体来说,高温、化学灭菌也是净化空气常见手段。早在上世纪七、八十年代,国外空气净化器已经有了发展,欧、美等发达国家在空气污染方面已经有了较深研究,尤其是对有害物体治理有了相当大改善。美国在当初是全球最大空气净化器消费国,伴随第三次科技革命到来,空气净化器快速蔓延。在日本,因为特定大气环境,在每十二个月春秋到来之际,花粉过敏者不计其数,所以,空气净化技术蓬勃发展。但大部分净化原理全部是基于过滤网物理吸附。现在,伴随智能时代快速到来,夏普、松下等国际品牌也加入其中。在欧洲,宠物受到大众们欢迎。一到夏季,室内因为宠物掉落毛发增
11、多而使空气受到严重污染。和此同时,因为宠物本身自带特殊气味或可能病菌等原因,使得空气污染源变得复杂。所以,这一现象迫使其空气净化装置发展。现在,其空气净化方法众多,技术处于全球优异水平。在中国,因为抗日战争缘故,起步相对较晚,直至改革开放,中国科技才有了初步进展。近几年,即使在经济发展上取得了举世瞩目标结果,但在空气清洁方面却相对于其它国家有一定差距。不管在国外亦或在中国,室内空气净化器是实现空气净化最直接、便捷仪器,尽管各国发展历程不尽相同,但从现在来看,空气净化器产品关键有以下多个:机械过滤式净化器、机械过滤吸附式净化器、静电式净化器、负离子净化器21、紫外光空气净化器等。 机械过滤式净化
12、器,是一个小型空气过滤器,空气经风机加压,经过过滤材料,从而净化颗粒污染物,只能除去一定大小颗粒污染物,总体净化效果不佳。 机械过滤吸附式净化器,分别采取不一样净化机理取出颗粒污染物和气态污染物,这种净化器将一般空气过滤技术和活性炭吸附技术结合起来,总体上改善了净化性能,但活性炭存在吸附饱和状态,比较麻烦,所以没有得到广泛应用。 静电式净化器,是一个静电式空气过滤器,对较大颗粒污染物效果很好,不过会产生臭氧等二次污染物,正被逐步淘汰。 负离子净化器,负离子净化器是现在被广泛使用一个净化器,经过强电场产生负离子和颗粒污染物结合形成“重离子”,沉降或吸附在物体表面,并能杀灭细菌,净化效果良好,不过
13、,这种空气净化器一样能产生臭氧,造成二次污染。紫外光空气净化器,是利用了紫外线原理经过紫外线照射,穿透微生物细胞膜,破坏多种病菌,细菌,寄生虫和其它致病体DNA结构,毁灭其核酸分子键,使细菌立即死亡或不能繁殖后代,从而达成消毒灭菌作用21。不管怎样,即使各国空气净化器发展全部有不一样,但总体来说,净化器种类正趋向于自动化、人性化、智能化等方向发展。现阶段,市场上产品种类繁多,价格混乱,即使外观各有不一样,但真正净化效果却大同小异。本文将以净化空气中PM2.5污染为起点,设计一个功效强大、操作方便、净化效果良好空气净化器。1.3 课题关键工作 本课题依据办公室工作环境实际情况和所学专业知识完成了
14、一款适合老师在办公室使用新型空气净化器控制系统设计。关键工作包含:(1) 对比了中国外发展情况,依据大家日常生活需求,提出了本课题总体设计方案及功效模块选择。包含控制模块选择、显示模块选择、数据采集模块选择等。(2) 完成了系统硬件电路设计。包含CPU外围电路设计、显示电路设计、驱动电路设计、各传感器接口电路设计等,搭建了一套完整硬件平台。(3) 完成了系统软件程序及界面设计。包含主程序设计、各子程序设计和上位机界面程序处理算法研究。(4) 对设计控制系统进行了全方面测试。包含待机显示界面、温湿度采集、空气质量检测、档位切换、开关机设定和无线通信等功效。经分析试验结果可知,本课题设计空气净化器
15、满足实际工作要求。2 控制器方案设计2.1 控制器总体方案设计依据所学知识及相关资料,本设计由供电电路、数据采集电路、驱动电路、按键电路、显示电路、上位机控制电路六部分组成。系统总体方案图2.1所表示。图2.1 空气净化器总体方案本设计中采取单片机作为空气净化器控制关键14。结合传感器、显示器、驱动器和无线收发器等关键部件共同完成了控制系统所要求功效。该空气净化器能够对室内PM2.5浓度和温湿度进行监测并经过无线模块发送至上位机,而且能够依据所测参数做出对应处理方法。含有良好节能效果和人机交互界面。总体设计原理图如附录A所表示。2.2 方案论证对比2.2.1 控制模块方案对比方案一:选择STC
16、12系列单片机作为主控芯片STC12系列单片机是一个工作方法和51系类相仿,但功效略强一款高速处理型单片机。工作频率可由分频器分频至0-35MHZ。它36个通用I/O口可经过程序设置成四种输入输出模式。该芯片有贴片和直插两种封装类型。拥有PCA高速输出功效,处理速度比51系列单片机快上很多。但其资源有限、处理速度相对于32系列较慢。所以,此芯片在本设计中有些力不从心。最关键是该芯片无法支持TFT_LCD液晶显示,更实现不了触屏功效。方案二:选择STM32系列单片机作为主控芯片STM32系列单片机工作时最高频率可达72MHZ,是STC12系列单片机6-72倍。其内部不仅集成FLASH存放器更是集
17、64K SRAM存放器于一体,拥有庞大数据存放功效。而且,该芯片内部含有RTC时钟电路,在外部有电源供电情况下能利用系统内滴答定时器连续不停地计时。不仅如此,这类单片机还拥有5个串行通讯端,能通时支持5类串行通讯设备,是其它单片机无法比拟。该芯片不仅有高速处理速度,而且拥有众多板载资源,功效十分强大。144个引脚使其足以支持任何功效。串行通讯端口使得其在读取PM2.5传感器数据同时能经过另外串口将数据快速传送至上位机。另外,该芯片能驱动TFT_LCD液晶屏,含有方便快捷控制效果。总而言之,本设计选择STM32系列单片机作为主控芯片。2.2.2 显示模块方案对比方案一:选择LCD12864液晶作
18、为显示模块LCD12864是一个多线串行接口方法点阵形液晶显示模块,其分辨率为128649。既能够用来显示字符,又能够经过汉字字库显示汉字。但其有限显示字数和复杂时序位置操作和简陋显示效果和其无法触控特点使得其并不完全适合充当本设计显示模块。方案二:选择TFT_LCD液晶作为显示模块TFT_LCD液晶屏幕分辨率为320240,16位真彩显示,可人为改变字体颜色和大小16-17。在屏幕上可分行分段显示大批量数据并可经过触控芯片和对应程序实现触屏功效。即使控制方法较复杂,但独特优势和方便操作使得其满足本设计要求。总而言之,本设计选择TFT_LCD液晶作为显示模块。2.2.3 驱动模块方案对比方案一
19、:选择L298N作为驱动模块 L298N电机驱动模块能将输入电压经过PWM控制方法实现连续可调输出。而且,其能同时驱动两路电机,并能给单片机提供5V电源接口。该模块工作电流相对较大,所以,需安装散热片进行散热处理。然而其价格廉价、控制简单适合本设计中风机调速控制。方案二:选择LM2596作为驱动模块LM2596模块能实现降压功效,体积相对较小,拥有大电容滤波电路。其输入电压为3-40V,输出电压范围为1.5-35V连续可调。但此模块只能经过手动按钮进行降压调整,若要经过电子进行调整电压输出,需要增加其它控制电路,比较繁琐。总而言之,本设计选择L298N作为驱动模块。2.2.4 PM2.5传感器
20、模块方案对比方案一:选择GP2Y1014AU粉尘传感器该模块为夏普企业生产一个粉尘烟雾传感器,能检测出很细微颗粒。装置中经过红外发光二极管利用反射原理检测灰尘在空气中含量。模块中心有一可供气体流通圆孔,使测量空气自由流通。其输出是和空气中粉尘浓度成正比电压模拟量,需经过A/D采集后转化成数字量显示浓度值。即使价格相对比较廉价,但对PM2.5等微小颗粒检测不是很敏感,对本设计有一定影响。方案二:选择SDS011激光传感器SDS011传感器依据激光散射原理测量空气中微小颗粒,当激光照射到悬浮颗粒物时会产生光散射,感光部件依据散射激光波形判定出颗粒物直径,经过不一样直径颗粒物反射出不一样形状波形,判
21、定其浓度大小,并依据换算公式转化成官方统一单位20。该PM2.5传感器操作方便,经过串行通讯根据一定波特率即可将十六进制数据读出,在单片机中简单转换成十进制即可。其数据测量正确、响应速度快,但价格略高。总而言之,本设计选择SDS011型激光PM2.5传感器。3 控制器硬件电路设计 3.1 单片机控制电路设计单片机控制电路是整个控制器中枢,起着发号施令作用。一个性能良好控制芯片对整个系统来说至关关键10。STM32F103ZET6基于CortexM3(CM3)处理器,不仅在功效上能满足题目标要求,而且在运行效果上也格外显著。该芯片性能强劲,工作频率高,72MHz工作频率使得整个控制过程取得更高处
22、理速度。完整基于CM3MCU还需要很多其它组件。其结构图3.1所表示。图3.1 单片机内部结构图然而,要想正确合理应用此单片机,仅仅依靠芯片本身是不行。其往往还需要外部时钟、复位、隔离等单元电路才能工作。其硬件电路图3.2所表示。图3.2 单片机硬件电路其中,晶振Y1为32.768KHz,提供外部低速时钟,在断电情况下经过外接CR1120纽扣电池为RTC实时时钟电路供电,使得其计时正确;晶振Y2为8MHz,提供高速外部时钟。电容C6、C7均为0.01F,在此作为电源滤波;RESET为复位按键,此款芯片单片机和TFT_LCD液晶同接在一个复位按键上。复位电路图3.3所表示。图3.3 单片机复位电
23、路3.2 显示电路设计3.2.1 TFT_LCD液晶显示电路设计显示电路是整个控制系统和用户交互媒介,是人机交流关键。常见显示有LED、LCD等方法,依据对市面上显示器对比,TFT_LCD显示出独特优势,它不仅含有良好画质,而且还能够设置成触控模式,方便用户操作。其硬件连接图3.4所表示。图3.4 TFT_LCD液晶硬件连接图图中PF8、PF9、PF10、PB2用来实现对液晶触摸屏控制,而PB0控制LCD背光。3.2.2 TFT_LCD触控电路设计TFT_LCD液晶屏不仅支持显示功效,而且还能经过专门控制芯片实现触屏功效。我们在市面上所见触摸屏最多为电阻式,而TFT_LCD 自带触摸功效也属于
24、电阻式触摸屏。因为STM32F1O3ZET6单片机没有集成液晶驱动器,所以需要借助 ILI9320驱动芯片经过FSMC接口对液晶进行控制。ILI9320芯片自带显存,拥有16位数据线,能够控制液晶显示内容字体大小、颜色、显示方向、显示区域等19,使显示功效变得简单易懂。为了正确有效得到触控位置,将电压信号模拟量转化为数字量,需要一个A/D转换芯片进行控制。本设计中采取XPT2046转换芯片,其原理框图图3.5所表示。图3.5 XPT2046原理框图XPT2046是一个经典逐次迫近型模数转换器,其包含了采样保持、模数转换、串口输出等功效。当控制触摸屏时,可将其设置为差分模式,可有效消除外部干扰和
25、寄生电阻带来测量误差,使转换精度更高4。其经典应用图3.6所表示。图3.6 XPT2046经典应用电路图3.2.3 数据存放芯片设计在初始化触控屏时需要将采集触控点经过I2C总线传送到存放芯片上,为下次初始化时免去繁琐校准程序。在本设计中,选择AT24C02作为存放芯片。该芯片为2K串行EEPROM,可存放256个8位字节。其硬件连接图3.7所表示。图3.7 24C02硬件连接图 其管脚功效如表3.1所表示。表3.1 24C02管脚功效管脚名称功效描述A0 A1 A2器件地址选择SDA串行数据/地址SCL串行时钟WP写保护VCC1电源正极GND电源负极如上所表示, 因为本设计中只采取一个存放器
26、来保留校准参数,所以为了连接方便,将A0、A1、A2引脚直接接地,使该芯片地址为0X00。SCL为串行时钟引脚,为传送数据提供时序,和单片机PB10连接。SDA为数据/地址引脚,和单片机PB11连接。其中R19、R20为上拉电阻,可增强驱动能力和电路稳定性。3.3 驱动电路设计风机运转是整个控制系统实施装置,反应着对指令实施效果,风机可靠运行和其驱动电路亲密相关。变压器将220V单相交流电变换到直流12V。单片机经过PWM占空比控制L298N驱动器电压输出,使其0-12V连续可调。L298N是一个在电机控制方面常见驱动芯片。其内部含有4路逻辑驱动电路。硬件电路图3.8所表示。图3.8 驱动电路
27、硬件连接图 其中,L298N驱动芯片能同时支持两路输入输出。其中ENA、ENB为驱动使能端,可由PWM控制。IN1、IN2为方向控制端,控制风机转向。OUT1、OUT2和OUT3、OUT4为两路电压输出端。因为该轴流风机为无刷直流电机,其内部自带换向器,所以只能输入无任何波动直流电,而输出端输出电压为占空比可调方波,为处理这一问题,并联了220uF电容进行滤波处理。3.4 按键电路设计在本设计中,采取按键调整方法对控制器开关机时间进行设置。因为只包含到小时和分钟更改,故采取两个独立按键调整。其硬件电路图3.9所表示。图3.9 按键电路硬件连接图其中,S1按键为高电平输入方法和PA0相连,S2按
28、键为低电平输入方法和PE4相接。在进入设置第三级菜单后,可经过按键方法设定开关机时间。3.5 数据采集电路设计3.5.1 温湿度传感器模块设计 DHT11传感器既能测量温度又能测量湿度,并以二进制数字形态返回。其采取单线制串行接口,使硬件电路连接简单,抗干扰能力强。内置自校准程序,将参数保留在芯片中,当传感器工作时需要调用这些系数进行自动校准。其温度测量范围为0-50度,精度为2度,湿度测量范围20%-90%,精度为5%RH。其硬件连接图3.10所表示。图3.10 DHT11温湿度传感器连接图DHT11供电电压为3-5V。因为采取单总线方法,故只需一个引脚即可,该引脚接在单片机PG11上,读数
29、时需经过严格时序。3.5.2 PM2.5传感器模块设计本设计中选择PM2.5传感器,利用激光散射原理能够正确测得空气中PM2.5浓度,操作简单,集成度高,内置散热风扇,数据稳定可靠。其实物图3.11所表示。图3.11 PM2.5传感器实物图该传感器经过串口和单片机PA10,PA11相连,既能测量PM2.5含量又能测量PM10浓度,只是输出引脚不一样。具体引脚定义如表3.2所表示。表3.2 SDSO11激光传感器引脚定义管脚名称备注1CTL控制脚,备用21um大于0.3微米颗粒物浓度,PWM输出35V5V电源输入425um大于2.5微米颗粒物浓度,PWM输出5GND地6R串口接收RX7T串口发送
30、TX即使此传感器测量结果精度较高,但其工作环境、输入输出电流大小不可忽略,具体技术指标如表3.3所表示。表3.3 PM2.5技术参考指标序号项目参数1测量输出PM2.5、PM102量程0.0-999.9微克/立方米3供电电压5V4最大工作电流100mA5休眠电流2mA6工作温度范围-20-507响应时间1秒8串口数据输出频率1次/秒9颗粒物直径分辨率0.3微米10相对误差10%11产品尺寸71x70x23mm4 控制器软件设计4.1 主程序设计空气净化器控制系统由初始化程序、触摸屏控制程序、按键处理程序、定时器中止程序、数据采集程序、RTC时钟程序、定时器中止程序、LCD显示程序、串口中止程序
31、、电机驱动程序和低功耗运行程序共同组成15。各子程序经过单片机主程序运算处理,实现了温湿度测量、PM2.5浓度检测、液晶显示、触屏控制、模式选择、数据传输和处理、电机控制等功效,达成了净化空气、人机交互、低功耗运行要求。在整个程序设计中,采取模块化编程方法,使程序愈加灵活,方便调用、移植、调试。具体工作步骤图4.1所表示。图4.1 主程序工作步骤图在接入电源后,单片机控制器开始工作,首先系统对所需功效进行初始化自检,在完成初始化后,实施触摸屏扫描程序,显示待机状态下菜单和测量参数和目前时间。当检测到屏幕被触摸后,系统依据其坐标判定所选择命令,并进入对应子程序。当“自动控制”按钮被选中时会进入自
32、动控制程序,系统依据测量PM2.5浓度自动调整风机转速,完成自动控制。当选中“手动控制”按钮时,显示手动控制下二级菜单界面,里面有档位选择和“返回”等按钮。当选中“设置”按钮后,系统会进入设置下二级菜单。可选择“开机时间”和“关机时间”两种,在对应三级菜单中,均可经过按键设置定时时间。最终,按“确定”按钮返回主界面。和此同时,单片机中止子程序一直在运行。定时器中止处理函数用于温湿度定时采集及显示,并向上位机发送参数。串口1中止函数实施对PM2.5采集和计算,并显示在液晶上。串口2中止函数将从上位机接收到数据进行处理,依据设定指令调用对应子函数。其下位机程序如附录B所表示。 4.2 显示子程序设
33、计本设计中,用TFT_LCD液晶屏显示测量得到参数,比如:时间、温湿度、PM2.5浓度、时间、界面等内容。然而要想正确控制液晶显示参数,需要对液晶及其控制器进行一系列校准和设置。具体操作步骤图4.2所表示。图4.2 液晶初始化程序步骤图如上图,在程序开始实施时,首先,判定液晶屏幕是否已经经过校准,若校准完成,则显示待机状态下菜单,不然需要经过校准程序进行校准;其次,判定LCD屏幕是否被触摸,若检测到,则读取对应触控点坐标,不然返回到待机状态下显示界面;最终,依据所得坐标,判定是否在设定区域,若在,则经过ILI9320驱动器经FSMC向LCD指定区域写命令,写数据,以达成界面切换或显示参数目标。
34、 具体分析以下: 1)时钟使能因为STM32单片机为每个外设功效全部设置了时钟开关,在需要时候打开,不需要时候将其关闭,以达成降低能耗作用。所以,在上电后,经过程序进行功效模块时钟使能。 2)初始化GPIO即通用输入输出口。在GPIO初始化时,需要将GPIO输出类型设置成为复用推挽输出,最大输出速度为50MHz。FSMC即静态存放控制器。本设计中单片机经过FSMC接口控制LCD,所以,LCD相当于片外SRAM。在FSMC初始化时,需要对地址线、数据线、写信号、读信号、片选信号进行设置。在触摸屏初始化时,首先初始化相关GPIO,并将其设置成为上拉模式,其次初始化24C02存放器,最终判定屏幕是否
35、已经校准。 3)单片机和存放器I2C通信单片机经过串行总线通信能够使硬件电路大大简化,提升可靠性。I2C总线只有两根双向信号线。当总线处于空闲状态时,两根信号线均为高电平6。当连接在总线上任一器件变低时全部能将总线信号拉低。主机若要和某个器件通信,则必需经过总线仲裁,依据地址来决定哪个器件作为接收器。单片机经过I2C和24C02通信步骤图4.3所表示。图4.3 I2C通信步骤图如上图,当单片机准备和24C02通信时,首先产生起始信号,为发送写命令做好准备,在发送完成后,等候应答信号,然后发送高地址、低地址,在信号线发出应答信号后,向该地址发送想要传输字节,最终等候接收应答,完成一次数据传输。I
36、2C在传输数据时,当初钟线为高电平期间,数据线传输数据必需保持稳定1。只有当初钟线为低电平时才许可数据改变。其传输状态图4.4所表示。图4.4 I2C数据传输状态在图4.3中,产生I2C起始和终止信号时序图4.5所表示。图4.5 起始信号和终止信号时序图u 起始信号程序设计:首先将信号线SCL、SDA拉高一段时间,然后将数据线SDA拉低,等候时间超出4us后,将时钟线拉低即可实现产生一个起始信号。u 终止信号程序设计:首先将信号线SCL、SDA拉低一段时间,然后将时钟线SCL拉高,等候时间超出4us后,将数据线拉高即可实现产生一个终止信号。在图4.3中,产生应答信号和非应答信号时序图4.6所表
37、示。图4.6 I2C产生应答信号和非应答信号时序u 应答信号程序设计:首先将SCL、SDA拉低,一段时间后将SCL拉高,等候时间超出4us后,将SCL拉低即产生一个应答信号,整个过程中SDA是处于低电平状态,在程序中以返回值“0”替换。u 非应答信号程序设计:首先将SCL拉低、SDA拉高,一段时间后将SCL拉高,等候时间超出4us后,将SCL拉低即产生一个非应答信号,整个过程中SDA是处于高电平状态,在程序中以返回值“1”替换。 在图4.3中,发送数据格式图4.7所表示。图4.7 数据传输格式当主机向从机发送数据时,每一个字节必需确保是8位长度。数据传送时,先传送高位,再传送地位。在每一个传送
38、字节后面全部会跟随一位应答位。当从机接收到数据后会产生一个应答信号,假如在一段时间后,主机并未收到从机应答信号,则自认为从机已经正确接收到数据。4)液晶屏幕校准触摸屏为绝对坐标系统,即每次坐标和上一次坐标没有任何关系。在理论上,同一点输出数据是稳定,但在实际中,因为技术等原因,无法确保每次在同一点输出数据保持一致,这时将会产生漂移现象。为了预防此现象发生,需要经过程序进行校准。然而,在程序中使用LCD坐标通常是以像素为单位,故需要经过程序将物理坐标转化为像素坐标。转化公式以下所表示:其中,LCD_X、LCD_Y为LCD上像素横纵坐标。Px、Py分别为触摸物理坐标。x_factor、y_fact
39、or分别为X、Y轴上百分比因子。x_shift、y_shift分别为X、Y轴上偏移量。屏幕校准步骤图4.8所表示。图4.8 液晶屏幕校准步骤图u 液晶屏幕校准:首先,在屏幕上显示已知坐标四个点,用户在校准过程中需要依次按下屏幕上这四个点5。单片机依据按下位置获取物理坐标,在判别坐标合理情况下,依据待定系数法计算出x_factor、y_factor、x_shift、y_shift参数,并将其保留到24C02存放器中。在以后使用中,将会根据这个参数来计算像素坐标,达成屏幕校准目标。u 坐标合理判别:在单片机读取四个物理坐标(设为、)后,分别测量坐标、距离。然后和设定四个坐标之间对应距离相比,若误差
40、小于ERR_LENGTH,则认为此坐标合理。在本设计中ERR_LENGTH取50。4.3 PWM输出子程序设计PWM即脉冲宽度调制,将恒定电压调制成频率、占空比可变一系列方波。单片机可利用定时器产生PWM波,并经过程序可设置输出频率和占空比。其PWM输出步骤图4.9所表示。图4.9 PWM输出步骤图如上图所表示,上电后,在实施到该子程序时,首先,设置TIM3_CCR2值,即定时器内高低电平切换值;其次,定时器3寄存器CR1以初始化中设置频率自加,当其值大于TIM3_CCR2设置值后,输出高电平,不然输出低电平;最终,当CR1等于初始化中设定上限值时,重置CR1为零,继续循环以上程序。所以能连续
41、不停输出频率周期一定高低电平。在程序运行过程中,可经过设置TIM3_CCR2值来改变输出PWM波占空比。4.4 数据采集程序设计4.4.1 温湿度传感器模块程序设计DHT11温湿度传感器采取单总线方法和单片机进行通信,仅仅需要一个引脚即可实现数据传输7。传感器内部温湿度数据经过引脚一次性传给单片机。其数据分为小数部分和整数部分。格式为:8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验和。其引脚功效如表4.1所表示。表4.1 DHT11引脚功效图Pin名称功效1VDD电源正极2DATA数据传输引脚3NC悬空4GND电源负极单片机PG11引脚和传
42、感器DATA相连,当准备和其通讯时由单片机发送开始信号。此时,传感器将转换成高速模式,直到主机开始信号结束后,DHT11对单片机进行响应处理,同时,送出采集到数据,并触发下一次信号采集8。在采集完成后将会转换到低速模式,等候下一次主机开始信号。其通讯过程图4.10所表示。图4.10 DHT11通讯过程首先,由主机拉低数据线,经过一段延时后,拉高数据线,等候大约30us后读取DHT11响应。在DHT发出响应输出后,保持一段时间,再将其拉高,这么就能够传输数据了。当数据传送至单片机后,由程序定义两个数组,分别存放温度和湿度数据。在经过简单运算后,由液晶显示函数显示在TFT_LCD对应位置。其具体步
43、骤图4.11所表示。图4.11 DHT11工作步骤图4.4.2 PM2.5传感器模块程序设计SDS011激光传感器是利用激光反射原理检测空气中PM2.5浓度值,并经过串行通讯将数据发送至单片机。其工作波特率为9600。具体步骤图4.12所表示。图4.12 PM2.5传感器工作步骤图图所表示,因为该传感器是经过串口进行通讯,故初始化串口后,当有数据传送时会进入串口中止,在中止函数中,将接收到数据保留至数组,然后依据公式计算出PM2.5浓度并经过显示函数将数据显示在LCD液晶屏上。a)串口通信:串口即经过串行方法通讯扩展接口,串行通讯线路连接简单可靠,但传输速度略慢。STM32F103ZET6单片
44、机拥有5个串口,在本设计中将串口1作为PM2.5数据接收端口,其接收和发送引脚分别为PA9,PA10。初始化步骤图4.13所表示。图4.13 串口初始化步骤图在初始化过程中,首先初始化所用功效时钟;然后将串口进行复位处理,以免受外设异常干扰;因为该传感器传输速度为9600位/秒,故在串口参数初始化中将波特率设置为9600;最终进行中止配置,设置中止分组和NVIC优先级。b)PM2.5浓度计算:SDS011激光传感器经过串口每次发送10位16进制数据,依次为:报文头+指令号+数据(6字节)+校验和+报文尾。各个具体定义如表4.2所表示。表4.2 激光传感器数听说明数据位说明数据位说明1报文头6P
45、M10高字节2指令号7传感器ID3PM2.5低字节8传感器ID4PM2.5高字节9校验和5PM10低字节10报文尾 因为本设计中只需测量PM2.5浓度即可,在串口中止中其浓度计算公式为:PM2.5浓度=(PM2.5高字节256+PM2.5低字节)/10单位为:ug/m34.5 上位机程序设计为了使空气净化器功效更完善,人机交互更智能化,在本设计中利用Visual Studio软件采取C#语言进行上位机界面设计。其软件功效图4.14所表示。图4.14 上位机软件显示界面该上位机软件控制界面不仅能显示由单片机经过无线模块传输过来参数,而且能够经过上位机控制下位机部分功效,使得本设计产品应用方便。在打开软件后,首先经过下拉菜单选择适宜串口和波特率,然后打开串口,就能够在界面上收到由下位机传送过来PM2.5浓度、温湿度等数据。经过“自动控制”按