李红日
摘要:提出一种基于ZigBee 技术和Android平臺的智能家居系统设计方案, 该方案将智能家居系统中引入智能网关来实现家庭设备内部网络与外部公众网络的互连,实现室内家居环境的远程控制。实验证明,该方案能降低家居监控系统的成本和功耗,提高系统的可操作性和可控性,提升系统的实用性和可扩展性,具有实用价值和应用前景。
关键词:Zigbee;Android平台;智能家居
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)03-0234-02
Android是一种开源手机操作系统,目前发展势头十分迅猛, Android 已经成为主流的嵌入式操作系统. Android被用来作为智能家居系统中家庭网关系统, 规范统一。其次,Android 系统的应用程序可以轻松嵌入网络, 易于实现对智能家居的远程监控[1]。
ZigBee网络有协调器,路由器和终端设备三种逻辑设备。网络核心是协调器(coordinator)负责启动网络,通过选择一个相对空闲的信道以及一个PANID来启动网络,协助建立安全层以及处理应用层。在网络启动和配置完成以后,就相当于普通路由器。路由器(router)允许其他设备加入网络,多跳路由。一般情况路由器主要提供接力作用,扩展信号传输范围。Zigbee技术的特点决定了它是最适合智能家居系统的组网技术。下面重点研究基于Android平台智能家居系统设计与实现[2]。
1 智能家居系统的总体设计
设计智能家居的目的是提供安全方便家居环境,用户可以方便控制家庭中得家用设备,遵循实用性、可靠性等原则,总体如图1所示,主要模块包括:
温度监控模块:系统提供实时采集温度数据,并且能通过远程终端的控制调整空调的温度、自动开关窗帘。
家电控制模块:本系统可以通过终端完成对电冰箱,洗衣机,微波炉等家用电器的远程控制。
安防门禁控制模块:根据实时的监控反馈室内防盗、防燃气泄漏、防火以及紧急报警等功能。
记录表控制模块:实现对家用电表,水表,燃气表的数据读取,并进行分析。
照明模块:用户根据需要控制任意的灯光,包括灯光的开合关以及亮度的调节等。
实时视频监控模块:对视屏信息进行监控,可以对摄像头进行调焦、转动等控制。
上面模块通过ZigBee无线网络进行通信,将获取的数据信息传送到网关。无线传感器网络将所有信息发送到网关节点,网关节采用ARM为核心,处理器使用ARM9的S3C2410,实现网络高效、快捷接入Internet网络或GSM网络的能力。
用户可以通过智能手机连接网络而控制家居设备。对于手机终端,系统提供基于Android的控制系统。
图1 家居系统总体设计
2 智能家居系统硬件设计
智能家居系统硬件设计主要包括家用设备的各种硬件节点设计和网关节点设计。无线传感器的传感节点就是家用设备硬件节点。它由感知部件、存储器、通信部件、处理器、软件系统和电源构成。感知、采集外界的信息使用感知部件,并将其作为数字信号转换,方便处理器处理。负责协调节点各部分的工作是通过处理器实现,对采集的数据进行处理加工。其他传感节点或网关节点的通信主要由通信部件完成。软件系统为传感节点提供软件支持。
本智能家居系统采用TI的标准ZigBee协议实现Z-STACK,相应的硬件节点也采用TI的CC2430。CC243O无线芯片采用了CC2420收发模块的架构[3],在单个芯片上整合了ZigBee射频前端、内存和微控制器。它使用1个8位MCU(8051),具有64KB/128KB可编程闪存和8KB的RAM,还包含模拟数字转换器(8个ADC)、多个定时器(Timer)、看门狗定时器(Watchdog-timer)等。本系统采用CC2430主要是由于CC2430是TI公司的主流传感器网络解决方案。功耗小,有完善的软件支持和参考方案。内核是8051[4],支持汇编和C语言编程,还有对应的开发工具。选择其作为传感器网络节点的平台。
CC2430适用于各种ZigBee标准的无线网络节点,包括相关的协调器、路由器和终端设备等。传感网络节点的中央处理单元是CC2430。处理器用于对收集到的数据进行加工处理;传感器包括温度传感器,光照传感器,可燃气体传感器,摄像头传感器,振动传感器和噪声传感器等。传感器将感知到的信息发送到ADC,最后将信息汇聚于处理器,由处理器根据需求,再将信息通过ZigBee网络发送到网关。
智能家居系统中的网关节点采用S3C2410芯片。S3C2410处理器是基于ARM920T处理器核,该处理器拥有:独立的16KB指令Cache和16KB数据Cache,MMU,NAND闪存控制器,3路UART,4路DMA,I/O口,8路10位ADC,Touch Screen接口,IIC-BUS接口,IIS-BUS接口,2个USB主机,1个USB设备等[5]。这些特点非常适合网关节点。
3 智能家居系统软件设计
3.1移动终端与中央控制器通信软件设计
平板电脑、手机等移动终端与中央控制器的通信方式,由手机移动设备的应用程序产生指令并发送到中央控制器,中央控制器接收到指令后,对指令进行分析、处理,最后反馈到手机设备。本文选用搭载Android系统的智能手机作为移动终端,通过移动终端发送操作设备指令到中央控制器,数据处理信息通过中央控制器反馈到手机移动端。手机移动端上安装相应的应用程序,通过中央控制器Web 服务器为远程应用软件提供数据,两者之间的通信方式采用HTTP或Socket。本文采用Post方式,利用Android SDK提供HttpURLConnection实现网络连接。首先,通过new URL来新建服务器连接网址的实例对象,再通过OpenConnetction 函数创建HttpURLConnection实例对象。应用程序与智能家居系统各个模块之间的数据交互,建立在网络连接的基础之上,实现对家居设备的控制或查询功能。以下代码为建立网络连接及数据传输的代码:
// 创建网络连接对象
URL url = new URL(―http: //192.168.1.1:8008/myServlet/Smarthome) ;
HttpURLConnection SmartHome =
(HttpURLConnection) MyUrl.openConnection();
// 向servlet 服務器发送命令
CmdDataprivate static void putHttpURLData(HttpURLConnection SmartHome , String CmdData ){ SmartHome. setDoInput(true);
SmartHome.setDoOutput(true);
SmartHome.setUseCache(false);
SmartHome.setRequestMethod(―post); // 设置HTTP为post方式
SmartHome.setquestProperty(……………); //省略配置内容类型
SmartHome.connect(); //连接服务器
DataOutputStream TxData = new DataOutputStream(SmartHome.getOutStream);
TxData.writeBytes(―param =‖+URLEncoder.encode(CmdData,‖utf-8‖) ;
TxData.flush() ; // 发送,清空缓存
//----------退出代码省略-----------
}
// 接收Web Service传输来的数据
private static String getHttpData(HttpURLConnection SmartHome ) {
//------------ 变量定义省略----------------
InputStreamReader Rx = new IntputStreamReader(SmartHome.getInputStream);
BufferReader RxBuff = new BufferReader(Rx);
While(( LineData = bufferReader.readLine()) !=null){
RxData +=LineData;}}
3.2 UI设计
根据系统功能模块设计应用程序UI界面,主要包括用户登入界面、系统主界面、功能模块子界面等。子设备模块和应用程序模块相互关联,构成一个完整应用软件。主界面主要包括温度监控模块、家电控制模块、安防门禁控制模块、记录表控制模块、 照明模块、实时视频监控模块。在Android平台使用MVC架构(模型-视图-控制器)进行软件设计,其中SQLite数据库模型、网络通信模型、HTTP交互模型等构成模型(M)层,用户相互之间进行交互、信息显示界面构成视图(V)层,定义用户行为使用控制器(C),根据用户行为进行模型更新,并进行视图的更换。应用界面的设计思想如下:
1)登入界面:根据用户输入的用户名、密码判断用户是否合法性,并可以为用户分配权限。
2)主界面:根据家庭实际环境情况,主界面由多个子模块组成;具备控件增加和删除功能,保证实际家居设备和应用界面的一致性;为不同级别用户提供差异化的控制模块。
3)模块子界面:基本功能模块有温度监控模块、家电控制模块、安防门禁控制模块、记录表控制模块、照明模块、实时视频监控模块,各功能子模块实现对一个或者多个同类物体的控制。通知设备控制子模块的增加、删除,设置相应的家电设备,情景子模块能够根据用户习惯进行场景调节,安防子模块根据实景拍摄、动态更新来实现家居安防功能。
4 结论
本系统是基于Android 平台、以ZigBee 无线技术为支撑的智能家居控制系统。将ZigBee 无线技术和Android 智能操作系统整合,运用到智能家居中,更加契合了人们对家居智能化的要求。本系统能基本完成环境数据监测、无线控制等功能; 并且拥有很多优点,无需布线,可自由摆放节点位置、低功耗等。同时也存在一些弊端,如ZigBee 主要是用于低速率、数据吞吐量小的背景,因此无法用于传输图像及视频;解决办法就是把视频采集单元放在主控单元实现。
参考文献:
[1] Masek P,Kovac D,Ries M,et al. Universal smart energy communication platform[C]. Proc. of International Conference on Intelligent Green Building and Smart Grid (IGBSG), IEEE, 2014:1-4.
[2] 叶高扬,毕冉.基于物联网的智能家居系统设计与实现[J].计算机应用,2014(4).
[3] 朱波,彭霖.物联网下的智能家居控制系统设计研究[J].中国电子商务,2015(1).
[4] 王岩,袁慧.基于android的大众化智能家庭管理系统[J].中国科技信息,2015(1).
[5] 曹中忠,张勇.基于单片机的空调智能控制器的设计[J].软件,2014(6).