APP下载

物联网智能窗户系统的设计与实现

2016-07-15王超林百顺冯开屏李清清

计算机时代 2016年7期
关键词:远程监控智能家居物联网

王超+林百顺+冯开屏+李清清

DOI:10.16644/j.cnki.cn33-1094/tp.2016.07.004

摘 要: 针对目前智能窗户发展不够成熟以及产品成本过高的问题,在国内光纤以太网和云计算技术迅猛发展、无线局域网普及的背景下,开发了物联网智能窗户系统。设计采用arduino控制芯片以及各种传感器芯片组建智能窗户,并通过ESP8266WIFI芯片接入互联网;利用伪造序列号的方式完成TCP协议的NAT穿越,实现手机终端到智能窗户的点对点连接;通过云虚拟主机平台,实现对智能窗户的管理。该智能窗户系统具备实时监测,远程控制,智能安防等功能,满足了用户对智能生活的要求。

关键词: 智能家居; P2P连接; 物联网; 远程监控

中图分类号:TP393 文献标志码:A 文章编号:1006-8228(2016)07-12-04

Design and implementation of intelligent window system base on Internet of Things

Wang Chao, Lin Baishun, Feng Kaiping, Li Qingqing

(School of computer science and technology, Jilin University, Changchun, Jilin 130000, China)

Abstract: Presently, the intelligent window is under developing and its cost of production is too high. For this problem, in the background of the rapid development of fiber Ethernet and cloud computing technology, and the popularization of Wi-Fi, the intelligent window system based on Internet of Things is developed. In this design, the intelligent window is built with Arduino control chip and a variety of sensor chips, through ESP8266WIFI chip connects to the Internet; uses the faking serial number to complete NAT crossing of TCP protocol, which makes the Peer-to-Peer connection between the mobile terminals and the intelligent window possible; and through the cloud virtual host machine platform implements the management of the intelligent window. The intelligent window has the functions of real-time monitoring, remote control and intelligent security, and meets the user's requirements for intelligent life.

Key words: smart home; Peer-to-Peer connection; Internet of Things; remote monitoring

0 引言

目前智能家居领域发展火热,智能窗户的出现满足了人们对智能生活的要求。智能窗户种类很多,但是现有智能窗户大多数仅仅是本地智能,即根据环境温度的变化,实现自动开关。只有少数智能窗户具备远程控制的功能,但也都是利用了移动通讯GSM模块,这种方式传输的数据量小,而且根本不具备实时性[2]。综上所述,现有智能窗户主要有以下几点不足:①数据传输量很小,不具备实时监控的功能;②不具备智能安防的功能;③窗体驱动模块设计不好,导致只能用较高电压驱动窗体,存在较大的安全隐患。为了克服这些不足,本文设计并实现了一种操作简单,具备智能安防与远程监控功能的新一代智能窗户。

1 系统设计

1.1 需求分析

从整体来看,智能窗户系统应划分为两个部分:远程通讯部分和本地智能部分,如图1所示。其中,远程通讯部分负责手机客户端到智能窗户的通讯,并且负责将环境数值以及窗户的状态发送到手机的客户端上。本地智能部分负责检测各种环境数据,并根据预先的设定,进行窗户的开关控制[4]。

1.2 技术分析

1.2.1 远程监测及远程控制分析

小到可穿戴设备,大到智能家居,交通工具等。未来智能设备的数量将是数以亿计的。在本设计中,数据存储于智能窗户的SD卡中,而不必上传到服务器,数据的分布式存储缓解了服务器硬盘的压力。

另外,由于我们平时接入互联网的设备绝大部分都处于NAT防火墙之后,外网中的设备无法直接访问局域网内的终端。传统解决方案是通过服务器转发数据。但是物联网设备数目庞大,服务器将无法承受巨大的转发压力。而且中央服务器使得网络中的数据流量集中到一点,不能够充分利用空闲的线路[3]。本设计利用集中式对等网络实现点对点通讯,在不需要服务器转发数据的情况下就能将手机连接到智能窗户。

