作者:郑晓敏
1 引言
通信及物联网技术的飞速发展为智能家居终端接入互联网提供了便利条件,Android、iOS等智能终端的普及使得用户操控智能家居应用的条件也逐渐成熟。越来越多的电子、通信、互联网等行业巨头相继涉足智能家居行业,使得智能家居产业在近期内必将进入一个高速发展的阶段。
然而目前智能家居应用的开发技术和标准各不相同,国内外的很多企业和标准组织都推出了自己的解决方案及标准规范。国际上的ZigBee、Z-wave应用较多;国内的闪联也发布了IGRSl.0。另外,国内普遍采用的是基于Wi-Fi的无线快速连接实现技术,但不同厂商的实现方案各不相同。由于现有智能家居实现技术的不统一,各厂商的技术水平和平台提供能力参差不齐,导致目前智能家居的应用可运营性差、开发成本高、用户体验不统一,不利于产业链的健康发展。因此需要对可运营的智能家居应用开发技术进行研究。本文提出了一种基于Wi-Fi智能连接模块的智能家居应用开发技术方案,该方案可实现智能家居的统一运营和管理,同时可兼容现有的智能家居技术方案,达到统一运营智能家居设备、降低智能家居开发成本和门槛的目的。
2 需求分析与方案研究
2.1 需求分析
随着通信、物联网技术的发展及智能终端的普及,人们通过智能终端远程操控家用电器已经成为现实,且逐渐进入普通百姓的生活。近年来,智能家居已成为产业界关注的热点,国外的苹果公司、高通公司、三星集团以及国内的海尔集团、BAT、小米公司等行业巨头都相继涉足该领域。从现有智能家居系统家庭联网的实现方式上看,可分为两类:一类是基于Wi-Fi网络的连接实现方式,即Wi-Fi终端或智能家居专用网关(也称控制中心)通过Wi-Fi网络与家庭宽带网络中的家庭网关进行连接:另一种是基于有线网络的连接实现方式,即智能家居专用网关先通过ZigBee、Z-wave等私有协议与智能家居应用终端进行连接,然后再通过以太网与家庭网关进行连接。因在智能家居系统中,Wi-Fi网络的连接实现方式可提供更大的便利性、灵活性,并且易于模块化,而且基于Wi-Fi通信技术的家庭网络已成为当前的一种主流趋势,故基于Wi-Fi连接模块的智能家居开发技术必将会有很大的发展空间。
2.2技术方案
常见的智能家居系统主要包括智能家居应用终端、家庭网关、手机App、智能家居管理平台以及运营商的宽带有线网和移动蜂窝网,智能家居系统架构如图1所示。
智能家居应用终端(也称智能家居设备)可分为两类:基于Wi-Fi的智能家居终端以及非Wi-Fi智能家居终端。非Wi-Fi的智能家居终端通常采用ZigBee、Z-wave等其他无线通信技术,该类终端通常需要一个专用的智能家居网关(控制中心),以达到汇聚智能家居终端和网络通信的目的,智能家居专用网关通过Wi-Fi与家庭网关连接。
因手机App、智能家居管理平台都是为了满足管理和控制智能家居的需求而开发的,功能大同小异,运营商的宽带接入/移动蜂窝网络的技术标准也是全球统一的,所以已参与智能家居的各大行业巨头的关注重点都放在了智能家居终端的无线联网及终端与平台的交互技术上。
其中,高通公司提出了AlUoyn源框架,用来解决具有不同操作系统和二层通信协议设备之间的发现和互操作问题:苹果公司提出的Homekit智能家居平台规范了智能家居产品通过iOS终端连接和通信的方式;三星集团推出了SmartHome平台,希望通过一个平台统一管理;谷歌旗下的Nest则联合三星集团和ARM公司等力推Thread;国内的海尔集团组建了U+联盟,通过开放的接口协议,力图打造一个开放的平台;美的集团与阿里巴巴集团合作计划对外开放协议,使用阿里巴巴集团的云计算平台进行智能家居设备的接入:腾讯公司微信平台的人机对话能力及App加载运行能力(公众号)也为其在智能家居领域谋得了一席之地。这些技术方案都有各自的无线快速连接机制、专用的通信协议以及与其配套的手机App SDK等,没有统一的技术标准。
3基于Wi-Fi智能连接模块的应用开发技术方案
相比传统的家居应用终端,智能家居的主要功能都有所提升,智能家居应用终端可以快速联网,能够与云平台进行通信,而终端的联网功能模块和终端与云平台的通信功能模块均集成在智能家居的智能模块上,因此智能模块是智能家居的核心。因为Wi-Fi已成为家庭无线联网的主流趋势,且被越来越多的智能家居应用厂商采用,所以提出了集无线联网与通信功能于一体的Wi-Fi智能连接模块技术解决方案。
3.1 Wi-Fi智能连接模块在智能家居系统中的位置
Wi-Fi智能连接模块内置于智能家居终端或者智能家居专用网关(控制中心),能够实现智能家居应用终端的联网和与智能家居管理平台的通信。从模块的逻辑功能上可分为快速接入、管理和应用3个层次的协议,分别用于满足智能家居应用终端的快速联网、终端设备的管理和业务控制的需要。Wi-Fi智能连接模块在智能家居系统中的位置如图2所示。
3.2基于Wi-Fi智能连接模块的终端设计
Wi-Fi智能连接模块内置于智能家居应用终端,可作为客户端接人家庭网关,满足智能家居应用终端的联网及控制需求。Wi-Fi智能连接模块在智能家居设备中的应用实现如图3所示。
Wi-Fi智能连接模块与家电主控制器之间通过UART或CPROs进行数据通信,从而实现对家电的外围或者整体控制。UART用于可靠的数据传输:PWM调控主要用于灯光调节、三色LED调节、电机调速等;GPIO控制用于控制开关、继电器等。Wi-Fi智能连接模块通过I/O标志电平来选择通信方式,低电平表示使用I/O方式通信,高电平表示选择串口方式通信。
4关键技术
Wi-Fi智能连接模块主要实现了智能家居应用终端的快速联网、与管理平台的通信以及设备控制指令的解析功能。为了满足上述需求,定义了通用、高效、便捷的快速联网技术方案,选择了合理、安全的通信协议,并设计了通用的关键流程。
4.1 无线快速连接
因WPS是IEEE 802.11定义的标准协议,也是Wi-Fi终端与AP具备的通用功能模块,故设计的Wi-Fi智能连接模块与家庭网关的无线快速连接协议采用了WPS。通过定义家庭网关与手机App的接口.实现了对当前所连家庭网关的WPS开启、关闭和状态查询;通过智能终端的WPS按键开启智能连接模块WPS;通过手机App的UI操作提示实现智能家居应用的快速连接。
4.2通信协议
智能家居应用终端与智能家居管理平台的通信协议可以选择TCP、UDP、HTTP、XMPP等,但各协议间存在较大的差异,侧重点也各不相同,智能家居应用系统的成功与否,很大程度上取决于通信协议的选择及连接规则的设计。
4.2.1 通信协议的选择
(1)TCP
TCP是一种面向连接的、可靠的、端到端的传输层协议。在数据传输之前,TCP模块在运行于不同主机上的两个应用程序之间建立直接连接,随后TCP报文在该连接上进行传输。TCP连接的建立与断开都需要经过严格的多次握手机制,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP连接都将一直保持下去。
(2)UDP
UDP是一种无连接的协议,没有应答和确认,也没有错误反馈机制。UDP在发送数据前并不需要与对方事先建立连接,对接收到的数据也不用发送确认消息,发送端不知道数据是否会被正确接收,也无需重发,故UDP也称作无连接的、不可靠的数据传输协议。
(3)HTTP
HTTP主要用于Web模式的联网通信协议,是建立在TCP之上的一种应用层协议。HTTP连接最显著的特点是客户端的每次请求都需要服务器发送响应,在请求结束后,会主动释放。
(4)XMPP
XMPP是一种基于可扩展标记语言(XML)的协议,它继承了在XML环境中灵活的发展性。因此基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展信息来处理用户需求以及在XMPP的顶端建立内容发布系统和基于地址的服务程序。
(5)Socket协议
Socket连接的建立至少需要一对套接字,分别运行于客户端与服务器端。创建Socket连接时,可以指定传输层协议(TCP或UDP),当使用TCP进行连接时,该Socket连接就是一个TCP连接。Socket连接一旦建立,服务器可以直接将数据传送给客户端。
4.2.2协议比较
各通信协议的比较详见表1。
考虑到智能家居是为了满足人们健康、安全、便捷、节能环保等需求,智能家居设备采用的通信协议必须具备高可靠性和实时性:另外,为了尽可能多地让家居终端加入智能家居的队伍中且不过多增加开发和硬件成本,智能家居设备所采用通信协议不能对终端的要求太高。综上所述,选择TCP作为可运营智能家居开发技术方案的通信协议。
4.2.3连接机制
为了保证智能家居应用终端与智能家居管理平台之间的正常通信,制定了一套同时适用于终端与平台的通信连接规则。主要包括连接的建立、连接的维持和连接的断开。
(1)连接的建立
智能家居设备与智能家居管理平台的数据日常连接采用TCP方式,智能家居设备复位后应尽快与平台建立连接,连接建立后立即向平台发送智能家居设备鉴权消息进行鉴权。
(2)连接的维持
在连接建立且鉴权成功后,智能家居设备周期性地向平台发送心跳消息,平台收到后向智能家居设备发送平台通用应答消息,发送周期由智能家居设备指定。如智能家居设备未指定心跳周期,默认心跳消息的周期为60 s。
(3)连接的断开
平台和智能家居设备均可根据TCP主动断开连接,双方都应主动判断TCP连接是否断开。平台判断TCP连接断开的方法如下:
·根据TCP判断出智能家居设备主动断开;-相同身份的智能家居设备建立新连接,表明原连接已断开:
·在3个心跳周期内未收到智能家居设备发出的消息或心跳。智能家居设备判断TCP连接断开的方法如下:
·根据TCP判断平台主动断开;
·数据通信链路断开;
·数据通信链路正常,达到重传次数后仍未收到应答。
4.3关键流程
为了满足智能家居应用终端的快速联网和远程控制功能需求,基于Wi-Fi智能连接模块的智能家居应用终端必须具备设备注册、智能家居设备与用户账号绑定和平台下发操控指令的能力。
4.3.1设备注册
为了保证所接入智能家居管理平台终端的合法性,对首次联网接人管理平台的智能家居应用终端需要进行注册认证,其实现流程如图4所示。
·应用终端首次上电连接网络后,向智能家居管理平台发送设备ID、注册鉴权码进行应用终端注册鉴权:
·智能家居管理平台根据存储的设备ID和注册鉴权码的对应关系,对应用终端进行鉴权:
·智能家居管理平台向应用终端返回注册结果,若鉴权成功,则同时返回登录鉴权码:
·若注册鉴权通过,智能家居管理平台需要向业务平台报备应用终端注册通过信息;
·完成首次上电注册的应用终端,每次重新连接网络后,利用登录鉴权码请求登录。
4.3.2设备绑定
为了保证家庭用户对自有智能家居应用终端的控制和管理,防止被别人操控,需要绑定已接入智能家居管理平台的应用终端和智慧家庭用户账号,其实现流程如图5所示。
·用户在手机App中使用用户账号登录后,通过扫码或者输入应用终端设备ID的方式要求绑定应用终端;
·手机App向业务平台发送用户设备绑定请求;
·业务平台判断应用终端的合法性(应用终端必须已经完成注册,并且尚未被绑定,才能请求绑定),若应用终端符合要求,则业务平台将用户设备绑定请求发送给平台进行进一步验证;
·平台验证用户账号的合法性(必须是已注册用户才能进行设备绑定),平台同时进一步验证应用终端的合法性(在平台中该应用终端的状态属性为已注册),若均合法,则向业务平台返回验证结果;
·业务平台将用户账号和应用终端进行绑定;
·业务平台向手机App返回绑定结果,若绑定成功且应用终端为应用网关,需要同时向手机App返回该应用网关下挂的终端信息(包括下挂终端类型、下挂终端ID等):
·业务平台将用户设备绑定信息报备给平台,若该应用终端为应用网关,需要报备该应用网关下挂的终端信息,平台保存信息。
4.3.3设备控制
为了实现用户对已绑定智能家居应用的远程控制,智能家居应用终端需要执行平台下发的操控指令,其流程如图6所示。
·用户通过手机App对应用终端进行操控;
·业务平台接收到用户操作请求,对用户合法性以及终端可操作性进行判断,若均合法,则向平台下发设备操控指令;
·智能家居管理平台对接收到的消息进行初步解析,发现消息类型为透传消息,将消息体进行重新封装,路由转发至相应的应用终端;
·应用终端接收到设备操控指令后,执行设备操控指令;
·设备操控指令执行完毕,应用终端业务状态发生变化时,应用终端需要向业务平台上报其业务状态更新信息,该消息通过智能家居管理平台透传:
·智能家居管理平台对接收到的消息进行初步解析,发现消息类型为透传消息,将消息体进行重新封装,路由转发至相应的业务平台:
·业务平台接收到消息后,对消息体进行解析,更新应用终端的业务状态信息:
·业务平台将解析后的应用终端的业务状态信息报备给智能家居管理平台,智能家居管理平台更新应用终端业务状态信息,并同步至智能家居终端和手机App。
5结束语
基于本方案的原型智能家居终端、智能家居管理平台一阶段、手机App的开发阶段及智能家居管理平台与第三方业务平台的对接阶段已经完成。端到端的全流程测试验证了本方案的可行性,且终端与家庭网关无线快速连接的接入速度和用户通过手机App操控智能家居的用户体验都比较令人满意。一阶段智能家居管理平台的主要功能是智能家居设备的注册、设备的绑定激活与软件管理等功能,业务控制功能是通过第三方业务平台实现的:为了满足不具备提供业务平台能力厂商的接人,后续会重点完成智能家居管理平台业务控制功能模块的开发,届时本方案将既支持新加入智能家居队伍中的终端厂商,又兼容已具备自有业务平台的智能家居终端厂商。
6摘 要:
分析了现有智能家居应用开发技术的现状,提出了一种基于Wi-Fi智能连接模块的智能家居应用开发技术方案。对方案中的关键技术进行了深入分析,并对基于本方案的智能家居应用开发技术进行了可行性验证。