来源:华盛论文咨询网时间:2020-02-20所属栏目:科技论文
摘 要:针对目前智能窗户发展不够成熟以及产品成本过高的问题,在国内光纤以太网和云计算技术迅猛发展、无线局域网普及的背景下,开发了物联网智能窗户系统。设计采用arduino控制芯片以及各种传感器芯片组建智能窗户,并通过 ESP8266WIFI芯片接入互联网;利用伪造序列号的方式完成TCP协议的NAT穿越,实现手机终端到智能窗户的点对点连接;通过云虚拟主机平台,实现对智能窗户的管理。该智能窗户系统具备实时监测,远程控制,智能安防等功能,满足了用户对智能生活的要求。
关键词:智能家居;P2P连接;物联网;远程监控
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] 。
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已经被其他用户绑定,则向客户端发送错误信息,由用户选择是否继续绑定。
3 结束语
目前,4G网络逐渐普及,5G网络的研究也在进行中。我国光纤以太网发展迅速,网络通讯速度正在飞快地提升,物联网的概念必将深入人心。就本设计所应用的技术来说,面对数目庞大的物联网智能设备,本设计所采用的数据分布式存储是缓解服务器压力的有效方式。同时,当前人们所用的互联网接入工具无非就是智能手机、电脑等用来浏览网页的设备,连接方式仅限于客户端—浏览器模型,本设计所应用的 TCP NAT 穿越技术,实现了点对点连接。不同于某些传统的P2P下载软件或者视频软件,本设计所应用的P2P连接技术所实现的是实时控制与监测。当物联网设备普及时,点对点连接将是缓解服务器转发压力的有效方式。
另外,仅就本设计来说,智能窗户具备实时监测、远程控制的功能。相比于传统的通过GSM模块发送消息的智能窗户,本设计的数据传输速度更快,而且实时监控能力更强,窗户工作电压为 5V,更安全,且功耗低。
参考文献(References):
[1] 蔡康.P2P对等网络原理与应用[M].科学出版社,2011.
[2] 桂劲松.物联网系统设计[M].电子工业出版社,2013.
[3] 谌玺,张洋.思科CCNA认证详解与实验指南[M].电子工业出版社,2014.
《物联网智能窗户系统的设计与实现》来源:《计算机时代》,作者:王 超,林百顺,冯开屏,李清清。