1.2.2 NAT穿越分析

如图2所示,本设计通过伪造序列号的方式完成TCP协议的NAT穿越。

Phone向MiddleServer建立TCP请求连接,MiddleServer获得host_p_addr和host_p_port映射后的nat_p_addr和nat_p_port的信息,并通告给Window。

Phone第二次发起TCP请求时,设定TTL值,使得数据包刚好到达NATA ,Phone抓包获得刚发出的TCP序列号,通过UDP协议直接通告给Window, Window便可以伪造一个TCP SYN包,其中源地址:nat_p_addr,端口号:nat_p_port,目标地址:host_w_addr,端口号:host_w_port。Window收到自己伪造的TCP包,于是产生了一个SYN_ACK的包。

NATB为建立一个映射后转发该包。NATA收到后,将该数据包的目的地址改为host_p_addr,目标端口号改为host_p_port并转发。Phone收到转发的数据包后,如符合SYN的确认要求,就会再次发送SYN_ACK,作为第三次握手返回出去。至此NATA和NATB建立了映射表,Phone和Window之间能够直接通信[1]。

1.3 硬件实现

1.3.1 智能窗户机械结构分析

所述智能窗户结构如图3所示,包含窗框(1)、滑动窗扇(2),安装于底层窗框中的驱动装置,安装于窗体和窗框中的各种传感器、控制模块(17)以及联网模块(14)。

驱动装置包括:驱动电机(13),离合器(11),与离合器配合的传动装置。离合器(11)实现传动齿轮与电机(13)之间的脱离,这样,用户可以随意开关窗户,不至于带动电机反向运转。

智能窗户部件编号:

1、窗框 2、窗体 3、温湿度传感器 4、烟雾传感器 5、雨滴传感器 6、PM2.5传感器 7、超声波传感器 8、齿轮 9、齿轮 10、齿轮 11、电磁离合器12、齿条 13、电机 14、联网模块 15、LCD显示器 16、蜗杆 17、单片机控制芯片 18、齿轮 19、齿轮

1.3.2 本地智能效果

用户通过手机设定温度值,当温度低于关窗温度时,单片机(17)控制电磁离合锁死后驱动电机运转,窗户关闭。同样当温度高于开窗温度时,单片机(17)控制电磁离合锁死后驱动电机反向运转,窗户打开[5]。

烟雾传感器检测到起火时,窗户自动打开,雨滴传感器检测到下雨时,窗户自动关闭。

单片机控制器(17)中存储有自动切换智能与手动模式的算法,在智能模式下,只要用户手动滑动窗扇,就会触发切换算法,从而使单片机切换到手动模式[6]。

2 软件实现

服务器端系统采用hibernate和spring框架开发,利用了mysql数据库,搭建在tomcat上。

2.1 功能描述

2.1.1 注册与登录模块

模块功能:用户在服务器注册并登录账户,绑定智能窗户,便于对智能窗户的管理。同时方便以后再添加和管理设备。

用户打开手机客户端,进入登录页面。如果没有帐号则选择注册。客户端将用户登录信息提交到服务器,Tomcat收到Post请求,将数据转发到LoginServlet处理。LoginServlet对数据做初步验证,检查用户名密码是否合法,之后将数据封装成一个JavaBean对象,转发给业务逻辑层处理。业务逻辑层Service通过Dao对象中封装的函数访问数据库,如果数据库中没有账户信息,则抛出异常信息:登录失败,上层的LoginServlet捕获到异常信息后,页面跳回到登录状态。反之,如果存在账户则登陆成功,跳转到智能窗户控制页面[8]。同样,注册页面通过查询数据库检验账户是否存在,若账户合法则将账户写入到数据库,并跳转到登录页面。其功能流程图如图4所示。

2.1.2 绑定模块

模块功能:用户账户与智能窗户进行绑定,便于对智能窗户的管理。

