基于Android的智能家居系统设计与实现 下载本文

内容发布更新时间 : 2024/5/2 13:42:52星期一 下面是文章的全部内容请认真阅读。

龙源期刊网 http://www.qikan.com.cn

基于Android的智能家居系统设计与实现

作者:李红日

来源:《电脑知识与技术》2017年第03期

摘要:提出一种基于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所示,主要模块包括:

温度监控模块:系统提供实时采集温度数据,并且能通过远程终端的控制调整空调的温度、自动开关窗帘。

家电控制模块:本系统可以通过终端完成对电冰箱,洗衣机,微波炉等家用电器的远程控制。

安防门禁控制模块:根据实时的监控反馈室内防盗、防燃气泄漏、防火以及紧急报警等功能。

记录表控制模块:实现对家用电表,水表,燃气表的数据读取,并进行分析。

龙源期刊网 http://www.qikan.com.cn

照明模块:用户根据需要控制任意的灯光,包括灯光的开合关以及亮度的调节等。 实时视频监控模块:对视屏信息进行监控,可以对摄像头进行调焦、转动等控制。 上面模块通过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]。这些特点非常适合网关节点。

龙源期刊网 http://www.qikan.com.cn

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‖) ;