智能家居系统中网关与服务器的连接 智能家居系统网关设计

本文章由注册用户 小英 上传提供 评论 发布 纠错/删除 版权声明 0
摘要:智能家居系统中网关与服务器如何连接?在新型智能家居系统中,家庭网关将取代 PC 机作为家庭控制中心。传统客户端/服务器模式不能保持家庭网关与远程服务器实时连接。基于百万级的家庭网关与服务器保持长连接的目的,采用主从服务器框架进行负载均衡,心跳机制保障网关与服务器实时连接的方案。

智能家居系统中网关与服务器的连接 智能家居系统网关设计

基于百万级的家庭网关与服务器保持长连接的目的,本文采用主从服务器框架进行负载均衡,心跳机制保障网关与服务器实时连接的方案。

在新型智能家居系统中,家庭网关将取代 PC 机作为家庭控制中心。传统客户端/服务器模式不能保持家庭网关与远程服务器实时连接。基于百万级的家庭网关与服务器保持长连接的目的,采用主从服务器框架进行负载均衡,心跳机制保障网关与服务器实时连接的方案。

1、新型智能家居系统整体框架

基于传统C/S架构的智能家居系统需要保持一台PC 机运行中间件才能达到随时控制的目的,这与智能家居绿色节能的理念相违背。在光纤到户的推动下,PON上行家庭网关在全国得到普及,并且有低功耗保持长时间工作的特点,适合用于智能家居系统中。

本方案设计一种新型智能家居系统,由家庭网关替代PC成为家庭网络控制中心。围绕家庭网关与远程服务器互联问题展开,探讨一种适合家庭网关与远程服务器的连接方案。基于家庭网关的智能家居系统整体框架如图1 所示。 智能家居系统由传感器网络,家庭控制中心,远程服务器,手机终端组成。其中传感器网络通过Zig Bee、Wi-Fi等无线通信技术组建。

传统的智能家居系统中控制中心采用家用PC 和协调器等设备,新型的智能家居系统如图 1 所示,采用家庭网关充当家庭控制中心的角色。

2、新型智能家居系统中家庭网关与服务器连接的设计与实现

2.1 远程服务器方案设计

传统的服务器方案往往使用单一服务器模式,传统业务不需要客户端与服务器保持长连接,客户端获取数据时发送一个连接即可。并且客户端运行在 PC 机上,客户端对服务器发起连接后,服务器可暂存客户端的IP 地址和端口,当服务器需要给客户端发送数据时直接用客户端的IP 地址和端口号即可。所以用单一服务器即能满足传统业务的需求。

当业务量大的时候,传统服务器采用服务器集群技术来保证服务器不因业务量过大而瘫痪。 随着智能家居网关用户逐步上升,用户将达到百万级。 每个网关都要与服务器保持长连接,同时服务器还要与手机端通信。为了保证服务器的负载会达到百万级时,其仍能正常其正常工作,本方案采用主从服务器框架来实现负载均衡。主服务器负责网关与服务器首次建立连接,然后根据地理位置等因素为网关分配一个从服务器并告知其 IP 等信息,网关再根据从服务器信息对从服务器发起连接,建立连接后网关与从服务器保持长连接并断开与主服务器的连接。

主服务器对手机终端也是如此,只负责首次建立连接,判断该手机号控制的网关分配到哪个从服务器,然后让其对从服务器进行连接。

本方案设计的服务器框架如图 2 所示,由主服务器和从服务器组成,网关第一次连接或者与服务器连接中断后重连都是对主服务器发起,主服务器收到网关发起的连接信息后进行认证,查看是否在服务网关列表,认证成功后分配从服务器 IP 和服务号给网关。从服务器用于保持与网关的长连接,一方面可以对网关发送控制命令,一方面可接收网关上报的监控信息。备用主服务器用于主服务器故障时切换使用。

2.2 家庭网关与远程服务器连接方案的设计

家庭网关所属的网络环境为电信运营商的子网环境,IP动态更改,并且经过了多层 NAT 转换,服务器无法对网关发起主动连接。而用户需要随时对家庭设备进行控制,服务器必须随时能够对网关发起连接。为了实现家庭网关与远程服务器互相通信。

本方案采用 socket 长连接模式实现,服务器配置固定 IP,网关上电后发起对服务器的 socket 连接,连接成功后保持连接不中断,服务器可通过此 socket 连接收发网关的信息。

2.2.1 网 关与服务器长连接及意外中断恢复的设计实现

用户需要随时远程监控家庭信息,例如回家路上打开空调,离开的路上关掉电源等,网关也需要随时向用户反馈家庭异常,例如烟雾报警信息,所以家庭网关必须与服务器随时保持连接。

本方案采用心跳包监控网关与服务器之间的长连接,当网关与服务器连接成功后,服务器每隔一段时间(暂时设置为 15 s)向网关发送心跳包,网关接收到心跳包后需立即回应心跳包给服务器。若超过 5 次无回应,则判定为连接断。

服务器会将次网关在线标志位置为0,同样家庭网关上线后会有监控心跳线程,若连续 75 s 内无心跳信息,则会判定已与服务器断开连接,网关会自动重启连接服务器线程。

2.2.2 家 庭网关控制权安全性的设计

家庭网关的控制权必须是保证是家庭成员,不能让陌生人取得控制权,否则会带来不可估量的后果。家庭网关存储有一个可控手机号列表,必须通过本地 web 连接后才能更改,不能远程更改(防止黑客等利用漏洞远程添加控制权)。网关连接服务器后会上报可控手机号列表,只有在列表中的号码才能远程登录服务器,并且手机远程登录服务器还要短信验证码配合,防止他人伪装登录。手机登录服务器后,发送控制家庭网关的命令时会在消息头部增加手机号信息,网关收到信息后会核对该手机号是否在本地可控手机号列表中(防止服务器的手机号列表与网关本地手机号列表不一致 )。