前提业务:注册与登录。

手机客户端登录账户后,点击添加设备选项。用手机扫描智能窗户上的二维码,获得智能窗户的ID值,点击绑定后,数据提交到服务器上。其效果图如图5所示。

查询数据库,如果数据库中存在该智能窗户的ID值并且没有其他用户绑定该窗户,则向客户端发送确认消息,用户点击确认后,服务器上用户账户的数据表中便写入了智能窗户的ID值,从而实现绑定。

如果数据库中不存在该智能窗户的ID值,或者该ID已经被其他用户绑定,则向客户端发送错误信息,由用户选择是否继续绑定。

2.1.3 监测与控制模块

模块功能:服务器根据用户绑定的智能窗户的编号查找IP地址,并将IP通告给客户端。这样,两端的NAT防火墙都建立了映射表,从而实现点对点连接[4]。

前提业务:注册登录与绑定。

用户打开手机客户端,登录账户后,点击我的设备,进入监测与控制模块。其效果图如图5所示。

监测模块包括:智能窗户状态图,室外温度、室内温度、室外空气质量、火灾报警警示。智能窗户通过传感器收集的数据会通过互联网传送到手机客户端,智能窗户状态图动态显示窗户开关的大小。由于智能窗户和手机之间采用的是点对点连接,降低了服务器转发数据的压力,同时降低了传输延迟。

控制模块包括:智能窗户开关控制条、手动模式与自动模式切换按钮。控制条中包含20个不同的位置信息,滑动控制条,客户端便会封装位置数据,利用JXTA协议向智能窗户端发送控制命令,实现实时控制[9]。

3 结束语

目前,4G网络逐渐普及,5G网络的研究也在进行中。我国光纤以太网发展迅速,网络通讯速度正在飞快地提升,物联网的概念必将深入人心。

就本设计所应用的技术来说,面对数目庞大的物联网智能设备,本设计所采用的数据分布式存储是缓解服务器压力的有效方式。同时,当前人们所用的互联网接入工具无非就是智能手机、电脑等用来浏览网页的设备,连接方式仅限于客户端—浏览器模型,本设计所应用的TCP NAT穿越技术,实现了点对点连接。不同于某些传统的P2P下载软件或者视频软件,本设计所应用的P2P连接技术所实现的是实时控制与监测。当物联网设备普及时,点对点连接将是缓解服务器转发压力的有效方式。

另外,仅就本设计来说,智能窗户具备实时监测、远程控制的功能。相比于传统的通过GSM模块发送消息的智能窗户,本设计的数据传输速度更快,而且实时监控能力更强,窗户工作电压为5V,更安全,且功耗低。

参考文献(References):

[1] 蔡康.P2P对等网络原理与应用[M].科学出版社,2011.

[2] 桂劲松.物联网系统设计[M].电子工业出版社,2013.

[3] 谌玺,张洋.思科CCNA认证详解与实验指南[M].电子工业出

版社,2014.

[4] W.Richard Steven.TCP/IP详解[M].机械工业出版社,2000.

[5] Dale Wheat. ARDUINO技术内幕[M].人民邮电出版社,

2013.

[6] Robert Faludi. Arduino无线传感器网络实践指南[M].机械

工业出版社,2013.

[7] Matthew S.Gast. 802.11无线网络权威指南[M].清华大学出

版社,2002.

[8] 科夫勒.MySQL5权威指南[M].人民邮电出版社,2006.

[9] 李刚.疯狂Android讲义[M].电子工业出版社,2011.

猜你喜欢

远程监控智能家居物联网
基于Zigbee的无线通信技术在智能家居中的应用
变电站直流电源智能化在线远程监测系统的实际应用
保鲜库智能温度远程监控系统
数据中心服务器运行状态监控系统研究 
基于Android的青少年监护系统设计与实现 
基于高职院校物联网技术应用人才培养的思考分析
中国或成“物联网”领军者
基于LD3320的智能家居控制