基于基于Android平台的智能家居系统设计平台的智能家居系统设计
为了实现家居生活智能、方便等目的,提出一种基于Android平台的智能家居系统。采用内外网通信方式,使得
当家庭宽带不可用时仍能通过内网实现对家居设备的控制。将用户配置信息、设备信息存在网关使得不同客户
端能信息共享,实现动态添加、删除动作。采用推送而不是轮询,实时性好。客户端APP功能齐全,云计算的
使用实现了外网控制,同时便于未来的系统扩展。
0 引言引言
1 系统总体框架图系统总体框架图
系统由客户端、
客户端实现对底层设备的控制方式包括:(1)内网控制:客户端使用家庭网络与网关直接通信,由网关控制底层设备;(2)
外网控制:客户端与网关不在同一网段内,客户端指令由云服务器转发给对应的网关,再由网关控制底层设备。采用内外网的
通信方式,使得家庭宽带网络在不可使用的情况下,仍能通过内网通信实现对设备的控制,同时节省用户数据流量[3]。每次
运行客户端软件,会自动获取网关处的配置信息、设备信息。网关同步底层设备状态,当发生改变时由网关转发给客户端,使
用户能及时获知底层设备的最新状态。
2 客户端设计与实现客户端设计与实现
2.1 客户端功能说明客户端功能说明
Android客户端功能模块如图2所示。
设备管理是核心模块,包括自定义房间和设备。可添加、删除、修改房间,房间下可添加设备。点击设备管理,通过后台
获取当前用户下的所有房间并以JSON格式返回,客户端完成解析并显示在界面上,点击添加图标进入添加房间界面,填写房
间名称并将用户ID与房间名称发往网关并保存至数据库。通过长按房间界面实现删除与修改动作。点击房间会显示该房间下的
所有设备,可添加设备,长按删除设备,不提供修改设备动作。可以控制单个设备或区域内的所有设备,也可以对某个情景模
式关联的设备进行联动控制。
2.2 客户端框架客户端框架
在Eclipse开发环境下,采用java语言,基于MVC模式对客户端进行设计。视图层View负责生成用户界面,接收输入并显
示结果。控制层Controller用于监听用户操作并作出反应。模型层Model定义了各种功能模块,包括通信模块、数据库模块、
数据格式的封装和解析模块等[4],其中通信模块是核心。
2.3 通信模块通信模块
通信模块负责客户端和服务器或网关间的消息通信和链路维护。通信方式有:TCP/UDP、Http、MQTT推送。系统的通信
协议如图3。过程如下: