APP下载

基于Android的智能家居安全监控系统的设计∗

2017-12-18张运玉

计算机与数字工程 2017年11期
关键词:隐层驱动程序热水器

张运玉

(广州市轻工职业学校计算机教研室 广州 510650)

基于Android的智能家居安全监控系统的设计∗

张运玉

(广州市轻工职业学校计算机教研室 广州 510650)

针对传统智能家居的健康状态和安全监控主要依赖人工定检的问题,论文将基于Android的物联网技术引入了智能家居状态监测和安全评估中,构建了智能家居远程监控系统。该系统的Android远程操作基于MVP模式开发应用程序,利用神经网络处理用户日常使用操作数据建立起的网络数据模型,结合S3C2440A微控制器将网关中移植了嵌入式Linux以便于不同智能家居驱动程序的开发。最后运用电力线通信网络将各智能电器的网关进行连接,通过计算路由节点的组网成功率结果可得:15组各20个智能电器的网络节点接入成功监控率达到98.33%,该系统能够对智能家居众多电器进行同时监控,解决了系统的数据并发造成网络堵塞而无法安全监控的问题。

Android;智能家居;MVP模式;电力线通信;远程监控

1 引言

近年来随着物联网技术在当今社会的快速发展,以物联网为中心的相关衍生技术也在不断发展[1]。智能家居以住宅为平台,利用综合布线技术、网络通信技术、智能家居系统设计方案安全防范技术、自动控制技术、音视频技术将家居生活有关的设施集成,形成了一整套智能家居体系,极大地提高了便捷性、安全性、娱乐性[2~4]。目前,智能家居行业还处于刚刚起步的阶段,将来的应用前景会非常可观[5],然而现在市面上的智能家居系统大多还是处于“自动控制”状态[6],简单地通过用户终端去控制底层设备,整个相关行业离真正的“智能”还有很长的路要走。

本研究将在MVP模式下开发Android应用程序,由于智能家居的用户数量众多,特定用户会做出不同的行为,为了简化数学模型的建立,先将用户在日常生活中产生的一系列数据进行预处理,模型在初始阶段可以简单地设立观看电视节目,观看电影,观看直播,室内温湿度调节,根据用户习惯设置室内灯光模式,空调热水器设置等方面。采集的数据是通过智能家居中的传感器收集得到的,反映了用户的行为习惯,根据这些数据可以在一定程度上推测出用户的行为。在网关设计中,S3C2440A移植了嵌入式Linux以便于不同智能家居驱动程序的开发,最后利用电力线通信网络将各个控制部分的网络节点进行连接。

2 智能家居的Android系统建立

2.1 MVP的应用

若开发Android的远程操作智能家居的应用,该应用的界面是一个简单的显示按钮和展示用户数据的列表,用户点击按钮后列表当中会显示用户数据。用户数据储存在本地数据库。采用MVP来开发这个简单应用[7],Model,View和Presenter的类图如图1所示。

图1 MVP类图

从用户点击到显示用户数据的流程如下:

Step1:用户点击后,View调用 presenter.load-UserData()。

Step2:Presenter在 loadUserData()里调用model.queryUser()并等待。

Step3:Model的queryUser里查询数据库,返回结果给 Presenter[8]。

Step4:Presenter调用view.showUserData()显示数据。

在MVP中View和Presenter通常是以接口的形式出现的[9]。这对进行跨平台的开发十分重要,因为View是接口,所以并没有依赖于任何特定的平台,也没有规定显示的样式,我们完全可以在不同的平台中使用不同的方式实现[10],但是Presenter依然可以使用一样的方式跟View进行交互。采用MVP架构最重要的原因就是因为MVP基于接口(协议)编程的思想。

2.2 Android中的MVP模式

Android的开发生态是比较自由和混乱的,缺乏统一的规范,导致很多Android应用的代码质量都比较低。不过因为Android的自由开放,也诞生了许多优秀的框架,不管是MVC,MVP还是MVVM架构都有不少的支持者[11]。在Github上推出了一个新的项 目 Android Architecture Blueprints[12],对Android应用的程序架构采用的就是MVP模式。Android中MVP的架构如图2所示。

