摘要:随着物联网技术的飞速发展, 智能家居已由概念转为现实, 成为今后家居领域发展的必然趋势。智能家居通过物联网技术将家中的各种设备 (如音视频设备、照明系统、窗帘控制、空调控制、安防系统、传感系统、网络家电等) 连接到一起, 提供家电控制、照明控制、电话远程控制、室内外遥控、防盗报警、环境监测、红外转发等多种功能和手段[1]。该智能家居控制终端是基于Android系统研发的用于对室内电器的远程和本地控制, 还包括了用户的个性化设置, 比如可以采用管理员模式对主控、区域、电器进行权限限制, 还有可以设定场景以及场景内的电器的执行动作使一系列场景电器得到执行, 另外传感系统可以触发某一特定场景, 增加房屋的安全系数等等。
关键词:智能家居; 电器控制; 数据存储; 移动通信; 场景联动;
Abstract:Through the Internet of Things technology, this provide home with appliance control, lighting control, remote control, indoor and outdoor remote control, burglar alarm, environmental monitoring, infrared forwarding and other functions and means.The smart home control terminal is based on the Android system developed for the remote and local control of electrical appliances that includes the user's personal settings, such as administrator mode can be used to control the region, electrical restrictions.There is also the ability to set the scene and the actions of the appliances in the scene so that a series of scene appliances are executed.In addition the sensing system can trigger a specific scene, increase the safety factor of the house and so on.
Keyword:smart home; electrical control; data storage; mobile communication; scene interaction;
智能家居是以住宅为依托, 利用综合布线技术、网络通信技术、自动控制技术等等将家居生活有关的设施集成, 构建高效的住宅设施与家庭日常事务管理系统, 提供给用户方便, 快捷的居家体验。手机客户端是智能家居系统中不可或缺的一个部分, 它可以完成管理员与其他用户的权限分配, 与家庭网关的通信, 场景功能的设定, 另外还有与传感器联动的报警功能的设置。本智能家居控制终端还采用了Websocket实现客户端与服务器之间的全双工通信, 这种方式在某种程度上减小了网络带宽和CPU利用率等问题。
1、系统总体结构
基于Android的个性化智能家居控制终端应用功能分析如图1所示, 主要包括用户管理模块、家庭网关管理模块、场景以及联动传感器模块、数据存储模块和通信模块。
1) 用户管理模块:在登录之前, 用户首先要完成注册操作, 将用户的手机号, 用户名以及密码注册到远程服务器中, 以便后续登录操作的远程认证。只有完成注册操作的用户才可以登录到主界面中, 用户也可以自己设置头像等个人信息。
2) 家庭网关管理模块:家庭网关是由TI公司生产的C C2530芯片和有人公司的USR-Wi Fi232模块组成。CC2530用于搭建Zig Bee网络实现对电器开关的控制, Wi-Fi模块用于与服务器以及手机终端的通信。在智能家居终端界面必须要对各个家庭网关进行管理, 首先要添加家庭网关, 并且只有管理员才可以执行该操作, 其他用户没有权限对家庭网关进行操作。添加成功之后, 终端需要在数据库和服务器存储网关的IP和编号信息。
3) 通信模块:当智能家居控制终端和网关在同一个家庭网络中, 则采用Socket通信建立连接, 从而终端可以对网关发送控制指令。如果不在同一个网络中, 那么通信需要通过远程服务器, 在两者之间建立通信。当然, 我们还可以在手机与服务器之间建立Websocket通信[2], 服务器可以主动发送信息给手机。
4) 数据存储模块:用户数据、家庭网关数据、电器数据以及场景数据不仅要在本地数据库备份, 而且要在远程服务器中的数据库备份。本地采用SQLite数据库, 远程则用My SQL数据库, 以便于在不同设备上同步全部的有效数据。
5) 场景及联动模块:这是用户个性化设置的一个重要体现。用户可以编辑任意一个场景, 如回家、离家等等, 并在场景中设置任意一些电器及其开关动作, 当用户编辑完成执行场景时, 这些电器都会被一一触发, 这样方便了用户。并且某一特定场景与传感器关联时, 当传感器被触发时, 这一关联场景也会被相应执行。
6) 状态显示模块:用户在执行电器的开关动作后, 采用发送广播的方式, 客户端收到电器状态改变的信息后, 将电器的状态信息以广播的方式发送出去, 在具体的电器页面中如果收到电器状态改变的广播信息, 电器状态的显示就会更改到相应状态。
图1 系统应用功能分析图
2、系统设计
控制终端大体分为两大部分:第一是UI界面以及内部逻辑结构, 包括登录/注册、用户管理、家庭网关管理, 区域管理、场景管理、传感器联动以及各个模块对应的编辑功能;第二是信息通信模块, 因为第一部分的每个模块信息不仅要保存到本地, 还要通过Web Service与远程服务器进行交互, 将本地数据的增删改查同步到远程服务器中。另外, 在本地手机终端需要与家庭网关建立Socket通信, 实现电器控制以及场景控制, 远程的话需要通过服务器接口, 才能和网关进行通信, 达到电器控制的目的。系统设计流程如图2所示。
图2 系统应用流程图分析图
(1) 登录/注册
新用户在登录之前首先要完成注册操作, 将注册信息输入, 然后进行远程服务器验证, 如果是新用户, 则将用户信息同步到本地和服务器中。接下来进行登录操作, 将帐号和密码输入, 再进行远程服务器验证账号和密码是否正确, 如果正确则进入主界面, 否则可以通过忘记密码验证过后重置。
(2) 家庭网关
家庭网关需要在客户端添加以后才可以使用, 先要搜索主机, 这里使用UDP创建用于发送、接收数据的Multicast Socket对象, 将该对象加入到指定的多点广播地址, 设置本MulticastSocket发送的数据报会发送到本身, 并将发送用的DatagramPacket里的字节数据[3], 发送过后读取区域内网关返回的编号和IP信息, 将要添加的网关信息存入到本地数据库中。
(3) 区域管理
这个模块是该终端个性化体现之一, 因为用户可以根据自己家中的区域分块添加相应的分区。这样每个区域都对应相应的电器, 使得用户体验会大大增强。
(4) 电器控制及状态显示模块
电器在控制之前, 需要进行添加操作。添加电器分为两个过程, 首先要选择添加电器的类型, 其次在进行电器添加, 不同的电器型号不同, 添加的码值也不一样。编辑好设备名字后, 点击确定按钮, 然后点击硬件电器上面的对码键, 完成对码, 返回电器的编码信息, 只有在返回的对码信息和要添加的电器类型一致时, 才能够完成电器的添加, 否则提示添加失败, 不存在待添加电器。
电器控制分为本地和远程控制, 终端和家庭网关之间建立的Socket通信可能因为终端位置而变化, 超出Wi-Fi的覆盖范围或者移动端切换网络而断开连接都需要切换到外网通信。因此, 需要在每次Socket通信之前检查Socket连接的有效性, 有效则采用Socket通信, 否则切换成外网通信。通过发送数据报来实现对电器的控制, 控制之后会在界面中显示当前电器的状态。
(5) 场景控制及联动
在某一特定情况下, 需要多个电器同时执行, 传统的家居无法做到, 但是如果能将电器都加入到一个场景中, 发送一条指令就可以让它们被一一执行, 方便了用户。这个跟电器控制的通信方式不同, 当选择到某一组场景时, 终端会通知服务器, 服务器再和家庭网关通信, 这样被选中的那一组场景中的电器就会被执行。添加电器时需要添加传感器, 在设置联动方式后, 如果传感器被触发, 相应的场景也会被执行[4]。
3、个性化设置
图3 家庭网关配网功能
1) 家庭网关配网功能[5]。为了方便用户体验, 本智能家居控制终端不适用单一网络适配, 所以配网功能, 用户可以搜索Wi-Fi, 然后选择想要添加的主机网络, 输入Wi-Fi密码, 同时点击家庭网关的配网键, 完成配网功能 (如图3) 。
2) 电器编辑功能。界面的电器是可以删除和修改位置的, 并且每个电器都是可以被用户随意修改命名的。用户可以根据电器功能对电器进行命名。
3) Web Socket省流量通信。在查询电器当前状态时, 终端如果不采用Web Socket通信, 就需要循环查询服务器的电器状态列表。这样如果在本地有网的情况下还可以正常通信, 但是远程切换手机流量时就会造成流量的浪费。所以, 本终端必须采用Web Socket与服务器双向通信, 使用WebSocket通信也可以实现电器控制。现在如果远程服务器上的电器状态表有更新, 服务器就会主动发送状态修改信息给控制终端。Web Socket通信原理如图4。
图4 Web Socket通信原理
4、结束语
智能家居是当代家居市场发展的主流, 基于Android的个性化智能家居控制端是家居系统中不可或缺的一部分, 为用户提供了一个操作性强的电器控制界面, 不论在哪都可以实现家中电器的控制, 极大方便了用户。
参考文献
[1]赵钊.智能家居发展与设计中的应用[J].现代电子技术, 2016, 39 (20) :61-63
[2]李代立, 陈榕.Web Socket在Web实时通信领域的研究[J].电脑知识与技术:学术交流, 2010, 6 (10) :7923-7925
[3]李刚.疯狂Android讲义[M].2版.北京:电子工业出版社, 2013
[4]张琼斯.大型商场消防设备联动控制研究[D].西安:西安建筑科技大学, 2015
[5]张明杰, 韩建亭, 胡冰松, 等.用家庭网关打造物联网家庭应用系统[J].电信科学, 2010, 26 (4) :44-47