智能家居系统中网关与服务器如何连接?

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

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

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

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

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

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

远程服务器方案设计

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

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

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

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

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

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

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

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

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

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

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

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

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

手机登录服务器后,发送控制家庭网关的命令时会在消息头部增加手机号信息,网关收到信息后会核对该手机号是否在本地可控手机号列表中(防止服务器的手机号列表与网关本地手机号列表不一致)。

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

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

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

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

本模拟测试方案中,为使数据库访问效率满足性能要求,且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”,服务器将指令转发给网关。

本文转自d1net(转载)

时间: 2024-09-27 22:43:18

智能家居系统中网关与服务器如何连接?的相关文章

云服务器-求助啊!基于智能家居系统中,怎么在云计算平台实现?

问题描述 求助啊!基于智能家居系统中,怎么在云计算平台实现? 当手机发送设置指令时是怎么一个流程?信息先传到云服务器,然后再传到家庭中心?云服务器是如何寻址找到家庭网关的?可以用阿里云这样的云服务来做云服务器吗?需要在云服务器上编写什么程序吗? 模型: 手机终端-----云服务器-----家庭网关 解决方案 一个是客户端轮询,一个是客户端和服务器端先建立连接(类似登录qq登录),然后服务器端主动发送消息到客户端.无论哪种方法,都是你的客户端必须主动连上服务端,而不是服务器找客户端. 云服务器和一

加速演进 智能家居系统迈向“一体化”

加速演进 智能家居系统迈向"一体化" 江苏省邮电规划设计院有限责任公司 祁昊颖 李成 席元鸿 许文强 智能家居的美好愿景正在吸引家电厂商.设备厂商.软件厂商.互联网企业等各方角逐其中.在各家竞相推出智能家居产品和解决方案的今天,人们也发现了一个事实--虽然智能家居是不可阻挡的趋势,但是智能家居的技术仍然不够完善,智能家居系统亟待一体化.对于整个业界而言,只有让智能家居产品更加丰富,同时尽快统一标准,实现设备之间的互联互通,以及让智能家居系统具备"学习"能力,才有可能

开源智能家居系统及项目整理

开源智能家居工具整理 我想不少程序员估计也是一块一块树莓派在家里吃灰吧,这里就贡献几个开源智能家居,折腾一波实现一个自己的 Open Source Smart Home 吧. Domoticz Domoticz是一个轻量级的智能家居系统 ,通过它你可以监测和控制各种设备,包括灯和开关以及各种传感器.仪表比如:温度.雨滴.风速.紫外线(UV)辐射.用电发电.燃气流量.用水量等等. 还可以向任一移动设备发送通知或警告. 地址: https://domoticz.com/中文: https://www

基于Android和WI-FI通信的智能家居系统

针对传统智能家居系统存在的操作复杂.可移动性差.升级维护成本高等缺点,本文提出了一种基于Android的智能家居系统的设计和实现方案.采用了具有Android操作系统的智能手机或平板电脑作为家居控制终端,以模块为核心的智能开关和处理器作为家居控制器,通过无线路由器,搭建整个智能家居系统平台. 基于Android和WI-FI通信的智能家居系统 责任编辑:editor005 |  2016-10-12 13:54:34 本文摘自:<大连工业大学学报> 针对传统智能家居系统存在的操作复杂.可移动性差

中国人工智能学会通讯——机器人组件技术在智能制造系统中的应用

摘要:随着工业4.0时代的到来,如何将传统工厂改造成为个性化.网络化.柔性生产的智能制造系统成为了当前的研究热点.本文从智能制造系统和智能机器人系统的相似性出发,构建了基于机器人组件技术的智能制造系统,对智能制造系统中各个生产单元进行组件化技术封装,实现了生产组件之间的信息互联和即插即用,通过个性化订单要求对各生产组件在线任务规划,达到柔性生产的目标.此外用多异构机器人模拟各工位生产单位搭建了一个可以根据用户订单生产的小型智能制造实验平台,实验结果验证了本研究构建系统的可行性. 关键词:机器人组

智能家居 登陆 注册-求问!怎么在整个智能家居系统上加上一个登陆注册功能,

问题描述 求问!怎么在整个智能家居系统上加上一个登陆注册功能, 用java已经实现的智能家居系统,用安卓手机对空调窗帘等进行控制,实现登陆注册功能来记录每个不同的用户对电器的操作,具体怎么实现,要用什么技术来实现? 解决方案 服务器上要有数据库,注册就是输入用户名密码,服务器获得后插入数据库.你的客户端将输入的用户名密码提交到服务器,然后完成登录验证. 例子:http://www.jb51.net/article/75722.htm 解决方案二: 写一个类,在里面写方法就好了 注册和登录的事件

带你看四种智能家居系统通信方式

随着智能家居技术发展越来越成熟,各种各样的智能家居系统也应运而生.下面带您从通信方式的角度去认识智能家居,在选购时选择最适合自己需求的技术系统,目前主流的智能家居系统通信方式有:总线.无线.电力载波和以太网. 一.基于总线通信的智能家居系统 基于总线通信的智能家居系统的节点之间采用RS485/CAN/FT等等通信技术,避开系统架构等因素,这类智能家居系统是抗干扰能力最强.最稳定的系统.但其缺点也很明显,节点通信需要专用的通信线路,安装调试成本最高. 二.基于无线通信的智能家居系统 节点之间采用无

在多屏融合及智能家居浪潮中,智能家庭网关将扮演重要的角色

摘要: 通过家庭网关(家用路由器),就可以通过PAD等移动终端控制家用电器的动作.监测和控制环境参数.了解身体的健康状态.意法半导体在CCBN期间的智能家居情景演示让人们耳目一新. 通过家庭网关(家用路由器),就可以通过PAD等移动终端控制家用电器的动作.监测和控制环境参数.了解身体的健康状态.意法半导体在CCBN期间的智能家居情景演示让人们耳目一新. 当然,作为上游厂商,意法半导体仅仅是在给客户做硬件方案的演示.最终的智能家居产品还需要由中下游厂商来为用户提供.数字融合事业部也仅仅是意法半导体

第十五期CSHIA智能家居系统工程师培训浙江大学开班

2017年3月29日,由中国智能家居产业联盟(CSHIA)主办的第十五期CSHIA智能家居系统工程师培训在杭州·浙江大学正式开班.本期培训吸引了来自全国各地的六十余位智能家居一线集成商及工程技术人员参与,展开三天充实的智能家居系统课程学习. 培训首日,CSHIA智能家居系统工程师培训负责人王胜阳作开班致辞.本期"CSHIA智能家居系统工程师"培训课程共计三天两夜,32课时,内容涵盖智能家居技术原理.产品选型.系统集成.方案设计.产品实操.项目施工管理等贴近一线市场的丰富.实用干货. &