徐宏宇,程 武,张 博
(沈阳航空航天大学 电子信息工程学院,辽宁 沈阳 110136)
基于ARM和Android的智能家居控制系统设计
徐宏宇,程 武,张 博
(沈阳航空航天大学 电子信息工程学院,辽宁 沈阳 110136)
针对传统智能家居控制系统采用有线组网、布线繁琐、系统中的家用电器需要PC进行控制、移动性较差等问题,提出了一种基于ARM嵌入式处理器和Android技术的智能家居控制系统的设计方案。该方案首先通过ZigBee无线技术组建家庭内的传感器网络和家用电器控制网络。然后,以S3C2440处理器为硬件平台,并搭载了嵌入式Linux操作系统来设计家庭网关。最后,编写了基于Android系统的APP(应用软件),使用Android系统的智能手机安装这个APP就可以通过3G/4G/WiFi网络获取室内的健康状况并远程控制家电。实验结果表明,该系统布线简单,移动性好,能够较好地实现智能家居系统的本地和远程无线控制。
智能家居;ARM;远程控制;Android;ZigBee;嵌入式处理器;Linux
随着人们对高品质生活的不断探索,对居住环境的要求也向着安全舒适并且智能化和自动化的方向发展。智能家居已成为当今社会研究的热门话题。成本低廉、性能优良并且扩展性较好的系统是研究人员急需解决的问题。
传统的智能家居控制系统一般通过有线[1]方式组建并且通过PC控制,这种方式通常需要部署很多线缆。当需要增减设备时又要重新布线,既影响了室内的美观又增加了开销;通过PC控制家电,增加了使用者的学习成本,便携性也很差,无论是升级和维护都相当不便。基于以上事实,本文结合ZigBee技术建立智能家居系统的传感器网络和家电控制网络(这两种网络称之为家庭内网),分别用于检测室内的健康状况和控制家电[2];然后以ARM嵌入式处理器为核心,建立智能家居系统的网关枢纽——家庭网关(向外连接公网,向内连接家庭内网);最后,基于Android平台开发智能手机的客户端软件,用户使用手机通过无线网络就可以远程获取室内状况信息并控制家电。
1.1 系统的功能
用户通过Android手机或Internet远程连接到家庭网关,实现对室内的温度、湿度、光照强度、烟雾浓度的实时获取和对灯光、音乐播放器、门禁、窗帘等家电的控制[3]。
1.2 系统的总体结构
本文设计的智能家居控制系统包括3大部分(如图1所示),分别是家庭内网、家庭网关和手机客户端APP。其中家庭内网包含传感器网络和家电控制网络,分别用于检测室内状况,控制家用电器;而家庭网关则是整个家庭网络的核心,对外连接到公网上,处理来自用户手机端的数据和命令请求,对内连接到家庭内网上,处理来自传感器网络和家电控制网络的数据;手机用户通过手机APP即可实时地远程控制家电并实时监控室内安全状况[4]。
图1 系统总体结构图
2.1 家庭网关的设计
家庭网关的核心是一个基于TCP/IP协议的嵌入式Web服务器,本文采用三星公司的ARM9处理器S3C2440作为硬件平台(如图2所示),该芯片本身集成了包括存储器接口、通信接口(SPI、RS232、I2C等)和AD等在内的丰富的硬件资源,可大大简化外围设备和处理器的连接程度,提高系统的稳定性和可靠性。
图2 智能家居系统家庭网关硬件框图
2.2 家庭内网的设计
图3 ZigBee节点连接框图
智能家居控制系统的最终环节就是室内环境监测、安防监测报警和家电远程控制。所以,家庭内网的设计包括两大部分:传感器网络和家电控制网络。为了摆脱传统线缆的束缚,综合考虑到功耗、复杂度和速率,系统采用ZigBee技术搭建传感器网络和家电控制网络。ZigBee技术是一种近距离、低功耗、基于IEEE802.15.4标准的局域网协议无线通信技术。其特点是近距离、低复杂度、自组织组网,非常适合用在室内环境下[5]。
市面上基于ZigBee技术的解决方案有很多,也很成熟。本文中选用的主控模块其核心部分是Chipcon公司生产的一款符合IEEE802.15.4规范的2.4 GHz的射频芯片CC2430。该芯片整合了ZigBee RF前端、内存和基于增强型51内核的微控制器等。硬件支持载波监听多路访问/冲突检测(CSMA/CA),2~3.6 V的工作电压有利于系统实现低功耗。基于该ZigBee模块搭建的传感器节点和家电控制节点如图3所示。
各子节点通过连接到ZigBee协调器节点,从而使传感器节点和家电控制节点连接到家庭网关上,进而连接到互联网。
系统软件设计包括家庭网关软件设计、智能终端节点软件设计和智能手机APP设计三大部分。家庭网关是以ARM9处理器为控制核心,其软件设计包括移植嵌入式Linux操作系统、Linux下基于TCP/IP协议的Web服务器应用软件设计和ZigBee协调器节点程序设计。智能终端节点的控制一般使用MCU即可,其应用软件就是一个循环的控制程序。智能手机APP部分是在Android操作系统平台下基于Google官方的开发工具包(Android SDK)进行开发。
3.1 移植嵌入式Linux操作系统
尽管现在Linux内核的版本已经更新到了4.4,但是在嵌入式Linux领域依然大量使用2.6的内核。所以,本设计依旧采用2.6内核的Linux操作系统,然后将它移植到S3C2440平台上。
首先,从https://www.kernel.org/pub/linux /kernel下载内核源码,然后解压源码,进入内核源码的根目录,修改Makefile文件,设置对应的目标平台和交叉编译器,然后配置并编译内核,编译成功后会得到内核镜像文件zImage。最后通过uboot的命令行菜单将镜像文件烧写到NAND Flash存储器中即可。
3.2 基于TCP/IP协议的Web服务器设计
在ARM+Linux开发平台下,常用的Web服务器有Httpd、Thttpd和Boa。其中Boa服务器支持CGI(公共网关接口),功能较强。为了实现动态Web技术,本文基于Boa编写了家庭网关的服务器。首先建立服务器端Socket,然后绑定服务器的IP地址,并循环监听服务器的一个端口[6]。当有客户端请求连入时,服务器端会开启一个子进程处理请求并完成与客户端的数据通信,具体的软件设计流程如图4所示。
图4 智能家居家庭网关服务器工作流程图
3.3 ZigBee协调器节点程序设计
在系统中,ZigBee协调器节点主要用于创建无线网络,分配ZigBee终端节点的网络地址,然后向终端节点发送控制命令并接收来自终端节点的环境信息,将接收到的数据全部上传至家庭网关中,最后通过公用以太网传送至用户手机的APP上。协调器首先会进行应用层的初始化,然后初始化端口并打开全局中断。接着协调器初始化一个信道并建立一个ZigBee网络,这时ZigBee终端节点就可以通过认证加入到该网络中并进行数据的交换,具体过程如图5所示。
图5 ZigBee协调器节点程序流程图
3.4 智能终端节点程序设计
智能终端节点是指由ZigBee终端控制的节点,在系统中主要是传感器节点和家电控制节点。ZigBee终端节点初始化同样包括应用层初始化、I/O端口初始化和打开全局中断,之后尝试加入由ZigBee协调器创建的无线网络中,特别要注意的是:只有与ZigBee协调器设置一致参数的终端节点才能加入到网络中。成功加入到网络后,ZigBee终端节点会将其注册信息发送给ZigBee协调器,然后ZigBee协调器完成对终端节点的注册[7]。
ZigBee终端节点每隔一定的时间(很短),完成一次数据的采集,并将该数据信息发送给协调器。对于来自于家庭网关的家电控制命令,ZigBee协调器会将其发送给家电终端控制节点,终端节点则通过中断的方式获取该信息并完成对家电的控制。具体实现过程如图6所示。
图6 ZigBee终端节点程序流程图
3.5 智能手机APP设计
用户对整个智能家居控制系统的操作最终是通过智能手机来完成的。为此,笔者开发了基于Android智能手机操作系统平台的APP。APP的设计包括APP界面前端和后台的开发。其中,APP的前端即UI(用户界面)设计,是通过建立一个XML文件,在这个XML文件下根据一定的布局编写相应的控件,然后在MainActivity代码中将这个XML文件进行绑定即可[8];而APP的后台代码设计,主要通过开启一个子线程,然后在子线程中建立基于TCP/IP协议的Socket连接,成功连接到家庭网关后即可通过点击UI界面上的按钮等控件来控制家电或者接收来自于室内传感器的数据,并显示在手机界面上。APP的主界面如图7所示。
系统软硬件设计完成后,在实验室条件下进行了测试。测试系统由一个ZigBee协调器、两个ZigBee终端节点(分别是温湿度传感器节点和音乐播放器节点)、一个由S3C2440平台搭建的家庭网关、一部无线路由器(用于连接Internet)和一部Android智能手机组成。其中,ZigBee协调器与ZigBee终端节点距离为10 m,相邻的ZigBee终端节点距离为15 m;家庭网关通过网口连接到无线路由器,进而连接到互联网上。经测试,截取了家庭网关的后台服务器部分运行数据,如图8所示。可以看出,系统运行稳定,信息采集及时准确,执行结构反应迅速,达到了家庭网络化、自动化的目标。
图8 家庭网关后台服务器部分运行数据示意图
本文将嵌入式ARM技术与ZigBee无线通信技术相结合,基于Android平台,开发了智能手机的APP进行人机交互。系统功能强大,后期扩展性强,功耗低,达到了对家庭设备智能化管理和远程监控的目的,具有较为广阔的应用前景。
[1] 陈发才,王仁波.基于SC1128电力线载波芯片的智能家居系统设计[J].微型机与应用, 2009, 28(20):16-18.
[2] 尹纪庭,袁佳,焦志曼,等.基于ARM和ZigBee的智能家居控制系统研究与开发[J].计算机测量与控制, 2013, 21(9):2451-2454.
[3] 叶高扬,毕冉.基于物联网的智能家居系统设计与实现[J].计算机应用, 2014, 31(S1):318-319.
[4] HAN D M,LIM J H. Design and implementation of smart home energy management systems based on ZigBee [J]. IEEE Transactions on Consumer Electronics,2010,56(3):1417-1425.
[5] 徐书芳,王金海,宫玉龙.基于ZigBee的智能家居控制系统的研究与设计[J].电子技术应用, 2013, 39(8):81-83.
[6] 关永,张杰,师怡爽.基于ARM的嵌入式WEB服务器研究[J].电子器件, 2006, 29(2):42-45.
[7] 纪金水.基于ZigBee无线传感器网络技术的系统设计[J].计算机工程与设计, 2007, 28(2):22-25.
[8] 杨威,高文华.基于Android的智能家居终端设计与研究[J].计算机技术与发展, 2013, 23(7):189-192.
Design of smart home control system based on ARM and Android
Xu Hongyu,Cheng Wu,Zhang Bo
(School of Electronic and Information Engineering, Shenyang Aerospace University, Shenyang 110136, China)
Traditional wired smart home control system which using cumbersome system requires household appliances in PC control, less mobile features. This paper presented a new design which based on ARM embedded processor and Android technologies. The method uses ZigBee wireless sensor technology to ste up the family network and home appliances control network. Then, using S3C2440 processor hardware platform which equipped with embedded Linux operating system to design the residential gateway. Finally, the Android APP (application software) is developed, smartphone powered by Android system installed this APP can be available through 3G/4G/WiFi network to indoor health and control home appliances remotely. Experimental results show that the system has a simple wiring, good mobility, and can be used to implement local and remote wireless control of smart home system.
smart home; ARM; remote control; Android; ZigBee; embedded processor; Linux
TP311
A
10.19358/j.issn.1674- 7720.2017.03.009
徐宏宇,程武,张博.基于ARM和Android的智能家居控制系统设计[J].微型机与应用,2017,36(3):29-32.
2016-08-06)
徐宏宇(1965-),男,学士,副教授,主要研究方向:信息获取与处理、电子技术与应用。
程武(1992-),通信作者,男,硕士研究生,主要研究方向:信息获取与处理、嵌入式系统与应用。E-mail:1637557819@qq.com。
张博(1992-),女,硕士研究生,主要研究方向:信息获取与处理。