图2 Android中的MVP架构

图2 中的Repository对应着MVP中的Model层,作为应用的数据源。常见的移动应用中,数据源会包括两个部分,一个是远程数据源,另一个是本地的数据源。如何保持维持两个数据源的一致性和完整性是Model层内部需要处理的逻辑,对于Presenter来说,只需知道如何从Model层获取数据即可,而不需要知道数据来源。

View层中我们主要使用Fragment来实现View,在Android当中Activity和Fragment都可以被作为页面划分的单位,选择Fragment主要有两个原因[13]:

1)Activity的生命周期更加清晰可控,适合用来创建Presenter和管理Presenter和View的连接。

2)Fragment可以比较方便地复用和组合,在比较大的屏幕上(比如智能手机)。一个页面上可能会包括多个View。这时候可以比较方便利用Fragment的特性,如果采用Activity则比较不方便。

3 智能家居模型设计

3.1 模型预处理

以用户使用空调热水器的行为习惯为例,做出详细的模型分析。用户使用空调热水器这一行为有几个关键数据,比如使用空调热水器的时间、空调设置温度、热水器的加热温度、空调的模式设置、热水器使用时间等,根据对这些关键数据的样本学习,系统建立起一些自定义模式,推断出用户的习惯动作,根据预测结果,可以在用户下班之前向其推送对空调热水器的设置信息[14]。提前开启空调,以及热水器,提高用户体验度。

对样本数据进行归一化处理,基于Sigmoid函数采用神经网络激活函数,所以我们将数据映射到[0,1]中,包括样本的时间参量,这里我们将时间单独进行处理,将月份、星期、小时分钟平均映射到[0,1],并且将家电编号映射到该范围中,其余数据,例如空调的温度,热水器温度等,我们采用线性归一化函数进行数据处理[15]:

其中,Xnorm为归一化后的数据;Xmin和 Xmax为输入或输出数据的最值;X为输入或输出数据。例如10月15日星期三晚上18点开启空调(编号0.2000),并设置温度为21℃,归一化处理后的部分样本数据例如(0.2000,0.0001,0.0010,0.7500,0.0000,0.5654),归一化的样本数据作为输入,将数据输入到网络模型中,将其中一部分样本作为期望输出值进行误差分析。

3.2 模型建立

网络结构的设计包括网络层数的设计及各层包括的神经元数目的选取两个方面[16]。一个神经网络一定具有一个输入层和一个输出层,这一点是由实际问题本身决定的,因此,网络结构的设计重点与难点在于隐层结构的设计,具体是指隐层的数目以及各隐层神经元数目,隐层的结构在很大程度上决定着网络的训练速度、泛化能力等。对于隐层的层数,理论上已经证明,一个三层的神经网络只要隐层神经元数足够多,就具有模拟任意复杂的非线性映射能力。故一般采用一个隐层的神经网络即可。对于隐层的神经元数目问题,隐含层神经元数过少,学习可能不收敛,网络的识别能力、泛化能力降低,隐含层神经元数过多,导致网络训练长时间不收敛、容错性能下降。对于隐层神经元数目,我们采用一般的估算方法,估算公式如下。

其中,l为隐层神经元数目,n为输入层神经元数目,m为输出层神经元数目,β为1~10之间的常数。

4 智能家居网关设计

由于智能家居网关功能较复杂,对稳定性、安全性的要求较高,因此,在实现智能家居网关所能提供的服务时,需基于嵌入式操作系统开发网关。

4.1 网关硬件设计

在智能家居的背景下,通常需要通过互联网实现对智能家居设备节点的控制,同时家庭内部的设备之间也需要实现通信于互控。本文所设计的智能家居网关的硬件框图如图3所示。

家庭内部可能存在多种硬件设备,智能家居网关需要通过不同的接口和这些设备建立连接。通过通用I/O端口控制显示屏、传感器等硬件设备,通过不同的工业总线标准(RS232、I2C)接口来控制外部设备,以及通过高速总线来访问主存以及网卡设备等[17]。此外,在本文所设计的智能家居网关硬件框图中,网关处理器还能和MCU等智能节点建立了连接,使得MCU能够通过网关实现对家庭内部其他设备的控制。AX88180等网卡芯片使得网关能够接入互联网络,用户可通过网络服务器实现对网关的远程访问,从而实现对家庭内部设备的远程控制。

