一种智能的无线温度控制系统设计与实现
2015-12-23隋竹翠翁新烁
隋竹翠, 韩 磊, 熊 畅, 翁新烁
(武汉大学 电子信息学院,湖北 武汉430072)
0 引 言
随着生活水平的提高,人们对家居舒适度、方便性、实用性和智能化等需求逐渐增强,靠人用遥控器控制空调、调节室温的传统方式已经难以满足人们的需求[1]。因此,需要开发一套智能化的、方便与实用的温度控制系统对空调进行控制来实现家居温度控制的智能化。
本文提出了一种基于ZigBee 无线通信的智能温度控制系统。系统集信息显示、人工温度控制和智能温度控制功能于一体,通过收集分布在室内的温度传感器与人体红外传感器的监测数据,结合用户自身的温度设置偏好,采用反向传播(back propagation,BP)神经网络算法对用户的温度控制操作作出预测,智能地为用户控制空调调节室温。系统采用ZigBee 无线通信技术减少系统的布线复杂度,同时采用红外遥控技术来控制空调,兼具智能、方便和实用的特点。
1 系统总体设计
系统主要分为传感终端、控制终端和主控制台,它们之间通过ZigBee 无线方式通信,可分置于室内不同的地方[2]。
系统主控制台的输入来自传感终端,传感终端分为两种,①人体红外传感器终端,放置于家中各处用于检测用户在家与否;②温度传感器终端,分置室内不同地方处,用于采集室温。所有的传感终端采集的传感信息通过ZigBee 无线方式发送至ZigBee 协调器,再由协调器传给主控制台;主控制台负责存储、显示并结合智能处理方案来处理传感信息,发出控制信息;控制信息通过协调器以无线方式发送至控制终端,控制终端实现对空调的控制。系统主体结构如图1 所示。
图1 系统的主体结构
系统主控制台的智能处理方案分为智能预测和突发情况处理两种。智能预测是通过BP 神经网络算法找出用户有规律的温度设定特征和关闭(或开启)空调的时间段,并预测在接下来的具有相似特征的时间段内,是否要提前关闭(或开启)空调或设定空调温度。突发情况处理是指基于人体红外传感器、温度传感器的监测信息,对于特殊情况,系统将在智能预测的结果上,对控温操作进行调整。主控制台处理温度控制操作的优先级为人工操作高于突发情况处理高于智能预测。
2 实现方案
2.1 系统硬件设计
系统选用德州仪器公司的CC2530 片上系统(SoC)[3]解决方案来构建ZigBee 无线网络。CC2530集成了一个8051 单片机和IEEE 802.15.4 兼容无线收发器,RF 内核控制模拟无线模块,通过扩展引出通用接口来与外部器件连接[4]。在本系统的ZigBee 网络中,连接传感器或控制器的CC2530 模块叫做ZigBee 终端,连接主控制台的CC2530 模块叫做ZigBee 协调器。协调器建立ZigBee 无线通信网络,终端加入该网络后实现数据的无线传输[5]。
ZigBee 终端与传感器共同组成传感终端。传感器分为温度传感器与人体红外传感器两种,各传感器将实时采集的信息通过I/O 接口发送给CC2530 微处理器,再无线发送至ZigBee 协调器。
温度传感器采用一线器件DSl8b20,其温度测量范围为55 ~125℃,它本身输出数字信号,无需外部信号放大调理电路,以单总线方式通信[6];人体红外传感器采用HC-SR501 人体感应模块,3 ~7 m 感应距离,100°感应锥角。人进入其感应范围则输出高电平,人离开感应范围则自动延时关闭高电平,输出低电平[7]。为了更加准确地测得整个空间的温度,温度传感终端要分多个放置在室内不同的地方。人体红外传感终端也要有放置多个,覆盖室内各区域。
ZigBee 协调器与搭载ARM9 芯片的嵌入式设备组成主控制台。由于ARM9 嵌入式设备上的RS232串口为CMOS 电平,故需先经过一个CMOS 转TTL 接口电路,再以UART 方式与ZigBee 协调器连接。
ZigBee 终端与控制器(空调红外控制模块)共同组成控制终端。其中,空调红外控制模块以UART 串口方式与ZigBee 终端的CC2530 连接,它接收到控制信息后进行分析和实现输出控制红外信号编码,红外发射电路将信号编码转变成红外载波信号以实现对空调的控制[8]。
系统硬件结构图如图2 所示(由于篇幅限制,各传感终端只画一个,实际有多个)。
2.2 系统软件设计
主控制台的软件开发基于Linux 操作系统[9-10]。通过主控制台的触控屏幕可以实现人机交互,人机交互的图形用户界面GUI 使用Qt 软件进行开发[11],软件的前台部分包含显示区与控制区:显示区对室内温度、室内是否有人等信息进行显示;控制区则是相关的空调控制按键,方便用户实现人工操作。
主控制台的后台智能处理方案包括智能预测、突发情况处理。首先系统会有一套默认的温度设定方案,从用户第一天使用该系统起,系统便开始记录用户近50 天每天每半小时的设置数据,包括用户对空调的开关、开空调时设置的温度、以及当时的时间、室内气温和用户是否存在等数据。每更新一次数据,后台便将这些数据送入BP 神经网络算法中处理并预测接下来是否需要为用户提前打开空调或设定温度,此为智能预测。当主控制台发现预测的结果与来自传感终端的实际情况不符合时(例如用户生病未能正常上班而在家休养,或气温反常等),系统会相应的调整控制空调的操作,这是突发情况处理。
图2 系统硬件结构图
图3 是主控制台智能化处理机制原理图。
图3 智能化处理机制逻辑图
2.3 温度预测算法
为了实现上述的智能预测功能,本系统采用BP神经网络算法[12-13]。该算法基于非线性不确定性数学模型,是一种具有连续传递函数的多层前馈人工神经网络,训练方式为误差反向传播算法,并以均方误差最小化为目标不断修改网络的权值和阈值,最终能高精度地拟合数据[14]。BP 算法由两部分组成:信息的前向传递和误差的逆向传播。
2.3.1 信息的前向传递
设输入层神经元为X =[x1,x2,…,xp],隐含层神经元为S=[s1,s2,…,sq],输出层神经元为Y =[y1,y2,…,yr]。表示输入层第k 个神经元与隐含层第j个神经元的连接权值,表示隐含层第j 个神经元与输出层第i 个神经元的连接权值,φ()为激活函数。隐单元的输入
相应的输出状态
隐含层以同样方式传递至输出层
网络的最终输出
其中:激活函数φ()常取阶跃函数、分段线性函数、对数S 型传递函数等。
2.3.2 误差的逆向传播
输入具有p 维输入q 维输出的N 个样本进入输入层,计算实际输出与期望输出均方跟误差。将第h 个样本的理想输出计为{},
如果E(W)没有达到误差要求ε,则进入反向传播过程,把输出误差信号E 以梯度形式,按原来正向传播的通路逐层反向传回,并将误差信号E 分摊给各层的所有神经元作为修正各连接权值和阈值的依据对其修改,并反复运行信息的正向传播和误差逆向传播两过程,直至误差信号E 收敛于ε[15]。
3 实验分析
我们在Matlab 中对该算法进行了如下验证[16]:
3.1 选取样本数据
用于训练网络的样本数据由5 个部分组成:时间段,是否检测到人,气温,空调开关,空调设定温度。其中时间段,是否检测到人,气温为神经网络输入量,空调开关,空调设定温度为输出量。将24 h 进行48 等分,每一部分为30 min,作为一个控制周期。人物存在与否的概率依赖于时间段。空调开关和人物存在,气温相关。空调设定温度为气温的函数。一共选取了2 400个样本作为训练数据。
3.2 神经网络的选取
采用BP 神经网络,分成三层:输入成3 个结点,分别对应3 个输入变量;输出层2 个结点,对应2 个输出变量;中间层经过优化,选取20 个结点用于训练。相邻两层之间激活函数均采用对数S 形转移函数,训练函数采用梯度下降自适应学习率训练函数,迭代次数为1 000 次。
3.3 选取测试数据进行测试
测试数据的生成方法同样本数据,共2 400 个测试样本。将测试数据中的“时间段”,“是否检测到人”和“气温”输入到由样本训练出的神经网络中,得到2个输出量空调开关和空调设定温度。将输出结果和测试数据作比较,开关预测误差和温度预测误差如图4所示。
图4 预测误差
经计算,神经网络对空调开关预测的准确度为92%,对温度控制预测的平均误差为0.846 8 ℃。由此可见,采用BP 神经网络模型可以实现较高精度的智能预测。
在系统中,通过持续将用户设定数据放入神经网络中进行训练,网络会逐渐训练成型,并可进入自动运行状态。同时,来自各传感器的数据也将在系统自动运行时帮助修正控制偏差,进一步完善网络。
4 结 语
经过测试,采用BP 神经网络预测算法的智能温度控制系统运行良好,智能化程度高,数据传输稳定,控制精准,能够适配大部分空调。当然,该系统离普及使用还有一段距离,将系统精简化、美观化将是我们下一阶段的研究重点。
[1] 万文斌,石 勇.基于ZigBee 的智能开关控制系统的应用与设计[J].电气自动化,2010,32(3):57-59.
[2] 蒋 挺,赵成林.紫蜂技术及其应用[M].北京:北京邮电大学出版社,2006.
[3] Texas Instruments. CC2530 datasheet[EB/OL]. [2013-01-05].http://www. ti. com. cn/product/cn/CC2530/technicaldocuments?keyMatch=CC2530&tisearch=Search-CN-Everything.
[4] 徐书芳,王金海,宫玉龙,等.基于ZigBee 的智能家居控制系统的研究与设计[J].电子技术应用,2013,39(8):80-83.
[5] 姜 仲,刘 丹.ZigBee 技术与实训教程:基于CC2530 的无线传感网技术[M].北京:清华大学出版社,2014.
[6] 祝良荣,金永敏. 基于ZigBee 无线技术的分布式温度监测系统[J].机械与电子,2010(3):49-51,56.
[7] 深圳市捷深科技有限公司. HC-SR501 人体感应模块说明书.[EB/OL].[2011-06-14]. http://cn. sonhoo. com/company_web/sale-detail-5462755.html.
[8] 曹 帅,刘纯天.基于Zigbee 与红外遥控技术的家居无线控制网络设计[J].机电产品开发与创新,2010,23(1):149-151.
[9] 胡 衡,梁岚珍.基于ZigBee 和ARM 的温室大棚多点温度采集系统的设计[J].江苏农业科学,2014(7):416-419.
[10] 韦东山.嵌入式Linux 应用开发完全手册[M]. 北京:人民邮电出版社,2008.
[11] 韩少云,奚海蛟,谌 利.基于嵌入式Linux 的Qt 图形程序实战开发[M].北京:北京航空航天大学出版社,2012.
[12] 蒋宗礼.人工神经网络导论[M].北京:高等教育出版社,2001.
[13] 陈祥光,裴旭东.人工神经网络技术及应用[M].北京:中国电力出版社,2003.
[14] 李晓峰,刘光中.人工神经网络BP 算法的改进及其应用[J]. 四川大学学报(工程科学版),2000,32(2):105-109.
[15] 刘春艳,凌建春.GA-BP 神经网络与BP 神经网络性能比较[J].中国卫生统计,2013,30(2):173-176,181.
[16] 刘保柱,苏彦华,张宏林.MATLAB 7.0 从入门到精通(修订版)[M].北京:人民邮电出版社,2010.