2.3 家庭网关连接控制模块工作流程

家庭网关的软件流程如图 4 所示,上电后初始化,然后向主服务器发送连接信息,若无法连接主服务器则向备用主服务器发送连接信息。连接上主服务器后会上报自身的一些信息,包括可控手机号列表,主服务器会根据地理位置等信息返回一个最近的从服务器序号和 IP 地址等信息,然后网关连接从服务器。

若连接从服务器连接不上,则会反馈给主服务器, 主服务器会返回另一个从服务器的序号和 IP 地址信息用于连接。 连接好从服务器后,家庭网关即可实现远程监控,但必须与从服务器保持心跳连接,才能保证其是可控状态。

2.4 模拟测试的测试步骤和结果

本模拟测试方案中,为使数据库访问效率满足性能要求,且 PC 远程控制可直接用浏览器实现,主服务器采用 PHP的 YII 框架搭建的 web 服务器,手机等终端和家庭网关连接主服务器则需要建立一个 socket 连接并把数据封装为 https协议。主服务器负责存储网关信息,可控手机号列表等信息,并负责分发从服务器序号和 IP 给网关,查找与手机号配对的网关所在的从服务器序号和 IP 并发送给认证后的手机。

从服务器则采用 PHP 的 Workerman 框架来搭建,此框架是一个基于 PHP 的 socket 服务框架。网关与从服务器连接后保持心跳,手机获取从服务器序号和 IP 后连接从服务器,根据网关服务号绑定与网关在同一个服务号里,在一个服务号里可包含多个手机,但只能一个网关,手机和网关之间可以互相通信。服务器端打开 workerman 的进程,开启服务,如图 5 所示。

网关远程登录到服务器,id 为 67,服务号为 1,与服务器保持心跳连接,如图 6 所示。浏览器远程登录,服务器认证后分配其 id 为 68,匹配到网关所在服务号为 1,向网关(id 为 67)发出指令“light1 turn on”,服务器将指令转发给网关。

结语

模拟实现结果表明,通过心跳保持家庭网关与远程服务器长连接,分配服务号保证手机与家庭网关相关联的方案可行。用家庭网关代替传统 PC 作为智能家居系统中家庭的控制中心,能充分利用现有家庭网关资源。

网站提醒和声明
本站为注册用户提供信息存储空间服务,非“MAIGOO编辑”、“MAIGOO榜单研究员”、“MAIGOO文章编辑员”上传提供的文章/文字均是注册用户自主发布上传,不代表本站观点,版权归原作者所有,如有侵权、虚假信息、错误信息或任何问题,请及时联系我们,我们将在第一时间删除或更正。 申请删除>> 纠错>> 投诉侵权>> 网页上相关信息的知识产权归网站方所有(包括但不限于文字、图片、图表、著作权、商标权、为用户提供的商业信息等),非经许可不得抄袭或使用。
提交说明: 快速提交发布>> 查看提交帮助>> 注册登录>>
您还未登录,依《网络安全法》相关要求,请您登录账户后再提交发布信息。点击登录>>如您还未注册,可点击注册>>,感谢您的理解及支持!
最新评论
暂无评论
相关推荐
【智能家居知识百科】智能家居系统 智能家居品牌排行
在现在智能化的生活受到人们的关注,随着人们自我支配的时间越来越少,人们越来越想家中有个智能家居可以帮助自己更简单的生活。智能家居以实用为核心,摒弃掉那些华而不实,只能充作摆设的功能,产品以实用性、易用性和人性化为主。为人们提供安全、舒适、方便和环保的生活。
家庭智能安防包括哪些方面?家庭监控报警安防系统解决方案
随着科技的不断进步和人们生活水平的不断提高,人们对于家庭安全的需求也越来越高,从最早开始的高院墙防护到如今的电子围栏等技术手段,家庭安防系统的配置可以说是智能家居生活的第一步,为其他智能家居系统的发挥奠定了基础,保护了家人的人身安全以及房屋财产。下面,本期专题就为您讲解家庭安防监控知识。
门禁安防 收房入住 ★★★★
9900 137
【智能改变生活】智能产品有哪些 盘点身边的智能生活
近些年,科技已经渗透到个人生活的方方面面,不论是智能家居、智能手环或是智能手表,已然成为消费者追捧的对象,吸引了越来越多的科技公司和互联网公司加入,其中也不乏传统企业的青睐。可见,智能生活时代的到来,只在眼前!
智能 智能家电 ★★★★
3.3万+ 218
什么是智能家电 智能家电和普通家电的区别
科技改变生活,这是我们经常会听到的一句话,随着科技的不断发展,智能化程度越来越高,各种智能电器也逐渐走进我们工作和生活场景中。那么什么是智能家电呢?智能家电和普通家电的区别有哪些?智能家电和传统家电的区别主要表现在“智能”方面上,不管是智能化程度、服务需求、技术、感知对象,都有一些区别,下面一起来详细了解一下吧。
如何选购智能家电 智能家电产品选购几大注意要点
现在市场上智能家居品牌众多,产品类型更是五花八门,让人眼花缭乱。对于智能产品,多数消费者还是缺乏选购经验,智能家电怎么挑选?如何选购智能家电?智能家居产品的选购首先要明确自己的需求与产品的功能,结合自己的情况进行购买。下面一起来详细了解一下智能家电选购的相关知识吧。