图3 智能家居网关硬件构架

4.2 网关软件设计

所设计的网关软件框图如图4所示,整个软件框图主要分两部分,网关应用模块和嵌入式Linux操作系统模块。嵌入式Linux操作系统模块主要包含了嵌入式Linux内核、驱动程序以及Yaffs2文件系统[18]。驱动程序实现了对家庭内部设备的控制,如智能节点、传感器等字符设备,以及网卡等块设备,Yaffs2文件系统为智能家居网关存储数据提供了支持,而嵌入式Linux内核则是对标准的Linux内核进行裁剪所得到的。嵌入式Linux操作系统为网关应用提供了API,使得网关应用能够对家庭内部的设备进行控制,是网关应用开发的基础。

图4 智能家居网关软件构架

网关应用则主要包含了传输控制、协议解析、安全验证以及功能逻辑单元四个模块。传输控制模块主要用于接收家庭内部设备的数据,并且能够根据上层应用给出的指令实现对家庭内部设备的控制。

4.3 网关应用开发流程

在为S3C2440A移植了嵌入式Linux之后,便是对网关应用进行开发。以远端服务器对家庭内部的空调热水器控制为例,以说明远端服务器如何通过智能家居网关实现对家庭内部设备的控制。首先是为空调热水器编写驱动程序,驱动程序的注册和卸载流程如图5所示。

图5 驱动程序开发流程

在编写好空调热水器的驱动程序之后,由于空调热水器通过通用I/O和S3C2440A相连接,属于字符设备,因此,空调热水器使用以下结构体来表示,在编写驱动程序的时候,需要对结构体中的各字段赋适当的值。

struct miscdevice{

int minor;

const char*name;

const struct file_operations*fops;

struct list_head list;

struct device*parent;

struct device*this_device;

const char*nodename;

mode_t mode;

};

之后使用函数int misc_register(struct miscdevice*misc)实现对空调热水器驱动程序的注册。注册好驱动程序之后,用户便可以将空调热水器视为文件,对其写入特定的数据,以控制空调热水器的开关。为了使服务器能够控制空调热水器,服务器和智能家居网关之间的通信需要采用一定的协议,使得网关能够解析来自服务器的命令,并对空调热水器进行控制。

5 硬件平台设计与实现

5.1 电力线通信网络

网关方案设计完成后,将组网路由算法应用到硬件平台上进行实现。节点架构如图6所示,节点之间通信的电力线经过电力线载波模块相连。

图6 节点架构

本系统控制部分的主控芯片选择ST公司最新推出的基于Cortex M3内核的STM32系列处理器。ST32系列处理器与其他MCU相比具有更高的性价比,并且ST公司为STM32开发了专门的驱动库,这也大大减轻了应用者的开发难度。实验采用的电力线载波模块为基于弥亚微电子的高性能电力载波芯片MI213而设计,本模块的载波调制方式采用的是OQPSK调制方式,具有功耗低、辐射小、抗干扰强等特点。

由子节点所连接的温度和湿度传感器,每隔6小时向手机APP端发送实时监测到的温度和湿度信息,当超过某一预先设定范围时,提醒用户打开制冷或者取暖设备。由处于客厅位置的子节点在家中无人时开启安全监控模式,采用红外传感器进行感知,一旦有人进入,则通过子节点发送信息给主节点,触发主节点的GSM模块自动提醒设置,给手机发送短信,对用户进行自动提醒。APP界面显示如图7所示:

图7 APP界面显示

5.2 周期维护

由于电力线载波通信网络有一个特点是具有时变性,所以需要对主节点维护的路由表进行一个周期性的维护,根据主节点中的计时器信息,每隔5分钟时间即对路由更新一次,即主节点发送一次广播,入网的子节点发送确认信息InFrame给主节点,以便主节点进行路由表的更新。以20个节点为一组,以系统开发板上指示灯亮起作为判断是否成功连接的标准,以60s为一组,进行15次试验,利用式(1)收集智能电器的数据信息,结合式(2)修正神经网络组网完成后节点连入个数如表1所示。

