近年来,在物联网等具有海量数据需求的应用变得越来越普遍时,无论是从科学研究还是从应用开发的角度来看,掌握云计算技术已成为一种趋势。智能家居作为物联网应用的主要领域之一,自然离不开云计算。云计算的发展使用户无需关注复杂的内部工作机制、无需具备丰富的分布式系统知识及开发经验,即可实现大规模分布式系统规定部署,以及海量数据的并行处理。
Hadoop是目前较为成熟和应用较为广泛的云计算架构之一。Hadoop的核心思想是分布式并行处理。Hadoop技术中的关键技术是 HDFS(分布式文件系统)和Map/Reduce(映射/规约)。Hadoop利用HDFS存储海量数据,利用Map/Reduce进行海量数据的计算。
文中首先介绍了智能家居与云计算的概念,接着针对传统的海量数据处理方法硬件成本太高,存在计算瓶颈的问题,在云计算理论的基础上针对智能家居中的门禁系统、温湿度系统、滴灌系统和照明系统搭建了基于Hadoop的数据处理平台。可以对大量传感信息进行分布式并行处理,并根据处理结果向底层设备发送指令以实现智慧化服务。
智能家居与云计算
1.1智能家居
目前通常把智能家居定义为利用电脑、网络和综合布线技术,通过家庭信息管理平台将与家居生活有关的各种子系统有机结合的一个系统。首先,需要在家居中建立一个通信网络,为家庭信息交互和传输提供必要的通路,在家庭网络的操作系统控制下,通过相应的硬件和执行机构,实现对所有家庭网络上的家电和设备的控制和监测。其次,智能家居系统需要通过一定的媒介平台,提供与外界的通信通道,以实现与家庭以外的世界沟通信息,满足远程控制/监测和交换信息的需求。
1.2云计算架构Hadoop
Hadoop是一个分布式计算框架,可以在大量廉价的硬件设备组成的集群上运行应用程序,为应用程序提供了一组稳定可靠的接口,旨在构建一个具有高可靠性和良好扩展性的分布式系统。Hadoop的主要优点有:扩容能力强、成本低廉、效率高、可靠性高、免费开源及良好的可移植性。Hadoop项目包括多个子项目,但主要是由Hadoop分布式文件系统(HadoopDistributed File System, HDFS)和映射/规约引擎(Map/Reduce Engine)两个主要的子项目构成。
1.3分布式文件系统(HDFS)
HDFS由一个名叫NameNode的主节点和多个名叫DataNode的子节点组成,是一种典型的主从式(Master/Slave)架构,这种架构方法可以通过主节点屏蔽底层的复杂结构,并向Client提供方便的文件目录映射。NameNode存储着文件系统的元数据,这些元数据包括文件系统的名字空间等,并负责管理文件的存储等服务,但实际的数据并不存放在NameNode,而是由HDFS中的DataNode来存放数据,然后由 Client直接与DataNode建立数据通信。
此外,HDFS为了可靠地海量存储文件,各个文件以块序列的形式存储。为了保证故障容错,文件的块被复制。块的大小和副本的个数都可以配置。 Name鄄Node控制所有的块复制操作,它周期性地接收来自集群中DataNode的“心跳冶回应和块报告。收到一个节点的“心跳冶回应表示这个 DataNode是正常的。
1.4MapReduce分布式计算
MapReduce分布式计算主要是用来在数千部服务器上同时处理保存于GFS Clusters中高达几十TB甚至更多的数据。
MapReduce在温度值统计过程中的运作如下所述。
MapReduce的作用是对计算机集群上的大型数据集运行分布式计算,替大量数据做平行计算处理。MapReduce的整个架构是由Map和 Reduce函数组成的,当程序输入一大组Key/Value键值对时,Map函数自动将原本的Key/Value分拆成多组中介的键值对,然后 Reduce函数再合并具有相同Key的中介值配对,化简成最后的输出结果。
1.5智能家居云模型
智能家居拥有7大子系统,每一个系统包含了不同的终端,每一个终端都安装有传感器,传感器感知周围环境并产生大量数据。千千万万的用户会产生海量的数据,而云计算可靠的数据存储,强大的计算能力,低廉的运营成本使得它非常适合处理海量数据。于是每家用户都将通过网络连接到云服务中心,产生的数据均由云计算中心存储和计算处理。
开发程序设计分析
本平台针对智能家居中的几个典型应用:门禁、温度、湿度、光照等进行信息采集及分布式并行处理。启动程序后可以看到当前房间内的温度、湿度、土壤湿度、光强度,还可以通过对室内温度、湿度、土壤湿度进行设定来改变当前的状态。
2.1功能模块设计
根据需求分析可知,系统功能模块共分为四大部分,即门禁系统、温湿度系统、滴灌系统、照明系统。
门禁系统实现的功能是持卡人刷卡,产生持卡人的卡号,从事先设定好的数据库中查询是否有该卡号,如果有说明该用户为合法用户,门禁打开,并显示持卡人卡号、姓名、卡的类型,否则门禁继续保持关闭。
温湿度系统显示室内当前温度和湿度。当设定一个温度值后,空调工作,根据设定温度调整室内温度,直到室内当前温度达到设定值;当设定湿度值后,室内湿度就会根据所设定的湿度进行调整,直到室内当前湿度达到设定值。
滴灌系统显示当前的土壤湿度。当设定土壤湿度后,滴灌系统工作,调整湿度直到当前湿度为设定的土壤湿度。
在照明系统中,显示室内当前光强度。窗帘和电灯的状态受控于光照强度的大小。
智能家居云计算平台实现的功能主要是能够将产生的传感信息集中交给服务器处理,用户只需将传感器采集来的传感信息传输给服务器即可。服务器为计算机集群,这里使用三台电脑进行模拟。三台电脑对信息进行分布式并行处理,并根据处理结果对底层设备发出指令,以达到智能控制的效果。同时还要将各种传感数据和底层设备的状态写入数据库。
2.2逻辑结构设计
(1)门禁系统。
门禁状态一开始为关闭。当持卡人来刷卡时,获得持卡人卡号,查询数据库,判断卡的ID是否合法,如果ID不合法,则门禁保持关闭状态。如果合法则门禁打开,并且显示持卡人的姓名和性别。
(2)温湿度系统。
系统启动时首先要对温度进行判断。当前温度低于下限值,空调启动制热;当前温度高于上限值,空调启动制冷;当室内当前温度调整到舒适范围时空调自动关闭。系统同时显示室内当前湿度,通过“设定湿度冶按钮可以设置室内湿度,当前湿度会慢慢调整到所设置的湿度。
(3)室内滴灌系统。
滴灌系统的状态主要受控于土壤湿度。这里土壤湿度依然采用相对湿度。
系统开始运行时滴灌处于关闭状态,然后判断土壤湿度是否小于0.15,如果小于0.15,滴灌打开,喷水,土壤湿度开始上升,当土壤湿度达到预先设定的上限值时(0.4),滴灌自动关闭。滴灌关闭后由于水分的蒸发,土壤湿度会逐渐减少。系统每隔1s对土壤湿度进行一次判断,如果土壤湿度少于 0.15,则滴灌再次打开。如此反复。当然,土壤湿度的上限值也可以通过“设定土湿冶按钮进行设定。
(4)照明系统。
照明系统主要由窗帘和电灯两个部分组成。窗帘和电灯的状态会根据光照强度的大小以及当前时间自动改变。根据文献[1]将客厅照明的最低照明度定为临界值,即150Lux。
(5)智能家居云平台。
整个云平台采用五台电脑进行模拟,第一台电脑作为传感器和底层设备的模拟,用于产生传感信息。第二台电脑作为连接底层设备和服务器的网关,剩下三台电脑构成服务器集群,作为云处理中心,并与数据库相连,对传感信息进行分布式并行处理。服务器与客户端之间的通信使用Socket。
平台仿真
3.1门禁系统测试
运行程序后,门禁处于关闭状态。单击“生成ID冶按钮,会产生当前持卡人卡的ID号。然后单击“刷卡搜索数据库中已存在的合法ID号,合法来访者,门禁打开,并显示持卡人的姓名和性别。门禁打开5s后再次关上。如果ID号不存在,则门禁继续保持关闭状态,如图4所示。
3.2温湿度系统测试
运行程序后显示当前温度、湿度,以及默认的下限温度(18益)和上限温度(23益)。系统将当前温度与下限温度和上限温度进行比较,如果当前温度在人体舒适度范围18益~23益内,则空调继续保持关闭状态。当前室内温度低于下限温度时,空调打开,处于制热状态,直到当前室内温度达到舒适度的下限温度。当前室内温度高于上限温度时,空调打开,处于制冷状态,直到当前室内温度达到舒适度的上限温度。温度的上下限值可以通过设置按钮进行设定。
在“设定湿度冶旁的文本框中输入所要设置的室内湿度,然后按“设定湿度冶按钮,这时室内的温度就会慢慢改变,上升或下降,直到当前湿度达到所设定的湿度。
3.3滴灌系统测试
运行程序后显示当前土壤湿度,滴灌系统一开始处于关闭状态。由于土壤中水分的蒸发,土壤湿度不断下降。当土壤湿度降到0.15时滴灌自动打开,开始喷水。滴灌喷水后土壤湿度增加,直到当前土壤湿度达到设定值(默认值为0.4),这时滴灌再次关闭。
3.4照明系统测试
运行程序后显示当前的室内光强度,如果是早晨七点到晚上六点,则窗帘打开,其他时间段窗帘关闭。电灯的状态不仅受时间段控制,也受室内光强度控制。如果是晚上十点到第二天早晨七点,电灯处于关闭状态。在早晨七点到晚上六点之间,电灯一般是关闭状态,除非室内自然光强度低于150Lux,晚上六点到晚上十点,电灯是打开状态的。
3.5云平台测试
将五台电脑建立连接并启动,第一台电脑用于模拟传感器和底层设备,第二台电脑作为连接底层网络和上层网络的网关,剩下三台电脑作为服务器集群 (云计算中心)。第一台电脑产生传感数据后传给第二台电脑,第二台电脑作为网关将数据转发给服务器集群,服务器集群采用Hadoop计算架构对传感数据进行分布式并行处理,判断当前智能家居各系统的状态,并发出指令给底层设备,达到智能控制的效果。
结束语
文中在云计算理论的基础上针对智能家居中的门禁系统、温湿度系统、滴灌系统和照明系统搭建了基于Hadoop的数据处理平台。可以对大量传感信息进行分布式并行处理,并根据处理结果向底层设备发送指令以实现智慧化服务。此云计算平台是在Hadoop分布式计算框架的基础上采用三台电脑模拟服务集群实现对海量数据的并行处理,有效解决了成本和计算瓶颈问题。