龙源期刊网 http://www.qikan.com.cn
基于Android平台的智能家居系统分析与设计
作者:王娜
来源:《计算技术与自动化》2017年第02期
摘 要:智能家居系统一直以来都是全球IT人士和家电制造商的聚焦热点。提出并实现了一种基于Android平台的智能家居系统,同时,对系统开发所使用的关键技术进行了介绍,如智能网关程序、Android用户控制程序、Zigbee技术,并分别对系统五个功能模块的设计进行了详细的描述及功能展示。最后,在手持终端上对系统进行测试,系统各个功能实现良好,运行稳定,整个系统性能基本符合预期的目标,具有较高的实用价值。 关键词:Android;智能家居;Zigbee;智能网关程序 中图分类号:TP311 文献标识码:A
Abstract: Smart home system has always been a global focus in the IT people and home appliance manufacturers. Smart home system based on Android was proposed and implemented. And, there were some related technologies to be introduced, for example: intelligent gateway program, Android users control program, Zigbee technology. How to design each module of this system are described in detail and the function display. The last, the system was tested on the handheld terminal, system operation is stable, the performance of the whole system is basically consistent with the expected goal, and has a high practical value.
Key words: Android; smart home; Zigbee; intelligent gateway program
随着科学技术的不断发展,人类的生活水平在逐渐地改善和提高,而对家以及家居的理念也不断更新,智能家居作为现代化家居的发展方向之一,在近年来得到了非常广阔的发展的空间[1-3]。目前,智能家居系统已经由原来以 PC 为控制中心转向以嵌入式家庭智能网关为核心的嵌入式系统领域。家庭智能网关是智能家居系统的核心单元[4],本文开发了一套基于 Android 平台家庭智能系统,该系统是家庭环境监测系统的重要组成部分,是连接家庭内部 ZigBee 传感器网络与家庭外部网络的桥梁。 1 关键技术 1.1 智能网关程序
智能网关程序是连接Android系统与ZigBee无线网络的桥梁,运行在Android系统的服务层,智能网关程序通过3G、WiFi、以太网等通信方式与Android用户控制程序相连,然后将
龙源期刊网 http://www.qikan.com.cn
用户控制程序发过来的指令通过串口发给ZigBee网络协调器,ZigBee网络协调器解析相应的指令后发送给各个传感器节点,以此来实现控制传感器节点设备的功能。 智能网关程序执行的流程图如图1所示。 1.2 Android用户控制程序
智能物联网的用户控制程序运行于Android系统应用层,采用JAVA语言开发。用户控制程序通过接收用户的输入操作,生成相应的控制指令然后通过3G、WiFi、以太网或者蓝牙等通信方式发送到智能网关系统[5-6]。同时,用户控制程序还可以接收智能网关程序发送过来的传感器所采集的信息以及告警指令,这样我们可以查看得到传感器采集信息的情况,以及可以及时处理相关的警告。Android用户控制程序框架如图2所示。 1.3 ZigBee
Zigbee技术是一种传输速率低,传输距离近,低功耗、低复杂度、和低成本的近距离的无线组网通讯技术[7]。Zigbee的通讯距离可以从75米到几百米、几公里、甚至更远,是一种高度可靠的无线数据传输网络,可包括多达65000个无线数据传输模块[8]。Zigbee网络的主要目的就是为了去实现自动化的控制工业现场的数据传输,为此,它的基本要求就是高可靠性、简单易用和低成本。Zigbee网络的每个节点既可以中转由其它节点传送的数据,也可以进行数据监控和采集。除此,Zigbee的网络节点还可以无线连接那些不参与数据传输的孤立的子节点。 2 系统功能设计[9-10]
本系统主要包含五大功能模块:信息采集功能模块、灯光控制功能模块、电器控制模块、智能窗帘模块、智能监控模块。 2.1 信息采集功能模块
打开各个节点板(烧写了温湿度节点映像的CC2530节点板)上的电源开关,等待各个节点板的D6灯点亮,说明连网成功。我们触摸打开SmartHome程序,如果Zigbee网络搜索成功,可以看到智慧家庭主界面,如图3所示。在信息采集图像模块中主要包括:光线感应、温湿度、空气质量、火焰监测,如图4所示。 2.2 灯光控制功能模块
灯光控制模块负责开启或关闭家居的灯光,部分代码实现如下: if (v == this.btnRayOpen) {// 卧室灯,开启按钮 if (btnRay == 0) {
龙源期刊网 http://www.qikan.com.cn
super.sendRequest(0x0002, new byte[] { 0x05, 0x02, 0x01 });// 开启命令 btnRay = 0x01; // 标识这盏灯的状态,0断开,1开启 btnRayOpen.setClickable(false);//设置开灯按钮不可用 btnRayClose.setClickable(true);//设置关灯按钮可用 }
} else if (v == this.btnRayClose) {// 卧室灯,断开按钮 if (btnRay == 0x01) {
super.sendRequest(0x0002, new byte[] { 0x05, 0x02, 0x00 });// 断开命令 btnRay = 0x00; // 状态位置 0 btnRayClose.setClickable(false); btnRayOpen.setClickable(true); } }
上述代码是开启或关闭卧室灯的,同理,客厅、婴儿房、卫生间灯光的代码与其类似。 2.3 电器控制模块
触摸打开电器控制图标,可以看到电器控制情况。触摸打开各个房间下面的“开”按钮,可以看到继电器板子上相关的小灯点亮,如图5所示,如果继电器另一端连接着真实的电器,可以看到相关的电器开始工作。 2.4 智能窗帘模块
智能窗帘模块需要通过读取参数响应窗帘开启、断开的状态,主要代码如下: if (cmd == 0x8001 && dat[0] == 0) {// 读参数响应 for (int i = 1; i < dat.length; /* i+=2 */) { pid = Tool.builduInt(dat[i], dat[i + 1]);