宋林,周媛,曾玉姗
(1.南京信息工程大学江苏省气象传感网技术工程中心,江苏南京210044;2.南京信息工程大学电子与信息工程学院,江苏南京210044)
基于云计算和机器学习的智能家居系统设计
宋林1,2,周媛1,2,曾玉姗2
(1.南京信息工程大学江苏省气象传感网技术工程中心,江苏南京210044;2.南京信息工程大学电子与信息工程学院,江苏南京210044)
随着科技进步,智能家居日益成为研究热点。为了解决现有系统存在自主适应能力上的不足,提出了一种基于云计算、机器学习与嵌入式技术的智能家居系统。该系统采用网关采集传感器数据,再利用运行Hadoop和机器学习算法的云计算平台对用户行为进行学习和识别,实现自主决策能力。通过实例分析可知,该方案使智能家居系统在人性化方面得到极大提高。
云计算;智能家居;机器学习;Hadoop
传统智能家居系统大多数采用模式控制的方式,利用用户手动的选择模式,结合传感器网络达到相应的控制效果。还有部分系统将云端加入其中,但是大部分只起到云端存储和提供用户监控接口的功能。由于这种固定的方式使其灵活性和自适应能力低下。本系统将嵌入式系统、云计算[1]和机器学习结合起来,既实现了远程监控的功能,同时利用分布式深度学习算法使系统能够适应用户的行为,动态的做出决策。在很大程度上弥补了传统智能家居系统的不足。
1.1总体硬件设计
系统本地端通过WIFI和无线路由器搭建家居内部控制网络,并使用网关作为主控端[2]。同时网关通过因特网与云端通讯,在云端上进行存储和机器学习等操作。用户则可以通过手机等智能终端与云端相接实现对家庭环境的监测和设备的控制,系统总体结构如图1所示。
图1 系统总体结构Fig.1Structure diagram of the system
1.2本地硬件设计
①网关硬件设计
网关起的是一个枢纽和控制的作用,外部通过因特网连接到云端,内部则通过工作在AP模式的WIFI模块与节点通信。其次,网关通过Flash存储器保存一些配置信息和数据信息。
②节点硬件设计
由于节点需要与网关通信,所以采用了工作在STA模式的WIFI无线通信模块。另外,节点分为控制节点和传感器节点两类。其中控制节点通过PWM、SPI等信号提供驱动电器设备,传感器节点则通过相应通讯协议获取传感器数据。同时,利用LCD显示屏来显示一些设备相关的信息,并通过EEPROM存储器来存储配置信息。
1.3云端硬件设计
云端上采用三台运行Linux的计算机,通过交换机相互连接组成完全分布式的Hadoop集群,并通过路由器连入互联网。
2.1本地软件设计
1)网关的软件设计
网关是智能家居网络中连接云端和节点的桥梁,同时在其上运行ANDROID软件,作用是实现云端和家庭内部网络的通信,并对节点进行监控并做出决策。除了通讯方面,还包括如下几个主要模块:
①控制表。表中存放着传感器数据与控制器行为的对应关系。利用该表,网关可以很快的根据传感器数据和时间给出相应决策。该表也是网关软件的核心部件。
②决策模块。该模块根据传感器数据和时间信息,利用控制表给出相应控制行为。
③数据库。利用SQLite数据库,存放控制表、传感器数据、时间信息以及控制行为。
其中网关的内部软件运行流程,如图2所示。
图2 网关运行流程图Fig.2Flow chart the gateway operation
2)节点的软件设计
传感器节点主要功能是获取传感器数据并上传给网关。控制节点的主要功能则为接收来自网关的命令并执行相应的控制操作。
节点在开机之后,首先进行系统配置和模块初始化,主要包括:配置管脚参数、配置模块寄存器和打开中断等等。初始化完成之后,节点开始正常工作。网络收发模块、传感器采集模块和设备控制模块3个模块并行,分别执行各自的任务。
2.2云端软件设计
对于机器学习,智能家居中的样本数据是一个多维、数据量巨大的模型,所以不便于在本地进行计算而采用拥有强大的性能和存储能力的云计算方案。
1)云端软件平台设计
云端软件分为云计算和网络服务器两部分,其中云计算采用Hadoop集群,并利用HBase与Hive搭建数据库来存储信息,网络服务器则采用Socket Server和JAVA NIO技术,提供可靠并且简易的网络连接,实现云端与网关和用户控制终端的实时通讯。
2)云端数据库存储设计
云端数据库负责存储用户信息、控制器与传感器数据、机器学习参数以及决策信息等。其中主要数据表为状态表、控制表和学习表。其中状态表中存放网关上传的传感器数据,控制表中存放用户设定的传感器与设备行为的对应关系,而学习表中则存放着机器学习算法的参数和训练结果。
网关将采集到的传感器数据上传到云端并保存到状态表中。通过机器学习算法修改学习表,从而生成控制表,再传递给网关进行自动控制。
3)云端机器学习算法设计
由于训练的对象具有复杂度高、层数多和样本数量巨大的特点,为了保证训练的质量和速度采用了深度学习[3]的方法,具体使用了Deep Belief Network(DBN)的训练算法[4]。同时为了能够发挥Hadoop分布式平台的优势,对算法进行了相应的优化。其核心方法为将一个大数据集分解成多个小的数据块,利用多个运算节点对数据块进行同时计算,从而达到分布式优化的目的。
其中数据集从云端数据库中读取,包括传感器数据、时间信息、设备状态和用户决策。RBM[5]的参数包括权值和偏置值,同时预先设定了训练的层数和每层训练数据的数量。相应的算法流程如图3所示。
4)基于ANDROID客户端[6]软件设计
为了用户的方便,客户端通过互联网访问云端从而监测家庭环境和控制设备。其设计主要包括用户界面UI,Socket通信和SQLite数据库等。
3.1系统实例的搭建
根据系统设计方案,实现了一套原型系统。其中本地端为网关、温湿度节点、光照度节点、蜂鸣器与烟雾节点、电机控制节点与LED控制节点。同时搭建好云计算平台和网络服务器。系统实例如图4所示。
3.2系统实例的测试
测试控制条件,如表1所示。触发条件顺序为:温度(摄氏度)、湿度(相对)、光照度(流明)、烟雾(毫升每立方厘米)。
测试采用的方法是在7天时间内,人为反复地实现表中的(1)、(2)、(3)项目的触发条件并人为地进行相应设备动作。将传感器数据和人为动作打包成样本上传至云端,云端在训练完毕后将机器学习的参数和控制表推送给网关,进行自主控制。经过多次试验之后,自主学习的最终控制结果如表2所示。
图3 机器学习算法流程图Fig.3Flow chart the machine learning algorithm
图4 系统实例图Fig.4Figure of system instance
表1 测试条件Tab.1Test condition
表2 自主学习测试结果Tab.2Test result of autonomic learning
本文创新的将云计算、机器学习引入智能家居系统,实现了自主学习和控制的功能。根据实例分析,这种方案可以达到一个相对较高的正确率,弥补了传统智能家居[7]在人性化方面的不足。但是本文实现的条件相对简单,并未完全体现出这种方案的优势,所以在以后仍需针对一些现实的家居环境进行研究。
[1]岳敬华.基于云服务的智能家居系统的研究与设计[D].杭州:杭州电子科技大学,2013.
[2]孟平.多功能智能家居系统的设计与实现[D].哈尔滨:哈尔滨理工大学,2014.
[3]张浩,吴秀娟.深度学习的内涵及认知理论基础探析[J].中国电化教育,2012(309):7-21.
[4]Hinton G.Training products of experts by minimizing contrastive divergence[J].Neural Computation,2002(14):1771-1800.
[5]Hinton G.A practical guide to training restricted Boltzmann machines[J].Momentum,2010,9(1):926.
[6]鹿曼.基于Android的智能家居无线控制系统的设计与实现[D].成都:电子科技大学,2013.
[7]李琪,秦会斌,杨永舒,等.基于Android平台的智能家居系统设计[J].电子设计工程,2014(24):52-54,57.
The design of smart home system based on cloud computing and machine learning
SONG Lin1,2,ZHOU Yuan1,2,ZENG Yu-shan2
(1.Jiangsu Technology&Engineering Center of Meteorological Sensor Network,Nanjing University of Information Science and Technology,Nanjing 210044,China;2.School of Electronic&Information Engineering,Nanjing University of Information Science&Technology,Nanjing 210044,China)
As technology advances,the smart home is becoming a research hotspot.In order to solve the shortcomings of existing systems on self-adaptability proposed smart home system based on cloud computing,machine learning and embedded technology.The system uses a gateway sensor data collection,reuse and machine learning algorithms to run Hadoop cloud computing platform for learning and recognition of user behavior,achieving autonomous decision-making capacity.By way of example analysis,the program enables smart home system has been greatly improved in terms of humanity.
cloud computing;smart home;machine learning;Hadoop
TN02
A
1674-6236(2015)24-0005-03
2015-02-28稿件编号:201502154
2013年度校级教改课题(N1885013231);2014年度实验室开放经费(N1081005231);2015年校教改提升工程-大学生创新训练项目(1214071501207)
宋林(1993—),男,江苏南京人。研究方向:物联网、机器学习。