基于物联网技术的空气净化器系统软件设计
2018-06-07王小雪张玉芳朱仁进杨小雨杨会成
王小雪,未 平,张玉芳,朱仁进,杨小雨,杨会成
(安徽工程大学 电气工程学院,安徽 芜湖 241000)
近年来,已经有很多公司为家用或办公用电器(包括空气净化器)进行物联网控制或改造.总体而言,物联网技术尚处于起步阶段,但是物联网技术市场的成熟度和广度正在不断成长[1-2].目前,包含物联网概念的空气净化器原型在市场上已有雏形,主要存在以下不足:空气流动速度是固定的,不管空气中的污染物和空气质量如何,空气净化器按设定的负荷运转,这种作业模式不合理且浪费能源;接触式操作以调控其作业状态;功能单一[3].空气净化器的干预可以显著减少室内PM 2.5水平,被人们一致认同[4].因此,开发一种基于物联网技术,集空气净化器和空气质量检测于一体的互联网+空气净化器系统软件是非常必要的[5].将基于物联网技术的空气净化器,结合PM 2.5检测,由单纯的空气净化器变为融合空气净化器、空气质量检测节点和网络接入节点的综合体.
1 系统实现原理及要求
1.1 系统实现原理
设计一种复合型双重净化类空气净化器,同时拥有被动吸附过滤式的滤网过滤技术和主动式的紫外杀菌技术.空气净化器通过风机将外部空气吸入,通过前置滤网将空气中的微生物、粉尘等部分颗粒状物质滤除,通过紫外灯祛除其中甲醛、苯等有毒气体,再由出风口送到周围环境.家用型的空气净化器使用220 V的工频电,为了保证工作时的低噪音,尽量使用无噪音的主动式空气净化技术,以及实时检测空气质量与联动机制,保证当空气质量在一定阈值以下时,部分或全部工作模块进入停止工作的状态.与此同时,还达到了节能的效果.考虑到部分使用者在特定的时间与场合下,不愿或不能到达空气净化器前通过按键对空气净化器发出一定的指令,故而设计了Wi-Fi通信和控制指令,同时为后续Android平台与IOS平台的控制程序预留了接口.针对大多数空气净化器采用人工调节节能,提出使用智能单元,通过检测空气中污染物浓度,协同电机和紫外灯工作,在达到同样的净化效果的前提下,调整空气净化器的运行功率,以达到节能降耗的目的.使用Wi-Fi通信,UDP通信协议与其他中继节点或上位机通信,进行远程遥控操作,利用最常见的无线通信方式作为通信手段,减少了额外的组网成本,致力于控制逻辑层面和硬件BSP层的实现和测试.
研究设计的空气净化器,最大的耗能组件是风机和紫外灯.风机的轴功率(P)是转速(n)的3次幂函数关系.从节能角度考虑,让风机长时间低速运转可能比风机短暂的全速运行后回到低速运行状态更加节能,但是后者的环境敏感度更高.当然,在空气环境极度恶劣的条件下,空气净化器依旧处于低速运转状态也不合理.所以需要通过传感器去判断外界环境参数,从而调整自身运转速度.因此,在风机控制方案中,变频调速应为首选方案.对于紫外灯的控制方案则选择了比较传统而又简单的二值控制.在需要紫外线杀菌和催化时,开启紫外灯,实现相应的功能.紫外灯的消耗功率是恒定的,但由于其打开时,瞬间电流过大,对其触点有着极大的损耗,所以其控制方案采用带迟滞的二值控制[6].
风机的控制方案模型采用带扰动的PID控制模型,其中的扰动表示为环境中的PM 2.5参数非理想变化以及人为的调速控制输入,使得误差值和设定值发生改变.使用STM32单片机对整个系统进行协调和控制,包括两个单独控制的控制对象——风机和紫外灯,还有Wi-Fi和按键等扰动输入.用ZPH01 PM 2.5传感器检测环境数据,作为控制决策的选择依据[7].控制决策发生变化时,所有的控制参数均会发生相应的改变,以符合新决策的实施.两个独立控制对象的调控是在总体决策的指导干预下完成的,彼此独立,但在计算实时控制参数的过程中相互关联,这样既能保证控制的效果,又能保证控制方案的可实现性[8-9].
研究涉及控制逻辑和上位机部分的设计,其针对的硬件平台主要部件及其相互连接关系如图1所示.
1.2 系统要求
全系统可以实现无人值守,参数设定、参数修改和系统查看均可通过上位机或自带人机交互界面进行,实现智能化、网络化和信息化,风机在切换档位时的过渡时间小于2 s.
2 系统硬件组成
2.1 STM32F103 VET6
STM32F103 VET6单片机属于STM32F103xx增强型系列,使用高性能的ARM Cortex-M3 32位的RISC内核,支持单周期乘法和硬件除法,支持内部锁相环倍频,工作频率最高可达72 MHz,丰富的增强I/O端口,内置高速存储器和连接到两条APB总线的外设.其工作电压处于2.0 V至3.6 V之间,环境温度要求在-40 ℃~105 ℃之间,带有一系列省电模式能确保低功耗应用的要求.
2.2 ZPH01 PM 2.5传感器
该传感器整合了成熟的VOC检测技术与先进PM 2.5检测机理,可以实现对VOC和PM 2.5的同时检测.传感器模组中的VOC检测对甲醛、苯、一氧化碳、氨气、氢气、酒精、香烟和香精等有机挥发气体具有极高的灵敏度.PM 2.5检测采用粒子计数原理,可灵敏检测直径1 μm以上灰尘颗粒物.使用UART输出,输出格式为9 600 bps,8位数据位,1位停止位,无校验位,并在模块中固化,每隔1 s向外发送数据.
2.3 RM04 Wi-Fi通信模块
基于通用串行接口且符合网络标准的嵌入式模块,内置TCP/IP协议栈,实现用户串口与无线网接口之间的转换.通过HLK-RM04模块,传统的串口设备在不需要更改任何配置的情况下,即可通过Internet网络传输数据,通信模式示意图如图2所示.此通信模式支持IEEE 802.11n、IEEE 802.11g和IEEE 802.11b协议.
图2 通信模式示意图
2.4 人机交互
通过OLED可以显示当前的PM 2.5值,方便用户观察实时数据.通过按键和LED实现近距离交互式系统设置,方便不同群体(老年人用户)的操作.在硬件模块中设置2个LED和2个按键,通过按键实现对档位的增和减,2个LED通过3种不同的亮灯组合,表示高中低3个档位.
3 系统软件设计
3.1 系统软件功能设计
上位机软件程序负责系统的监控、数据汇总、显示、提供人机界面、接受用户的操作,最重要的一点是实现远程无线操作和监控的功能.上位机作为一个交互的界面与平台,提供图形化的操作界面,通过后台对前台信息进行编码、判断及处理.
使用TCP/IP协议簇,利用现有网络通信,降低控制端的额外成本.利用现有的电脑、手机、PDA等一切支持IPV4/IPV6协议的设备,从而降低控制端对于硬件上的要求和成本,同时也能节省无线信道资源.使用2.4 GHz公共频段,降低对其他无线信道的干扰问题和实现无线通信的技术实现成本.上位机软件本身的底层功能不多,接收下位机通过Wi-Fi传输过来的数据,并通过软件比对解析,调用相应的处理机制进行后续操作.
设计采用.NET平台,使用C#语言,利用维护简单的UDP协议编程,降低开发成本.使用其中的UDP库完成UdpClient的创建、设置和维护,并建立UDP通信,收发数据包,UDP使用IP协议为基础,面对无连接的网络通信协议,提高了连接的使用效率,同时还降低了其维护成本,实现数据的实时交互[10].
3.2 系统软件功能的实现
下位机软件程序负责对上位机发送指令的解析和响应,并及时反馈各种状态给上位机,以供其进行决策(包括对风机和紫外灯的控制策略).主程序通过对HAL层的API调用,完成对硬件的读写操作,HAL层的API主要以读写为主,通过函数封装成具体的操作指令函数,便于应用代码的编写和调试.
通过对上位机发送指令字符比对,得到字符所包含的真实信息和指令,对这些信息和指令分析、判断和执行相应的动作.如果通过比对发现在本地指令库中其所对应的状态与现有状态相一致,则会返回错误信息,告知上位机,提示其指令重复,同时将该指令抛弃,读取或等待下一条指令.使用定时器计数获得电机控制中PID控制方案的反馈量,并每隔一个固定的时间对其读数清零.为防止计数的定时器数据溢出导致反馈失效,对上一次对其读数清零后的溢出中断发生次数进行统计,读数时,将其相对应的脉冲数进行累加统计,得到真实的反馈量.为了保证PID控制运算输出量在有效控制的前提下,并保持节能的效果,采用饱和处理,防止在有较大扰动的环境中出现高能耗的情况.
图3 系统功能模块框图
系统功能模块总框图如图3所示.下位机软件使用STM32F103作为硬件环境,在开发时使用STM32 V3.5的固件库,方便开发.在软件逻辑控制部分代码书写过程中,遇到一些改变标志位的操作,为了简明直接,并不使用API函数封装调用,而是直接在应用层中将其值进行读改写的操作,同时也降低了函数跳转的额外CPU资源开销.
下位机软件在各种状态发生变化的时候,会刷新相应的记录量和标志位,通过原子操作的方法,保证读写记录量和标志位与空气净化器实际运转状态保持一致.人机交互使用按键、LED和OLED屏,其中按键作为输入设备,LED灯和OLED屏作为输出设备.按键使用外部中断进行响应,提高实时响应速率,能保证交互过程的使用体感.
3.3 风机控制模块
风机控制采用PID控制策略,其实现程序流程图如图4所示.实现风机控制模块的关键代码见附件1.
图4 风机控制流模块流程图
4 结束语
设计了一种基于物联网技术的室内空气智能净化系统.利用STM32F103VET6单片机控制原理,结合PM 2.5检测器、Wi-Fi通信和UDP通信协议实现融合空气净化器、空气质量检测节点和无线网络接入节点的智能家居综合体.该空气净化系统具有智能化、网络化以及人性化的特点,其不仅拥有净化空气的能力,同时具有空气质量检测的功能.物联网技术在空气净化系统中的应用也能让其更智能地控制和管理,给更多的用户带来更加舒适、高效和便捷的家居生活.
附件1 风机控制模块的关键代码:
void PID_realize(float speed)
{
int index;
pid.SetSpeed=speed;
pid.err=pid.SetSpeed-pid.ActualSpeed;
if(pid.ActualSpeed>pid.umax)
{
if(fabs(pid.err)>200)
index=0;
else
{
index=1;
if(pid.err<0)
pid.integral+=pid.err;
}
}
else if(pid.ActualSpeed { if(fabs(pid.err)>200) index=0; else if(fabs(pid.err)<180) { index=1; if(pid.err>0) pid.integral+=pid.err; } else { index=(int)(200-fabs(pid.err))/20; if(pid.err>0) pid.integral+=pid.err; } } else { if(fabs(pid.err)>200) index=0; else { index=1; if(pid.err>0) pid.integral+=pid.err; } } pid.voltage=pid.Kp*pid.err+index*pid.Ki*pid.integral/2+pid.Kd*(pid.err-pid.err_last); pid.err_last=pid.err; pid.ActualSpeed=pid.voltage*1.0; } [1] 卿勇.智能家居发展及关键技术综述[J].软件导刊,2017,16(1):180-182. [2] 王怡,鄂旭.基于物联网无线传感的智能家居研究[J].计算机技术与发展,2015,25(2):234-237. [3] 吴日欣,凌锋,刘会景.我国空气净化器技术现状专利分析[J].情报工程,2015,1(5):77-85. [4] H K PARK,K C CHENG,A O TETTEH,et al.Effectiveness of air purifier on health outcomes and indoor particles in homes of children with allergic diseases in Fresno,california:a pilot study[J].Journal of Asthma,2017,54(4):341-346. [5] 房金宝,韩宇光,张贤益,等.智能空气净化器的设计与开发[J].科技创新与应用,2017(3):66-63. [6] 王贞艳,张臻,周克敏,等.压电作动器的动态迟滞建模与H_∞鲁棒控制[J].控制理论与应用,2014,31(1):35-41. [7] D CONTINI,A GAMBARO,F BELOSI,et al.The direct influence of ship traffic on atmospheric PM 2.5,PM 10 and PAH in venice[J].Journal of Environmental Management,2011,92(9):2 119-2 129. [8] T ITOH,I MATSUBARA,M NISHIBORI,et al.Calibration gas preparation for non-disposable portable MOx,PID,and IER VOC detectors[J].Sensor Letters,2012,10(3-4):985-992. [9] V POMAREDA,S LOPEZ VIDAL,D CALVO,et al.A novel differential mobility analyzer as a VOC detector and multivariate techniques for identification and quantification[J].Analyst,2013,138(12):3 512-3 521. [10] M H WANG,L W CHEN,P W CHI,et al.A reliable UDP-based transmission protocol over SDN[J].Ieee Access, 2017(5):5 904-5 916.