根据15组实验我们通过计算得到平均组网成功率:(15组组网完成连入节点数的和/15组全部节点数的和)*100%=98.33%。

表1 测试结果

6 结语

本文给出了用户通过Android手机远程操作智能家居的电力线载波通信安全监控设计,经过对组网算法加载到系统开发板上的测试和验证,可以得到相对通信可靠性较优化的结果,并将此应用到智能家居上,通过测试,实现了家庭内部安全监测与健康监护,但是还是存在组网成功率不能达到百分之百的原因,分析可能有以下几点:

1)数据包碰撞。在数据传输过程中,由于所有的节点都是物理通过电线物理连接的,所以在发送数据包的过程中可能会出现数据包的碰撞,改进的组网路由算法可以得到一定程度的改善,但不能完全避免碰撞;

2)链路质量。由于连接的链路比较远,使得主节点的信号在传输到某节点时就已经损耗,该节点无法接收到主节点的连接信息,从而不能连接到网络中;

3)丢包率。在传输信号过程中,由于不确定因素使得数据包丢失,某些节点不能收到主节点发送的数据包,从而不能连接到网络。

[1]毛燕琴,沈苏彬.物联网信息模型与能力分析[J].软件学报,2014(8):1685-1695.MAO Yanqin,SHEN Subing.Information Model and Capability Analysis of Internet of Things[J].Journal of Software,2014(8):1685-1695.

[2]张新昌,周逢权.智能电网引领智能家居及能源消费革新[J].电力系统保护与控制,2014(5):59-67.ZHANG Xinchang,ZHOU Fengquan.Smart Grid Leading Smart Home and Energy Consumption Innovation[J].Power System Protection and Control,2014(5):59-67.

[3]朱敏玲,李宁.智能家居发展现状及未来浅析[J].电视技术,2017,3(14):295-296.ZHU Minling,LI Ning.The Present Situation and Future Analysis of Intelligent Home[J].Television technology,2017,3(14):295-296.

[4]胡向东,韩恺敏,许宏如.智能家居物联网的安全性设计与验证[J].重庆邮电大学学报(自然科学版),2014,26(2):171-176.HU Xiangdong,HAN Kaimin,XU Hongru.Security Design and Verification of Intelligent Home Internet of Things[J].Journal of Chongqing University of Posts and Telecommunications(Natural Science Edition),2014,26(2):171-176.

[5]申斌,张桂青,汪明.基于物联网的智能家居设计与实现[J].自动化与仪表,2013,28(2):6-10.SHEN Bing,ZHANG Guiqing,WANG Ming.Design and Implementation of Intelligent Home Based on Internet of Things[J].Automation and instrumentation,2013,28(2):6-10.

[6]张桂青,鹿曼,汪明.智能家居的“春天”来了[J].计算机科学,2013,40(6):398-402.ZHANG Guiqing,LU Man,WANG Ming.Smart home“spring”came[J].Computer science,2013,40(6):398-402.

[7]王念桥.应用MVP模式改进软件架构[J].计算机时代.2012(4):37-38.WANG Nianqiao.Application of MVP model to improve the software architecture[J].Computer age,2012(4):37-38.

[8]曾露.MVP模式在Android中的应用研究[J].软件,2016,37(6):75-78.ZENG Lu.Research on Application of MVP Mode in Android[J].Software,2016,37(6):75-78.

[9]刘璐.Android智能终端功能测试方法设计与系统实现[J].软件,2014(12):79-82.LIU Lu.Design and System Realization of Function Test Method for Android Intelligent Terminal[J].Software.2014(12):79-82.

[10]杨毅.基于WEB开发框架的研究[J].无线互联科技,2015(13):26-28.YANG Yi.Research on Web-based Development Framework[J].Wireless Internet Technology,2015(13):26-28.

