基于Android手机终端的智能家居控制系统设计
2015-10-29姜晓峰
姜晓峰
摘 要:探讨了基于Android手机终端的智能家居控制系统,分别从系统整体设计、系统硬件平台设计、OPC片上系统设计和Android客户端设计四个方面作了详细、系统的论述,以期能为相关人员提供借鉴。
关键词:Android;智能家居;控制系统;控制平台
中图分类号:TP273.5 文献标识码:A DOI:10.15913/j.cnki.kjycx.2015.20.091
伴随着生产力的不断发展,人们的物质生活水平不断提高,传统的家居系统成本高、安全性差,人们已经不再满足现在的这种同工业革命时期相差无几的生活方式了。近年来,智能家居的出现满足了人们的生活需求。基于此,本文就Android手机终端的智能家居控制系统设计进行了探讨。
1 系统整体设计
在以CycloneIII系列芯片为核心的FPGA硬件控制平台上开展设计和研发,其中包括了蜂鸣器、按键、数码管等基本外设。实现过程是:通过在FPGA芯片内部嵌入NIOSII软核作为通信和控制核心,从而构建SOPC片上系统。
2 系统硬件平台设计
考虑到现实的需求,硬件需由WIFI模块、FPGA控制平台、继电器模块组成,具体如图1所示。
由图1可知,手机通过无线WIFI将控制信息传递给位于同一AP热点下的WIFI模块,WIFI模块将接收到的控制信号由串口传递给FPGA,FPGA则根据接收到的指令控制相应的继电器工作,从而实现对家电的控制。同时,FPGA还可以将家电的工作状态和室内的环境状况通过WIFI模块再次反馈给手机。下面将详细阐述硬件设计中各构成模块的功能实现。
2.1 FPGA控制平台
FPGA控制平台是硬件系统的核心,主要负责接收和处理控制指令、控制动作电路、监测和反馈状态信息等。考虑到设计需求和系统成本,我们选择了CycloneIII系列中性价比更为优越的EP3C5E144C8N。该款芯片内部包含5 136个逻辑单元、95个标准用户I/O口、46个九位嵌入式乘法器和2个锁相环,可以流畅运行NIOSII软核。存储芯片则选择了三星公司的K4S561632E-UC75动态存储芯片,容量为256 Mb,位宽16 bits。为了方便使用,核心板上还设计了一款容量为16 Mb的FPGA专用配置芯片EPCS16。同时,考虑到控制平台的通用性、可移植性和可扩展性,平台上又进一步设计了4个LED、两位共阴极数码管、1个蜂鸣器、4个拨码开关和8个按键开关等基本外设,而且电源芯片选用了ASM1117-2.5、ASM1117-3.3和LM317,这三款芯片可分别为FPGA提供2.5 V、3.3 V和1.25 V电压。另外,FPGA所有用户I/O口都已引出,以便扩展。
2.2 传输协议模块
在智能家居中的应用原则中,TCP和UDP是目前最常用的网络通信协议。TCP是基于连接的协议,UDP是一个无连接的、不可靠的协议。相对于基于流传输的TCP而言,UDP是基于消息传输的,整体上具有传输速度快等优点。通过研究可以看出,家用电器的控制信息特点是数据量小、控制信息短,适合用于传送少量数据、对可靠性要求不高的应用环境,因此更适合采用简单的、面向数据报的UDP协议。
2.3 无线WIFI模块
无线WIFI模块采用的是深圳市海凌科电子有限公司的HLK-RM04。该模块是基于通用串行接口且符合网络标准的嵌入式模块,内置TCP/IP协议栈,能够实现用户串口、以太网、无线网(WIFI)三个接口之间的转换。在本次研发设计中,该模块的主要作用是将WIFI无线信号通过串口与FPGA控制中心相互通信。
2.4 Zigbee模块
采用CEL公司的ZICM2410芯片,其内核芯片结构如图2所示。CEL公司的ZICM2410是兼容ZigBee和IEEE802.15.4的完整单片无线解决方案。它包含1个带有基带调制解调器的RF收发器、硬连线MAC和1个带有内部闪存的嵌入式8051微控制器。该器件提供了多个通用I/O引脚、定时器和UART等外围设备功能,并且是第一个提供嵌入式声音CODEC的器件,因此是超低功耗应用的理想选择。
2.5 RFID 模块
RFID模块采用CY-14443A-P系列射频模块,利用SPI总线与控制器通信。CY-14443A系列射频读写模块采用基于ISO14443标准的非接触卡读卡机专用芯片。模块引脚如图3所示。
2.6 继电器模块
由于智能家居系统的控制对象是普通家电,都属于强电用电器。因此,使用控制平台操控时,就需要通过继电器来实现间接控制。继电器采用的是松乐继电器。为保证继电器的顺利闭合,本模块采用了达林顿晶体管ULN2003L来增加FPGA的驱动能力。
3 OPC片上系统设计
在FPGA内部设计NIOSII片上系统主要包括两个方面:①在FPGA芯片内部设计硬件电路;②编写基于NIOSII的软件程序。
3.1 硬件电路设计
硬件系统由时钟、NIOSII软核、音效模块组成。NIOSII软核和音效模块所需要的时钟频率不同,因此需要利用FPGA内部的一个嵌入式锁相环对时钟进行分频和倍频,这样可使整个系统实现频率同步。在此基础上配置NIOSII软核,由其完成指令的下达和数据的输入、输出。而音效模块则是家庭音响,主要由Android客户端实现控制。
3.2 基于NIOSII的软件设计
NIOSII支持C语言开发程序代码,并提供强大的硬件抽象层系统库(HAL)。NIOSII处理器的外围器件允许用户通过HAL的API接口直接访问底层硬件。同时,HAL系统库定义了一组基本功能,使设计者可以直接初始化和访问常用器件,而不再需要考虑底层硬件,这大大简化了程序的设计流程。程序运行烧写至FPGA内部的NIOSII软核中,主要功能除了接收WIFI无线模块传来的串口信息、译码并控制电路外,还能接收和处理各模块的状态信息,并反馈给WIFI无线模块。
4 Android客户端设计
本客户端是在Windows7操作系统下构建的。Android客户端是用户与控制系统沟通信息的交互界面。客户端的功能就是实现设计用户界面与Socket之间的成功通信。通过Socket通信,即打开网络套接字,由WIFI网络传递信息。将Android客户端安装在用户手机中,手机和系统的WIFI模块连接到同一个AP热点。Android客户端通过套接字向网络(WIFI模块)提供发送请求或者应答请求,触发后台应用程序。应用程序分析操作指令后发送相应的控制信息,并通过路由器传递给WIFI模块,WIFI模块再将接收到的信息转换为串口信息传递给FPGA内部的NIOSII软核,NIOSII软核处理接收到信息后控制相应的引脚动作,进而由引脚控制继电器的吸合和断开,由此实现对普通家电的完整控制。
Android客户端的用户界面文件包含了若干个TextView(文本框)控件和1个Button(按钮)控件,用户可以通过界面中的按键实施相应操作。功能清单文件AndroidManifest.xml是对应用程序的全局描述,也是应用程序不可或缺的一个重要文件。所有应用程序所使用到的组件均存在于AndroidManifest.xml文件中,并且发表了与其有关的特性和要求声明。程序代码由JAVA语言编写,交互界面之间的切换与显示则由TabHost控件实现与维护。Android软件通过“套接字”向网络(WIFI模块)提出发送请求或者应答请求。设计程序时,需着重考虑Socket通信。
5 结束语
综上所述,目前智能家居正朝着无线远程与近程控制相结合,集多媒体、游戏娱乐功能于一身和快速、便利等方向发展,而基于Android手机终端的智能家居则正好满足了人们的生活需求,相信通过不断的探索和应用,智能家居肯定会有更好的发展。
参考文献
[1]王清清,李晓勇,余强国.基于Android手机终端的智能家居远程控制系统[J].中国科技信息,2013(12).
[2]杨堤.基于物联网的智能家居控制系统设计与实现[J].电子世界,2012(21).
〔编辑:王霞〕