版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-5-绪论1.1研究背景与意义随着城市工业及交通运输业的不断发展,大量的有害物质被排放到空气中,对人体健康产生了极大危害REF_Ref17006\r\h[1]。世界卫生组织的数据表明,每年有320万人因家庭空气污染产生疾病过早死亡。室内主要空气污染物有PM2.5和甲醛这两种,它们各自具有显著的健康风险,并且相较于单一污染物,PM2.5与甲醛的复合污染更加剧其毒性。室内空气净化领域多数采用单一除尘技术,自动化程度不高,部分产品采用集成芯片及相关电器元件提高空气净化系统自动化水平,使系统能够实现,达到更好的净化效果,根据不同的空气状况选择不同的除尘净化技术,让用户更加方便省心REF_Ref2669\r\h[2]。基于单片机技术的多功能室内净化器设计正是针对上述需求而提出的一种解决方案。本课题主要开发一种能监测并响应多种关键参数,如温湿度、PM2.5浓度、甲醛浓度的多功能空气净化器系统。这样的系统可以集成多种传感器,通讯和算法逻辑,实现对不同污染物的有效管理和对室内空气的自动调控,告知用户室内空气质量等功能。同时多参数净化还有以下价值体现:在健康防护层面,空气净化器监测系统能够实时监测并传输室内空气指标,如果超出预设的安全范围,立即发出警报提醒用户,保障用户安全。通过网络传输数据,实现远程移动控制,提高便捷性。涉及传感器、物联网等技术,可以促进相关领域互联,提高测量可行性、准确性。综上所述,本文的的目标是实时监控空气中的有害物质和污染物,减少因空气污染引发的健康问题,还能通过优化室内环境,提升工作效率和居住舒适度REF_Ref2783\r\h[3]。1.2国内外研究现状国外对于室内空气质量的研究起步较早,并且已经形成了较为完善的理论体系和技术框架。近年来,国外在空气净化领域的研究呈现多技术融合与智能化升级趋势。一方面,美国早在20世纪70年代,就以模拟智能监控设备为核心,开始了气象研究,在全世界遥遥领先,就可以简单的对某一环境数据进行动态监测与控制。随后,伴随着芯片技术的猛烈发展,日本也提出了一种新的监控方法——双向反馈控制方法,来对空气重的环境数据进行动态监控。另一方面,国外在智能化监控的实际应用中,也非常普遍,无论是在室内还是室外,都可以实现精细化管理。在国内,关于室内空气质量的研究,近年来得到了广泛关注。国内的许多研究团队都在积极研究相关技术。例如,华南理工大学2021提出“检测-净化”分离式架构,通过蓝牙Mesh组网实现多房间联合调控;海尔集团2023推出搭载UWB定位技术的净化器,可依据人员分布动态调整送风方向;小米生态链企业2022开发了支持HomeKit协议的空气净化模块,实现与空调、加湿器的跨设备联动。总体来讲,不管是国内还是国外,在室内空气净化方面研究都在往更高效、更便捷的方向发展,都在探索更有效的解决办法来改善室内空气质量,努力打造一个更健康、舒适的居住环境。1.3研究主要内容本文主要对影响室内空气的主要因素进行调查,了解实际需求,研究一个基于单片机的室内多功能净化器设计。本系统采取“检测-决策-执行”闭环控制原理的系统架构。首先通过温湿度传感器、PM2.5传感器、甲醛传感器对环境的关键参数进行实时监测,当环境数值在所设的安全阈值内时,执行模块不启动。当温度高于所设定阈值时,打开风扇进行降温;当湿度低于所设阈值时打开加湿器增加空气湿度;当PM2.5浓度高于所设阈值时,打开负离子发生器净化空气;当甲醛浓度高于所设阈值时,打开风扇和负离子发生器中和甲醛。同时配备蓝牙模块,用户可以通过显示屏在近端查看,也可以通过手机在远端查询测量数据,实时了解空气质量参数REF_Ref3048\r\h[4]。
系统方案设计2.1模块选型2.1.1主控系统选型控制模块的核心是主控芯片,本甲醛监测系统的芯片选择有两种方案,其分析如下:方案一:STC89C52芯片,属于8位的高性能控制器,要求程序空间位8K,具有32个通用的I/O口,在使用的时候不需要另外的编程器和仿真器,具有简易程序性,且内置了3个16位的定时器。但是,由于STC89C52采用的是一种CMOS工艺,要求电源供给较高,因此使用起来功耗较高;且使用STC89C52芯片开发的程序,在执行过程中速度有限,无法满足一些特定场景需求;此外,STC89C52芯片的内存无法满足海量数据的运行,只适合小型程序的开发。方案二:STMF103C8T6芯片,是ARMCorteex-M3的内核,具有32位CPU、64K的存储器容量、72MHz的系统时钟、10×12bit的模数转换器A/D,片内外设主要有存储器(DAM)、电机控制脉冲宽度调制(PWM),具有快速处理数据的能力,可以支撑复杂的算法和程序REF_Ref3711\r\h[5]。该芯片还集成了多种通信接口、ADC转换器、定时器等,能供各种传感器和其他外设进行连接,适合空气净化器这种需要长时间运行的应用场景,STMF103C8T6芯片还具有低功耗性,性价比相对STC89C52芯片来说更高。因此,开发本系统选择的是STMF103C8T6单片机。2.1.2环境监测模块选型本系统所采集的环境信息包括温湿度、PM2.5以及甲醛,依据采集所得数据来判定环境是否异常。构建全面的环境监测系统的时候,选对传感器可是确保数据准确、系统可靠的关键。以下是不同参数下传感器的具体选择及其理由:在采集温湿度时,本系统选用了DHT11传感器。DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,其应用专用的数字模块采集技术和温湿度传感技术,包含一个电容式感湿元件和一个NTC测温元件,可以和单片机直接相连REF_Ref4066\r\h[6]。在标准状况下,湿度测量的精度为±4%RH。温度被测量的精度能达到±1℃,且能在1秒内完成采样周期。DHT11传感器的数据格式包含8位整数与小数。其数据可直接显示,也可用作其他计算。在PM2.5的采集上,本系统选择了GP2Y1014AU粉尘传感器。它是原理是通过激光散射,与空气中的粉尘接触时,导致激光变弱衰减,而这个衰减的量就是监测到的PM2.5含量,得到一种光信号,粉尘浓度越高,散射光越强,输出信号越大。其具有较高的灵敏度和准确性,最小可以探测到0.8微米的粒子,适合用于室内空气质量监测,尤其是需要精确测量PM2.5浓度的应用场景。在采集甲醛含量时,本系统选用JW01甲醛传感器。JW01甲醛传感器是专门检测空气中甲醛浓度的传感器。它能精准检测甲醛气体,即便有微量甲醛污染也能及时察觉。其次,它稳定性与可靠性良好。长期使用时仍能保持测量精度,确保数据可靠性,以满足空气净化器长期使用需求。JW01具备低功耗、易集成、工作温度范围广这些特点,很适合室内检测甲醛。2.1.3显示模块选型显示模块选用OLED12864液晶显示屏。它是近几年硬件程序使用最为常见的输出设备,显示效果颜色清晰,界面细腻。且响应速度与按键切换等操作一致,支持IIC或SPI接口通信,便于与嵌入式系统连接,简化了硬件设计,具有高效、寿命长的优势特点。因此,在本系统中,选择使用OLED12864显示屏作为程序的输出设备,可以将温湿度、PM2.5、甲醛、执行器状态等实时动态的显示在显示屏上,让用户可以清晰的看到数据,并通过指令控制显示内容。2.1.4通信模块选型在通信方式的选择上,主要考察ZigBe与蓝牙两种方案,以下是对这两种通信方式的详细分析。方案一:Zigbe这一无线通信技术,是基于IE802.15.4标准的。它能实现短距离、低功耗、低速率通信,是为物联网应用而特意设计的。它支持多节点网络,能实现数百节点的互联互通,安全性与灵活性皆高。不过,Zigbe传输速率较低,通常在250kbps以下。它可能不适合高速数据传输的应用,而且普及程度不如蓝牙。方案二:蓝牙是个短距离的无线通信技术,它靠短距离的无线连接,让不同设备能交换数据。它可快速传输数据,适合快速传输数据的空气净化器,其时延低,还能快速传输,可满足对数据快速传输的需求。蓝牙模块使用JDY-31,本模块支持串行接口,支持SP蓝牙串口协议,数据传输比BLE蓝牙快,可达到8Kb/s以上的速率,支持与Android手机通信,具有成本低、体积小、收发灵敏性高等特点,只需配备少许的外围元件就能实现大功能REF_Ref4155\r\h[7]。所以,本文采用方案二的蓝牙无线通信方式。2.1.5系统总体架构空气净化器的总体架构围绕核心控制器STM32F103C8T6单片机构建,负责数据处理和整个系统的逻辑控制。室内环境中的温湿度、PM2.5、甲醛浓度,分别通过DHT11温湿度传感器、GP2Y1014AU粉尘传感器、JW01甲醛传感器进行实时采集,并将采集到的信号传送到单片机进行分析处理,单片机再传送环境信息到显示模块,即OLED12864液晶显示屏上。单片机处理这些数据,一旦监测到任一指标超出预设范围,系统会立即激活相应的执行装置,如温度过高打开风扇继电器,湿度过低打开加湿器继电器,PM2.5过高打开负离子发生器,甲醛浓度过高时打开风扇继电器和负离子发生器继电器。与此同时,用户可通过按键模块灵活切换系统的工作模式、手动调控执行器的状态或设定各项参数的安全阈值。如果某一环境参数超过所设阈值,在启动相应执行模块的同时会在其当前数值之后打叉告知用户,以示警告。最后,系统通过蓝牙通信技术于APP上位机进行联系,实现数据和指令的交互,达到远程监控的目的。各个模块之的联系如图2.1系统总体设计框图所示。图STYLEREF1\s2.SEQ图\*ARABIC\s11系统总体设计框图2.2APP设计APP使用E4A进行设计,E4A是基于谷歌Simple语言的编程工具,旨在实现通过类似易语言的Basic语法,轻松编写Android操作系统的应用程序,也是国内首款中文可视化安卓应用开发工具REF_Ref4458\r\h[8]。通过蓝牙通信技术与上位机App建立连接后,操作人员可以直接通过App远程监控甲醛检测状况,可以实时的看到温湿度、烟雾浓度、PM2.5含量和甲醛含量。同时可以下发指令,切换程序的功能模式,在手动模式下,可以分别控制风扇、报警器的状态,以及设置各项参数的阈值。其APP的功能如图2.2所示。图STYLEREF1\s2.SEQ图\*ARABIC\s12APP功能图
系统硬件设计3.1主控模块电路设计本系统的主控模块是STM32F103C8T6型号的单片机,它是一款基于ARMCortex-M3内核的32位微控制器,由意法半导体生产。它以高性能、低成本和低功耗著称,广泛应用于各种嵌入式系统中。其电路设计如下图3.1。图STYLEREF1\s3.SEQ图\*ARABIC\s11STM32最小系统3.2传感器模块电路设计传感器模块有DHT11温湿度传感器电路、GP2Y1014AU粉尘传感器电路、甲醛JW01传感器电路构成。DHT11温湿度传感器是一个集成化的数字温湿度传感器,通过单总线协议与主控芯片通信。在该传感器中可以直接将电信号转换为数字信号,原因是DHT11传感器直接集成了一个16位的AD转换器,可以更加直接、灵活地监测到环境温湿度变化。将采集到的温湿度以数字信号传送给单片机的PA0口,单片机将控制指令通过该引脚传送给传感器。其电路图如下图3.2所示。图STYLEREF1\s3.SEQ图\*ARABIC\s12DHT11温湿度传感器电路设计GP2Y1014AU粉尘传感器通过内置的红外光源照射空气中的颗粒物,当PM2.5等微小颗粒物存在时,这些颗粒物会反射或散射光线。传感器中的光电二级管作为接收器,会捕捉到这些散射或反射回来的光线,并将其转换为电信号输出。GP2Y1014AU传感器通过单总线的方式,实现PM2.5信号的传输通信。其电路图如下图3.3所示。图STYLEREF1\s3.SEQ图\*ARABIC\s13粉尘传感器电路设计JW01传感器是一款的空气质量传感器,可以同时监测甲醛和总挥发性有机化合物。传感器中包含了一个光源和光探测器,由光源来向周围发送光束,该光束穿透甲醛的时候,会将其吸收,从而导致光强发生一定程度的变化,并被光探测器接收,将其转换为电信号,得到甲醛的实际浓度。其电路如图3.4所示。图STYLEREF1\s3.SEQ图\*ARABIC\s14甲醛传感器电路设计3.3按键模块电路设计在嵌入式系统设计中,矩阵按键模块的设计对于实现用户与系统的交互至关重要。按键模块有四位矩阵按键,分别代表不同的功能,在未按下任何按键时,按键内部的触点是断开的,因此电路处于高阻态或逻辑高电平状态。当某个按键被按下时,对应的行和列线之间会形成电气连接,导致该行或列的电平发生变化,从而被微控制器检测到。KEY1、KEY2、KEY3、KEY4分别通过PB5、PB6、PB7、PB8接口与主控模块电路连接,实现信号传输。本系统的4个按键KEY1、KEY2、KEY3、KEY4,它们的功能如下。KEY1为阈值设置按键,按键按下设置各个环境参数的阈值;在手动模式中负责风扇的开关。KEY2为模式切换按键,可以在自动控制和手动控制中切换;在阈值设置中为增加阈值按键。KEY3在手动模式中负责加湿器的开关;在阈值设置中为减小阈值按键。KEY4在手动模式中负责负离子发生器的开关。其电路设计如图3.5所示。图STYLEREF1\s3.SEQ图\*ARABIC\s15按键模块电路设计3.4报警模块电路设计在本系统中,选取声光报警设备作为超限报警器件,其不但具有源蜂鸣器,还具备显示灯,当污染物浓度超过一定限值时,有源蜂鸣器发出报警指示音,显示灯亮红灯REF_Ref4566\r\h[9]。首先,有源蜂鸣器的工作机制。它内部集成了振荡电路和放大器电路,当电流通过有源蜂鸣器时,其内置的振荡器会生成一个固定的频率信号,这个信号就是蜂鸣器发声的基础。随后,该信号会被放大器进一步增强,确保声音足够响亮。图3.6展示了这一设计的具体电路布局,其中三极管起到开关的作用,根据单片机发出的指令开启或关闭蜂鸣器的声音输出。图STYLEREF1\s3.SEQ图\*ARABIC\s16报警模块蜂鸣器电路设计3.5显示模块电路设计数据显示采用的是液晶显示屏,该显示屏人机交互体验良好,便于数据的观察和读取,可将测出的温湿度、PM2.5和甲醛的值直观醒目地展示在显示屏上REF_Ref4811\r\h[10]。在本系统中,选用了一块0.96英寸的OLED显示屏作为信息输出装置,电源供给部分,通过接入VCC为OLED屏幕提供电力支持。SCL构成了时钟控制电路的一部分,它负责管理显示内容的时间同步问题,并与主控板上的PA14接口相连接,确保数据传输过程中的时间基准准确无误,从而保证了显示内容更新的实时性供必要的电力支持,内置驱动电路是实现OLED像素发光的核心组件。SDA为数据传输电路,与主控模块的PA15接口连接,从而可以将程序的数据显示到液晶屏上。如图3.7所示。图STYLEREF1\s3.SEQ图\*ARABIC\s17显示模块3.6执行模块电路设计本系统的执行模块采用直流风扇构建空气净化功能模拟装置,其控制逻辑基于多参数联合判据:当温湿度、PM2.5浓度、或甲醛含量超过预设阈值,或湿度低于安全范围时,表征空气质量恶化并触发净化机制。因此,当监测到空气质量不达标时,单片机将触发继电器动作,使得连接在其后的风扇、加湿器、负离子发生器,开始进行空气循环和污染物排出的过程。其电路如图3.8、3.9和3.10所示。图STYLEREF1\s3.SEQ图\*ARABIC\s18加湿器电路设计图STYLEREF1\s3.SEQ图\*ARABIC\s19风扇电路设计图STYLEREF1\s3.SEQ图\*ARABIC\s110负离子发生器电路设计3.7通信模块电路设计JDY-31蓝牙模块,这是实现无线通信的基础,通过UART接口实现与外部设备的数据交换,支持全双工通信,即可以同时发送和接收数据,同时它支持多种波特率,常见的有9600bps、115200bps等。JDY-31蓝牙模块通常由蓝牙芯片、天线、晶振、电容器等硬件组件组成。蓝牙芯片是模块的核心,负责处理蓝牙通信的所有功能,包括信号的接收、解码、编码和发送等。当JDY-31蓝牙模块接收到来自其他蓝牙设备的信号时,天线会捕获这些信号并将其传递给蓝牙芯片。蓝牙芯片会对信号进行解码处理,将其转换为数字信号。解码后的数字信号会被蓝牙芯片进一步处理,以提取出有用的信息。这些信息会通过串口接口转发给主控板或其他外部设备。JDY-31模块也能够接收来自主控板或其他外部设备的数据,并将其编码进行发送。其电路如图3.9所示,引脚1作为电源引脚,引脚4作为接地引脚,引脚2、3作为串行通信引脚,可以接收、发送数据。图STYLEREF1\s3.SEQ图\*ARABIC\s111通信模块电路设计3.8硬件总体设计本系统的硬件设计基于模块化思想,以STM32F103C8T6单片机为核心控制器,通过传感器采集环境参数,结合执行模块、显示模块、通信模块等,实现室内空气质量的实时监测与调控。硬件总体设计框图如图3.12所示,各模块功能及连接方式如下:主控模块负责数据采集、逻辑判断、阈值比较、执行模块控制及通信管理。传感器模块负责采集室内环境参数并传递给单片机。执行模块由继电器控制电路,风扇继电器由PB12控制,用于降温或通风。加湿器继电器由PB13控制,用于调节湿度。负离子发生器继电器由PB11控制,用于净化PM2.5和甲醛。由蜂鸣器和LED组成声光报警系统。4个按键,用于模式切换、阈值设置及手动控制。OLED12864实时显示环境参数及系统状态。蓝牙模块通过UART(PA3-TX,PA2-RX)与单片机通信,实现手机APP远程监控。5V的电源输入为单片机、传感器及执行模块供电。3.3VLDO稳压为STM32及部分低功耗外设供电。图STYLEREF1\s3.SEQ图\*ARABIC\s112硬件总体设计框图
系统软件设计4.1编译语言介绍本系统选择的编程语言是C语言。C语言是一种通用的、过程式的计算机编程语言,广泛用于系统软件与应用软件的开发。C语言提供了丰富的数据类型和运算符,支持结构化编程,使得代码清晰易读且易于维护。C语言中编译器负责对寄存器的指派和寻址方法进行管理,无需考虑内存地址、数据类型等具体问题,指定操作的变量选择组合提高了程序的可读性,可使用与人的思维更相近的关键字和操作函数REF_Ref4889\r\h[11]。所以C语言高效性、灵活性和接近硬件的能力,让它成为了嵌入式系统、操作系统、以及其他应用程序的首选语言。4.2主程序设计主程序设计是软件开发中的核心部分,它定义了程序的入口点以及如何组织和调用不同的模块来完成特定的任务。首先初始化程序各功能模块,打开蓝牙,选择设备与之连接配对,建立上下位机的连接。然后通过按键或者App来选择程序的功能模式,再设置参数阈值;然后启动程序传感器设备开始采集空气中PM2.5含量、温湿度高低、甲醛含量,并将信号进行数模转换为数字信号显示到OLED显示屏上。如果选择自动模式,程序会根据采集到的信号进行判断是否符合要求,若不在要求范围内,由主控模块自动控制报警设备进行预警,且启动风扇进行空气净化;如果选择手动模式,操作用户可以根据采集到的信号情况,手动控制按键或者远程APP来启动和关闭对应的净化设备开关。其程序总体软件设计流程如图4.1所示。图STYLEREF1\s4.SEQ图\*ARABIC\s11程序总体软件流程设计4.3传感器模块程序设计传感器模块的大体设计为,先采集温湿度、PM2.5浓度、甲醛浓度,并将采集到的信号进行放大、滤波、模数转换等过程后,传输给单片机。首先,根据设定的采样周期,从传感器中读取数值。对于通过模拟信号输出的传感器,需要先经过模数转换器将其转换成数字信号。然后,对获取的数据进行处理,如滤波去除噪声,确保数据准确性。将处理后的数据发送到主控单元,并显示在OLED屏幕上以及上传至云端。当传感器出现故障或返回异常值时,重新采集空气质量的数据。以温湿度传感器为例,首先开机进行初始化,做好等待信号准备,得到单片机的指令后,开始对外部环境的温度与湿度进行采集数据。其传感器模块的软件流程设计如图4.2所示。图STYLEREF1\s4.SEQ图\*ARABIC\s12传感器模块软件流程设计4.4按键模块程序设计按键模块在许多嵌入式系统中扮演着重要角色,它提供了用户与设备交互的一种简单且直接的方式。当用户按下按键时,按键内置的触点与程序电路发生触碰,产生闭合电路,发送该按键下的命令给MCU,从而得到相应的输出,例如改变阈值的大小、切换功能模式、控制执行器或者报警器设备的开关等。按键模块的软件流程设计如图4.3所示。图STYLEREF1\s4.SEQ图\*ARABIC\s13按键模块软件流程设计4.5显示模块程序设计本系统的显示模块选择的是OLED显示屏,通过半导体材料进行发光,从而达到显示的目的,其工作流程如下图4.4所示。首先,使用OLED12864液晶显示屏的显示模块前,需要进行初始化操作,并检测其忙信号状态,确保忙信号处于低电平状态后才能继开始续执行后续操作REF_Ref4978\r\h[12]。设计控制电路中的实时控制显示数字信号控制模块主要设计采用的显示信号格式可以用来实时控制显示空气净化器的工作运行内容REF_Ref5027\r\h[13]。当程序通电后,电流分别从显示屏的阴阳两极注入至内部的半导体有机材料中,形成一种激子,并且有规则地进行移动,寻找自己所在的位置,以光子的形式释放出来,使得OLED显示屏发出对应的光亮。图STYLEREF1\s4.SEQ图\*ARABIC\s14OLED显示模块软件流程设计4.6执行模块程序设计执行模块在嵌入式系统中负责根据传感器采集的数据和用户通过按键或App设定的参数,执行相应的控制操作,包括启动风扇进行空气净化、触发报警设备发出警报等。根据环境数据,如PM2.5含量、温湿度、甲醛含量,判断是否需要采取行动。在自动模式下,依据预设的阈值自动控制净化设备和报警装置。执行模块软件流程设计如下图4.5所示。图STYLEREF1\s4.SEQ图\*ARABIC\s15执行模块软件流程设计4.7通信模块程序设计通信模块为蓝牙通信。蓝牙用于传输Android平台上开发应用程序,用来可视化实时数据,将这些数据上传到设计的Web服务器中,在智能手机上显示数据REF_Ref5102\r\h[14]。首先,对蓝牙设备进行初始化,当用户在智能设备中开启蓝牙功能时,设备的蓝牙模块会自动启动并开始工作。蓝牙会发射广播信号并扫描周围的蓝牙设备,在扫描到需要连接的蓝牙设备后,两个设备之间会开始配对过程。在两个蓝牙设备配对成功后,它们间会建立一个独立的通信链路,实现通信。蓝牙通信通过发送和接收数据包来传输数据。数据包中包含了要传输的信息以及必要的控制信息,如地址、错误检测码等。其通信模块的软件流程如下图4.6所示。图STYLEREF1\s4.SEQ图\*ARABIC\s16通信模块软件流程设计
系统仿真5.1Proteus仿真软件介绍指本项目采用的仿真工具是Proteus,这是一款在电子设计领域内广泛应用的综合性软件。与其它产品相比,Proteus不仅支持电路原理图的设计和PCB布局,还特别强化了对微控制器仿真的支持,集成了虚拟仪器功能,能够满足从概念到成品的完整电子产品开发需求。Proteus的优势在于其用户友好的界面和详尽的学习资源,无论是新手还是有经验的工程师都能够迅速掌握并应用。此外,Proteus还允许用户根据个人偏好定制界面风格,并通过脚本编程实现自动化任务处理,增加了使用的灵活性。5.2系统仿真模块分析5.2.1阈值仿真模块通过多次按下KEY2进行各个环境参数的阈值设置,如图5.1。设置温度上限为30度,设定湿度下限为25%,设定甲醛浓度上限为200ppm,设定PM2.5浓度上限为200ug/m3图STYLEREF1\s5.SEQ图\*ARABIC\s11各个环境参数的阈值图5.2.2温度仿真模块当前通过DHT11传感器对室内的温湿度进行监测,并进一步控制执行模块的状态。温度高于设定的阈值时,风扇继电器打开,进行排风和声光报警系统;低于阈值时,关闭风扇继电器和声光报警系统,停止排风和报警。如图5.2为设定温度上限为30度,当前温度为38度的情景下系统工作图,风扇指示灯亮即风扇打开。图5.2中“Auto-Mode”表示当前为自动模式,“T:38°X”表示当前温度为38度,温度显示后的“X”表示当前温度高于所设温度阈值。“R:30%”表示当前湿度为30%。“HCHO:0000ppm”表示当前甲醛浓度为0ppm。“PM:149ug/m3”表示当前PM2.5浓度为149ug/图5.SEQ图\*ARABIC\s12温度大于设定阈值图5.2.3湿度仿真模块湿度低于设定的阈值时,加湿器继电器打开进行加湿和声光报警系统;高于阈值时,关闭排风设备和声光报警系统,停止排风和报警。如图5.3为设定湿度下限为25%,当前湿度为20%的情景,加湿器指示灯亮。图STYLEREF1\s5.SEQ图\*ARABIC\s13湿度小于设定阈值图5.2.3甲醛仿真模块甲醛监测通过串口模拟室内的PM2.5浓度,进行监测并进一步控制执行模块的状态。甲醛高于设定的阈值时,即继电器外接排风设备打开,进行排风和声光报警系统;低于阈值时,关闭排风设备和声光报警系统,停止排风和报警。如图5.4模拟设定甲醛浓度上限为200pppm,当前甲醛浓度为1085ppm的情景下系统工作图,负离子发生器和风扇指示灯亮。图STYLEREF1\s5.SEQ图\*ARABIC\s14甲醛浓度大于设定阈值图5.2.4PM2.5仿真模块PM2.5监测是通过滑动变阻器模拟室内的PM2.5浓度,并进一步控制执行模块的状态。PM2.5高于设定的阈值时,负离子发生器继电器和风扇打开,并进行声光报警;低于阈值时,关闭负离子发生器继电器和声光报警系统。如图5.3模拟当前设定PM2.5浓度上限为200ug/m3,当前PM2.5浓度为206ug/m图STYLEREF1\s5.SEQ图\*ARABIC\s15PM2.5浓度大于设定阈值图
硬件实物系统6.1硬件系统搭建本系统的硬件部分,供电模块、传感器模块、按键模块、报警模块、显示模块、执行模块组成。其中,主控模块使用STM32F103C8T6型号的单片机MCU,能够成功的向各个外设发送、接收程序指令,并对数据进行逻辑运算和处理。传感器模块由GP2Y1014AU粉尘传感器来检测空气中的PM2.5含量,DHT11传感器来检测空气中温湿度高低,JW01传感器来检测甲醛含量,分别通过与主控模块上的引脚接口进行连接,实现数据传输和控制,能够成功采集并转换空气质量信息。报警模块使用有源蜂鸣器和LED灯实现,当采集到的数据存在异常时,MCU控制电流通过蜂鸣器,产生震荡源,发出警报声音进行提示,同时进行LED灯闪烁;显示模块使用0.96寸的OLED显示屏来将采集到的数据、功能模式等信息显示读出。如图6.1所示。图STYLEREF1\s6.SEQ图\*ARABIC\s11实物整体展示6.2硬件电路测试6.2.1温度监测模块温湿度监测由DHT11温湿度传感器进行监测,执行模块有风扇继电器。当环境温度高于阈值时,风扇继电器打开,表示风扇运转的红色指示灯亮,并会在温度显示后会有一个“X”表示当前温度高于所设温度,用于报警值设置;低于阈值时,关闭风扇继电器和声光报警系统。效果如图6.2。图STYLEREF1\s6.SEQ图\*ARABIC\s12温度高于阈值效果图6.2.2湿度监测模块当环境湿度低于阈值时,加湿继电器打开,红色指示灯亮,在湿度显示后会有一个“X”表示当前湿度低于所设湿度值;低于阈值时,关闭加湿继电器和声光报警系统。效果如图6.3。图STYLEREF1\s6.SEQ图\*ARABIC\s13湿度低于阈值效果图6.2.3甲醛监测模块甲醛监测由JW01甲醛传感器进行监测,执行模块有负离子发生继电器。当环境甲醛高于阈值时,负离子发生继电器和风扇打开,并亮起红色的指示灯,在其甲醛显示后会有一个“X”表示当前甲醛浓度高于所设甲醛浓度;低于阈值时,关闭负离子继电器、风扇和声光报警系统。因实际情况难以提高甲醛浓度,所以当前演示甲醛浓度低于所设阈值情况,效果如图6.4。图STYLEREF1\s6.SEQ图\*ARABIC\s14甲醛浓度低于阈值效果图6.2.4PM2.5监测模块PM2.5监测由GP2Y1014AU粉尘传感器进行监测,执行模块有负离子发生继电器。当环境PM2.5高于阈值时,负离子发生继电器打开并亮起红色指示灯,在其显示后会有一个“X”表示当前PM2.5浓度高于所设PM2.5浓度;低于阈值时,关闭负离子继电器和声光报警系统。效果如图6.5。图STYLEREF1\s6.SEQ图\*ARABIC\s15PM2.5浓度高于阈值效果图6.2.5手动控制模块模式转换可通过KEY2从自动控制进入手动控制模式,KEY1负责风扇的开关;在阈值设置中为增加阈值按键;KEY3负责加湿器的开关;KEY4负责负离子发生器的开关。如下图6.6为通过KEY1按键,打开风扇继电器,红色指示灯亮。图6.6中“Handmode”表示当前为手动模式,“FANON”表示风扇继电器打开,“JIASHIOFF”表示加湿器继电器关闭,“LIZIOFF”表示负离子发生器继电器关闭。图STYLEREF1\s6.SEQ图\*ARABIC\s16手动控制风扇打开效果图6.3APP显示模块本系统的软件部分,以手机App终端的形式展示。包括数据查询、功能模式设置、远程监控的功能。首先,使用手机连接蓝牙,与硬件设备进行配对,配对成功后,进入到手机App的界面,可以查看到实时的检测数据,以及当切换到手动模式后,可以下发数据指令。用户也可以在Android应用程序中激活和停用警报系统REF_Ref5236\r\h[15]。其上App的软件界面实现如图6.2所示。图STYLEREF1\s6.SEQ图\*ARABIC\s17系统APP实现图在APP中直观的显示当前温度、湿度、甲醛浓度、粉尘浓度以及它们的阈值,当前环境参数不在阈值范围内时将告警,高亮当前运行的执行模块。如图6.8为温度高于阈值时显示温度告警,字体由黑变红;并高亮“开风扇”字体,更直观的显示给用户。图STYLEREF1\s6.SEQ图\*ARABIC\s18APP显示温度高于阈值效果图
结论7.1总结本文主要研究了基于单片机的多功能室内空气净化器设计,使用温湿度传感器,粉尘传感器,甲醛传感器来获取室内空气质量数值,传递到单片机内进行数据的处理和分析。本文设计的空气净化器系统可以实现以下功能:自动模式中当温湿度、PM2.5浓度、甲醛浓度超过所设阈值时,单片机控制对应的执行继电器开始工作并进行声光告警。通过按键可以控制温湿度、PM2.5浓度、甲醛浓度的阈值增减。手动模式中通过按键控制执行模块的开启和关闭。在OLED显示屏上显示当前环境的数值,以及数值是否正常。通过蓝牙传输,在APP中同步显示当前环境参数以及执行情况,以及手动控制各个继电器的开关,实现远程控制。7.2展望本文室内空气净化器的设计,实现了对室内温湿度、PM2.5浓度、甲醛浓度的监测,但是本项目还有许多值得探索和改进的空间,如:执行模块都使用继电器控制,没有完成具体的风扇、加湿器、负离子发生器的设计。考虑引入更多类型的传感器和执行模块以扩展系统的功能,如光照传感器、开关窗帘等,以便更全面地监控环境参数并给予用户更舒适的生活环境。开发更友好的用户界面和用户体验设计,当前设计还在简洁直观的环节,以后可以增加个性化选项,允许用户根据自己的偏好调整界面设置,如字体大小、主题颜色等。
参考文献杨娟,李克诚.一种智能控制的车载空气净化系统[J].汽车电器,2023,(08):32-34.辛静静,袁静,朱明亮,顾婧怡,王飞龙,崔馨文,赵子晨.基于STM32智能空气净化器设计[J].电脑知识与技术,2024,20(30):104-107.周成虎,张利,王丽娜,朱春.上海市某典型住宅空气质量与能耗监测分析[J].绿色建筑,2024,16(4):147-151.陈裕成,沈周锋.STM单片机家用空气质量监测器设计与实现[J].闽南师范大学学报(自然科学版),2022,35(4):50-57.周朝霞.基于STM32F103C8T6的蓝牙智能垃圾桶设计[J].无线互联科技,2022,19(12):65-67.金沐辰.DHT11温度传感器和GY-906温度传感器在室内环境的应用[J].石河子科技,2024(6):23-24.姬明君,房鸿超,宋蕾,钱琪丰,徐永刚.基于蓝牙传输的温度检测系统[J].物联网技术,2024,14(5):57-59.魏陈成.一种基于Android的船舶无线监控系统设计[J].中国修船,2023,36(1):15-20.任桂芹,田必勇.基于物联网技术的煤矿井下粉尘浓度监测方法[J].能源与环保,2022,44(11):278-283.张浩华,王爱利,李哓慧,刘凡杨,程骞阁,柴欣.基于Arduino和OneNet云平台的空气净化系统设计[J].沈阳师范大学学报(自然科学版),2022,40(4):314-318.林威甫.基于STM32单片机的空气质量检测除尘系统的设计与研究[J].电子技术与软件工程,2022,(13):113-117.董敏.基于单片机的黑板粉尘监测清除装置设计[J].变频器世界,2024,27(11):94-97.马德明.基于单片机+物联网控制的校园空气净化计划系统设计[J].电脑编程技巧与维护,2021,(07):58-59.PurkayasthaDK,MishraKR,ShilA,etal.IoTBasedDesignofAirQualityMonitoringSystemWebServerforAndroidPlatform[J].WirelessPersonalCommunications,2021,118(4):1-20.SaidatulAN,KoayLW,AmizaA,etal.AnIoT-BasedAlarmAirQualityMonitoringSystem[J].JournalofPhysics:ConferenceSeries,2023,1755(1):012035-.附录A程序源码main函数头文件#include"delay.h"#include"sys.h"#include"oled_iic.h"#include"stm32f10x_tim.h"#include"GPIOLIKE51.h"#include"ds1302.h"#include"dht11.h"#include"stmflash.h"#include"stm32f10x_iwdg.h"#include"key.h"#include<stdio.h>//类型定义和变量声明typedefuint8_tu8;DHT11_Data_TypeDefDHT11_Data;//存储DHT11传感器的温湿度数据externu8SET_soil;externvoidesp8266_usart_isr(void);externunsignedcharjw01_index;externunsignedcharjw_temp[20];externunsignedcharcnt_jw01;typedefstruct{unsignedinttvoc;unsignedintch2o;unsignedintco2;}JW01;JW01jw01;//实际存储传感器数据的变量//函数声明externvoidUsart_SendString(USART_TypeDef*USARTx,unsignedchar*str,unsignedshortlen);externvoidTIM2_Init(void);externvoidTIM3_Init(void);//定时器初始化externvoidKeyctrl(void);externvoidKey_Init(void);//按键控制和初始化externvoiduart_init1(u32bound);externvoidUsart2_Init(u32bound);//串口初始化externvoidreport_app(void);externintmoshi;externintmode;externvoidesp8266_usart_isr(void);externvoiddata_send_uart(unsignedcharp);externvoidAdc_Init(void);externvoidad_light(void);externvoidad_press(void);externvoidad_voice(void);externu16Get_Adc_Average(u8ch,u8times);uint16_tADCVal;u8wenbao,shibao,jiabao,fenbao;externvoidFENCHEN_Init();externu8SET_HUMI_L;externu8SET_HUMI_H;externu16SET_HCHO;externu16SET_PM25;externvoidLED_Init(void);externvoidBEEP_Init(void);externvoidFAN_Init(void);externvoidHUMI_Init(void);externvoidJIASHI_Init(void);externvoidLIZI_Init(void);externintyemian;//0默认模式2手动模式externunsignedcharesp8266_buf[30];unsignedcharWiFi_Module_DataSent[40];//定义发送数组长度externintpwr_vol,pwr_vol1,pwr_vol2;externunsignedcharLgraed;u16ad1,ad2,ad3;u8flat;u8ceshi;u8bofang_flag;u8yaobai_flag;intdustVal=0;u8fengshan_flag;u8shuibeng_flag;externuint8_tSET_TEMP;externuint8_tSET_HUMI;externuint8_tSET_HOUR;externuint8_tSET_MIN;externunsignedcharcnt_pwm;doubleSleep_time;uint16_tread_data[10];//PM2.5传感器数据读取floatGP2Y10_Value(void){floatVoltage;PMLED=0;//置1开启内部LEDdelay_us(280);//开启LED后的280us的等待时间ADCVal=Get_Adc_Average(4,5);//读取ADC值delay_us(40);//延时19us,AD采样周期239.5,耗时21us19加21加280为320usPMLED=1;//置0,关闭内部LEDdelay_us(9680);//需要脉宽比0.32ms/10ms的PWM信号驱动传感器中的LEDVoltage=3.3*ADCVal/4096;//获得AO输出口的电压值if(Voltage>0.2)dustVal=((Voltage-0.2)/7.5)*1000;//无粉尘测量电压0.2Vx粉尘=(y-初始值)*斜率7.5(1.5v对应0.2mg/m3)elsedustVal=0;if(dustVal<0)dustVal=0;if(dustVal>999)dustVal=999;//最大上限returndustVal;//返回PM2.5值}//OLED显示voiddisplay_time_RH(){Read_DHT11(&DHT11_Data);{OLED_ShowCH(0,2,"T");OLED_ShowCH(8,2,":");OLED_ShowNum(16,2,DHT11_Data.temp_int,2,16);OLED_ShowCH(32,2,"¡ã");if(DHT11_Data.temp_int>SET_TEMP){OLED_ShowCH(40,2,"X");//超限时标记X}else{OLED_ShowCH(40,2,"");}OLED_ShowCH(72,2,"R");OLED_ShowCH(80,2,":");OLED_ShowNum(88,2,DHT11_Data.humi_int,2,16);OLED_ShowCH(104,2,"%");if(DHT11_Data.humi_int>SET_HUMI_H||DHT11_Data.humi_int<SET_HUMI_L){OLED_ShowCH(112,2,"X");}else{OLED_ShowCH(112,2,"");}}GP2Y10_Value();OLED_ShowNum(24,6,dustVal,3,16);if(dustVal>SET_PM25){OLED_ShowCH(88,6,"X");}else{OLED_ShowCH(88,6,"");}}//数据填充函数voidprepareLightData(){WiFi_Module_DataSent[0]='T';//数据头标识WiFi_Module_DataSent[1]=DHT11_Data.temp_int%100/10+'0';//温度十位(ASCII转换)WiFi_Module_DataSent[2]=DHT11_Data.temp_int%10+'0';//温度WiFi_Module_DataSent[3]=DHT11_Data.humi_int%100/10+'0';//湿度WiFi_Module_DataSent[4]=DHT11_Data.humi_int%10+'0';//湿度WiFi_Module_DataSent[5]=jw01.co2%10000/1000+'0';//甲醛4位数据WiFi_Module_DataSent[6]=jw01.co2%1000/100+'0';//WiFi_Module_DataSent[7]=jw01.co2%100/10+'0';//WiFi_Module_DataSent[8]=jw01.co2%10+'0';//WiFi_Module_DataSent[9]=dustVal%1000/100+'0';//PM2.5WiFi_Module_DataSent[10]=dustVal%100/10+'0';//WiFi_Module_DataSent[11]=dustVal%10+'0';//if(DHT11_Data.temp_int>SET_TEMP){wenbao=1;}else{wenbao=0;}WiFi_Module_DataSent[12]=wenbao+'0';if(DHT11_Data.humi_int>SET_HUMI_H||DHT11_Data.humi_int<SET_HUMI_L){shibao=1;}else{shibao=0;}WiFi_Module_DataSent[13]=shibao+'0';if(jw01.co2>SET_HCHO){jiabao=1;}else{jiabao=0;}WiFi_Module_DataSent[14]=jiabao+'0';if(dustVal>SET_PM25){fenbao=1;}else{fenbao=0;}WiFi_Module_DataSent[15]=fenbao+'0';WiFi_Module_DataSent[16]=SET_TEMP%100/10+'0';//温度WiFi_Module_DataSent[17]=SET_TEMP%10+'0';//温度WiFi_Module_DataSent[18]=SET_HUMI_L%100/10+'0';//湿度WiFi_Module_DataSent[19]=SET_HUMI_L%10+'0';//湿度WiFi_Module_DataSent[20]=SET_HCHO%10000/1000+'0';//甲醛4位数据WiFi_Module_DataSent[21]=SET_HCHO%1000/100+'0';//WiFi_Module_DataSent[22]=SET_HCHO%100/10+'0';//WiFi_Module_DataSent[23]=SET_HCHO%10+'0';//WiFi_Module_DataSent[24]=SET_PM25%10000/1000+'0';//PM2.5WiFi_Module_DataSent[25]=SET_PM25%1000/100+'0';//WiFi_Module_DataSent[26]=SET_PM25%100/10+'0';//WiFi_Module_DataSent[27]=SET_PM25%10+'0';//if(yemian==0){WiFi_Module_DataSent[28]=0+'0';}if(yemian==7){WiFi_Module_DataSent[28]=1+'0';} if(FAN==1) { WiFi_Module_DataSent[29]=1+'0'; } else { WiFi_Module_DataSent[29]=0+'0'; } if(JIASHI==1) { WiFi_Module_DataSent[30]=1+'0'; } else { WiFi_Module_DataSent[30]=0+'0'; } if(LIZI==1) { WiFi_Module_DataSent[31]=1+'0'; } else { WiFi_Module_DataSent[31]=0+'0'; } Usart_SendString(USART2,WiFi_Module_DataSent,32);//发送设备连接请求数据}//主函数intmain(void){delay_init();//延时函数初始化NVIC_Configuration();//设置NVIC中断分组2:2位抢占优先级,2位响应优先级HZ=GB16_NUM();OLED_Init();//初始化OLED屏幕OLED_Clear();OLED_ShowCH(0,0,"Automode");//自动模式OLED_ShowCH(0,2,"T:R:");OLED_ShowCH(0,4,"HCHO:");OLED_ShowCH(0,6,"PM:000ug/m3");uart_init(9600);//初始化串口1Usart2_Init(9600);//初始化串口2Key_Init();//按键初始化BEEP_Init();//蜂鸣器初始化Adc_Init();//ADC初始化FAN_Init();//风扇控制初始化JIASHI_Init();//加湿器控制初始化LIZI_Init();/离子发生器控制初始化FENCHEN_Init();TIM3_Init();//0.5ms按键计数,定时器3初始化STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)read_data,6);ceshi=read_data[5];if(ceshi==11)//第一次存储时使用,避免初值位255{SET_TEMP=read_data[0];//读取Flash中的配置值SET_HUMI_L=read_data[1];//湿度下限SET_HUMI_H=read_data[2];//湿度上限SET_HCHO=read_data[3];//甲醛SET_PM25=read_data[4];//PM2.5ceshi=read_data[5];}else{SET_TEMP=30;//使用默认配置SET_HUMI_L=20;SET_HUMI_H=80;SET_HCHO=100;SET_PM25=100;ceshi=2;}FAN=JIASHI=LIZI=1;//主循环while(1){Keyctrl();//处理按键切换模式if(yaobai_flag==1)//如果需要发送数据{prepareLightData();//打包并发送数据yaobai_flag=0;//重置标志}esp8266_usart_isr();if(yemian==0)//自动模式,根据传感器数据控制设备{display_time_RH();if(cnt_jw01==1)//计算并显示甲醛数据{cnt_jw01=0;if(jw_temp[0]==0x2C){jw01.co2=jw_temp[4]*256+jw_temp[5];}}if(jw01.co2>2000)jw01.co2=2000;elseOLED_ShowNum(40,4,jw01.co2,4,16);OLED_ShowCH(72,4,"p");OLED_ShowCH(80,4,"p");OLED_ShowCH(88,4,"m");if(jw01.co2>SET_HCHO){OLED_ShowCH(96,4,"X");}else{OLED_ShowCH(96,4,"");}if(DHT11_Data.temp_int>SET_TEMP||DHT11_Data.humi_int>SET_HUMI_H||jw01.co2>SET_HCHO){FAN=1;}else{FAN=0;}if(DHT11_Data.humi_int<SET_HUMI_L){JIASHI=1;}else{JIASHI=0;}if(jw01.co2>SET_HCHO||dustVal>SET_PM25){LIZI=1;}else{LIZI=0;}if(DHT11_Data.temp_int>SET_TEMP||DHT11_Data.humi_int<SET_HUMI_L||DHT11_Data.humi_int>SET_HUMI_H||jw01.co2>SET_HCHO||dustVal>SET_PM25){BEEP=0;}else{BEEP=1;}}if(yemian==7)//手动模式{if(FAN==1){OLED_ShowCH(0,2,"FANON");//开风扇}else{OLED_ShowCH(0,2,"FANOFF");//关风扇}if(JIASHI==1){OLED_ShowCH(0,4,"JIASHION");//开加湿器}else{OLED_ShowCH(0,4,"JIASHIOFF");//关加湿器}if(LIZI==1){OLED_ShowCH(0,6,"LIZION");//开负离子发生器}else{OLED_ShowCH(0,6,"LIZIOFF");//关负离子发生器}}}}
附录BAPP源码变量K1开关为文本型变量K2开关为文本型变量曲线计数为整数型变量音效1为整数型变量音效载入完成为逻辑型变量音效2为整数型变量蓝牙连接状态为逻辑型变量音效2载入完成为逻辑型变量启动时间为长整数型变量连接设备信息为文本型变量K3开关为文本型变量串口报错计次为整数型变量串口数据组合为字节型(1024)变量串口计次为整数型变量超时计次为整数型变量串口数据完成为逻辑型 变量标志告警为逻辑型变量报警处理为逻辑型常量协议长度为整数型= 31事件主窗口.创建完毕() 权限操作1.申请全部权限() 音效播放器1.初始化播放器(2) 音效1=音效播放器1.载入音效("1.wav") 音效2=音效播放器1.载入音效("alarm.wav") 音效载入完成=假 音效2载入完成=假 主窗口.可否滚动=假蓝牙连接状态=假 如果蓝牙1.是否存在()=假则 信息框("信息","本机找不到蓝牙设备,程序将退出!","确定") 结束程序() 结束如果 如果蓝牙1.是否已开启()=假则 蓝牙1.开启蓝牙() 结束如果结束事件 事件音效播放器1.载入完毕(音效ID为整数型) 判断音效ID 分支音效1 音效载入完成=真 分支音效2 音效2载入完成=真 结束判断结束事件 函数播放音效(音效x为整数型)为整数型 判断音效x 分支音效1 如果音效载入完成=真则 音效播放器1.播放音效(音效x,0) 结束如果 分支音效2 如果音效2载入完成=真则 音效播放器1.播放音效(音效x,0) 结束如果 结束判断结束函数 事件主窗口.按下某键(键代码为整数型,传址屏蔽为逻辑型) 如果键代码=返回键则 如果取启动时间()-启动时间>2000则 弹出提示("再按一次退出程序") 启动时间=取启动时间() 否则 结束程序() 结束如果 结束如果结束事件事件蓝牙1.蓝牙设置完毕(设置结果为整数型) 判断设置结果 分支1'开启蓝牙 弹出提示("蓝牙已开启") 蓝牙1.置可被发现()'置可被发现 分支2 '不开启蓝牙 信息框("信息","蓝牙未被开启,程序将退出!","确定") 结束程序() 分支3 '置可被发现 弹出提示("蓝牙已设置为可被发现") 蓝牙1.置工作模式(2)'蓝牙设置为串口通信模式 分支4 '不置可被发现 信息框("信息","蓝牙未被设置为可被发现,程序将退出!","确定") 结束程序() 结束判断结束事件事件按钮1.被单击() 位置传感器1.开始监测() 蓝牙1.断开连接() 按钮1.标题="搜索中..." 列表框1.可视=真 列表框1.清空项目() 蓝牙1.搜索设备()'搜索设备 弹出提示("正在搜索")播放音效(音效1) 蓝牙连接状态=假结束事件事件蓝牙1.发现设备(设备名称为文本型,设备地址为文本型,是否已配对为逻辑型) 如果是否已配对=真则 按钮1.标题="搜索到以下设备" 列表框1.添加项目(设备名称&""&设备地址&""&"点击连接") 结束如果结束事件事件列表框1.表项被单
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论