[11]林亚明.基于ZK的MVVM与MVP设计模式应用研究[J].重庆文理学院学报(自然科学版),2012,31(6):72-74.LIN Yaming.Research on MVVM and MVP Design Pattern Based on ZK[J].Journal of Chongqing University of Arts and Science(Natural Science Edition),2012,31(6):72-74.

[12]钱小云,叶勇,徐俊.船载卫星通信远程集中监控系统设计与实现[J].电讯技术,2015,55(2):216-221.QIAN Xiaoyun,YE Yong,Xu Jun.Design and Implementation of Remote Concentration Monitoring System for Shipborne Satellite Communication[J].Telecommunications technology,2015,55(2):216-221.

[13]关超达.多画面分割监视及报警系统在播出中心的应用[J].西部广播电视,2013(12):124-127.GUAN Chaoda.Multi-screen segmentation monitoring and alarm system in the broadcast center application[J].Western radio and television,2013(12):124-127.

[14]董立岩,隋鹏,辛晓华.基于Android的智能家居终端控制系统[J].吉林大学学报(信息科学版),2014(3):303-307.DONG Liyan,SUI Peng,XIN Xiaohua.Intelligent home terminal control system based on Android[J].Journal of Jilin University(Information Science Edition),2014(3):303-307.

[15]王怡,鄂旭.基于物联网无线传感的智能家居研究[J].计算机技术与发展,2015(24):118-118.WANG Yi,E Xu.Research on Intelligent Home Based on Wireless Sensor of Internet of Things[J].Computer Technology and Development,2015(24):118-118.

[16]康祥喆.浅谈我国智能家居的现状及发展趋势[J].中国科技信息,2014(8):121-122.KANG Xiangzhe.On the Present Situation and Developing Trend of Intelligent Home in China[J].China Science and Technology Information,2014(8):121-122.

[17]赵勇.基于ARM和ZigBee的智能家居远程监控系统设计[J].测控技术,2012,31(11):52-54.ZHAO Yong.Design of Intelligent Home Remote Monitoring System Based on ARM and ZigBee[J].Measurement and Control Technology,2012,31(11):52-54.

[18]程伟.支持Yaffs2文件系统的U-Boot的实现[J].计算机工程与设计,2012,33(3):936-940.CHENG Wei.Support U-Boot implementation of Yaffs2 file system[J].Computer Engineering and Design,2012,33(3):936-940.

Design of Intelligent Home Security Monitoring System Based on Android

ZHANG Yunyu
(Computer Teaching and Research Room,Guangzhou Light Industry Vocational School,Guangzhou 510650)

In view of the problem that the health status and safety monitoring of the traditional intelligent home are mainly dependent on the manual inspection,this paper introduces the intelligent home-based remote monitoring system by introducing the Internet-based Internet of Things technology into the intelligent home condition monitoring and safety assessment.The system's Android remote operation based on the MVP model to develop applications,the use of neural networks to deal with users daily use of operational data to establish the network data model,combined with S3C2440A microcontrollers in the gateway to the embedded Linux to facilitate different smart home drivers development.Finally,the power line communication network is used to connect the intelligent electrical appliances to the gateway.By calculating the success rate of the routing nodes,the success rate of the network nodes of 15 intelligent devices is 98.33%.The system can intelligent home many electrical appliances at the same time monitoring,to solve the system data and network congestion caused by the problem can not be security monitoring.

Android,smart home,MVP mode,power line communication,remote monitoring

TP277

10.3969/j.issn.1672-9722.2017.11.044

Class Number TP277

2017年5月10日,

2017年6月30日

张运玉,女,研究方向:计算机软件应用。

猜你喜欢

隐层驱动程序热水器
基于RTD可编程逻辑门的n变量函数实现算法
一种自适应确定隐层节点数的增量半监督超限学习机算法
一种深度梯度提升回归预测模型
阻止Windows Update更新驱动程序
基于RDPSO结构优化的三隐层BP神经网络水质预测模型及应用
计算机硬件设备驱动程序分析
谁应该为毁损的热水器负责?
太阳能热水器
自制一个太阳能热水器
身边的太阳能