基于ARM的智能家居红外控制系统设计
2015-05-08童江松李仁旺钱小燕
童江松, 李仁旺, 钱小燕
(浙江理工大学机械与自动控制学院, 杭州 310018)
基于ARM的智能家居红外控制系统设计
童江松, 李仁旺, 钱小燕
(浙江理工大学机械与自动控制学院, 杭州 310018)
设计了一种基于ARM的红外控制系统,以ARM为微处理器、Linux为嵌入式操作系统,通过红外学习模块对家电设备遥控器的红外编码学习,将室内多种家电设备的红外遥控功集成在智能终端,在智能终端实现对家电设备的集中控制功能。测试结果表明该系统性能稳定,能够实现Android设备对家电设备的红外控制功能。
ARM; 遥控器; Android; 家电设备; 智能家居; 红外控制
0 引 言
近年来,随着经济的迅速发展和人民生活水平的不断提高,人们对生活环境的要求也越来越高,开始由追求宽敞的生活空间及奢华的室内装修转向家居智能化,享受智能化带来的安全、便利和舒适的居住环境[1]。与此同时,在智能化技术方面,电子信息技术与计算机控制技术的快速发展,也进一步促进了智能家居控制系统的出现[2]。智能家居融合了自动化控制、网络通信和综合布线等技术,将与家庭生活密切相关的家电控制系统、网络信息服务系统等各子系统有机地结合在一起,通过中央管理平台,为智能家居系统的用户提供便捷的人性化管理方式。
在传统家电设备中的红外遥控器一直以来是人们日常生活中不可或缺的一部分,但随着智能家居产品的快速发展,传统红外遥控器在使用过程中一些不便性、不易操作性的问题也愈加凸显,如遥控器与家电设备有障碍物时,家电设备无法接收遥控器发送过来的红外码,并且遥控器在使用过程中,需要经常地更换电池,这也造成了资源的浪费和间接的环境污染。另一方面,在使用多种家用电器过程中,由于各个品牌及各种电器红外码不同,往往需要多红外遥控器的交换使用,操作繁琐,遥控器过多不易于集中管理,红外遥控器自身存在的这些问题也在一定程度上制约着智能家居家电控制系统的研究与开发。
为了适应智能家居的发展需要及解决红外遥控器使用中面临的问题,本文提出了基于ARM的智能家居红外控制系统设计方案,将室内多种家电设备的遥控功能集成在一个智能终端上,通过智能终端实现家电设备的红外控制。
1 系统总体设计
智能家居红外控制系统主要由ARM控制端和Android平台客户端组成,系统框架如图1所示。ARM控制端包括ARM处理器模块和红外学习模块,ARM处理器模块接收来自Android平台的指令代码,对指令进行解析,将解析后的指令发送给红外学习模块,通过红外学习模块来完成家电设备红外的红外学习或红外控制。作为系统的智能终端,Android平台将学习到的各种红外家电设备家用电器配套遥控器的功能键映射到Android设备的应用程序界面中,用户可以在Android设备上实现对家电设备的集中控制。
图1 系统框架
2 红外控制系统的硬件设计
红外控制系统主要由ARM处理器、红外学习模块、串口电路模块、无线通信模块、和电源模块等几部分组成,系统硬件设计图如图2所示。
本系统ARM处理器采用LinkSprite公司生产的ARM Cortex A8嵌入式开发板pcDuino。它选用Allwinner A10作为核心处理器,DRAM为1GB,板载存储达到2GB Flash,完全兼容Arduino接口。它是一种高性能、高性价比的迷你PC平台,可以通过内置HDMI接口输出视频到电视或显示器屏幕,能够运行PC操作系统,如Ubuntu和Android的ICS等。
图2 红外控制系统硬件设计
2.1 串口电路设计
pcDuino开发板有两个USB接口,红外学习模块采用USB0接口,通过该接口进行命令交换及传输数据。由于pcDuino与红外学习模块之间的通信需要通过USB转串口模块实现。系统采用CH341T芯片对信号进行电平转换[3],其连接电路如图3所示。
图3 串口电路
2.2 无线通信模块
pcDuino开发板没有自带的无线通信模块,需要外接模块实现无线通信。如今比较流行的无线技术主要有:Wifi、Bluetooth、ZigBee、RFID以及一些简单专用无线通信协议[4](如CC1100、NRF905、Si4432等),其中Wifi通信具有WPA2安全性能、覆盖范围大、传输速率高、支持所有具有Wi-Fi功能的设备等优势,比较适合在本系统中使用Android设备与ARM服务端的数据通信。选择pcDuino官方的WIFI_PCDUINO作为其无线通信模块,该模块内部采用的是RT5370芯片,支持IEEE 802.11/b/g/n标准,支持USB2.0,最大数据传输速率达到150Mbps,工作频率2.412 GHz-2.484 GHz,可以运行在多种嵌入式操作系统下。
2.3 红外学习模块
为了提高智能家居控制系统的稳定性,同时为减少开发时间、降低开发难度[5],本系统中红外学习模块直接采用重庆昊纳科技自主研发的全方位下载型红外遥控学习模块,该模块可以学习市面上98%的电视、空调、音响、VCD、投影机、电风扇、DV等的遥控器。大功率全方位发射需要另外配外接电源。两种组织形式以红外码为单位组织可以支持108个单码按键、36个双码按键。以电器为单位组织可以支持客厅里常用的六种电器,掉电数据不丢失,同时支持多个设备的控制,控制指令简单,标准UART接口,TTL电平,蓝色LED指示工作状态,模块在以电器为单位组织方式下具有红外码数据下载和上载功能。红外学习模块通过串口电路与pcDuino开发板连接,实现模块与控制平台的数据接收与发送,其主要功能一是学习功能,二是控制功能[6]。
红外学习模块以自定义方式(红外码为单位)的指令,0x40-0xab为一键单码自定义区,可以支持108个按键,0xac-0xcf为一键双码自定义区,可以支持36个按键,以上指令主要用于用户自定义按键功能。0xf0为进入一般学习模式,0xf2为退出学习模式。自定义方式只能采用一般学习模式来学习。
各指令模块的回复数据由模块发送给控制主机,单字节串口数据,波特率为9600,N81格式,命令错误返回0xff,发射时红外码空或无效返回0xff。发射红外码正确返回0x00,学习错误返回0xff,学习正确返回0x00,同时对于指令发错或超时模块指示灯会闪烁3下提示。
2.4 电源模块
在本系统中,选用9 V(6节+1.5 V直流电池)直流电源供电,而红外学习模块和pcDuino供电电压为+5 V,这里通过7805变压芯片将9 V电压转为+5 V输出,如图4电压转换电路。
图4 电压转换电路
3 红外控制系统的软件设计
红外控制系统的软件设计由内核定制、ARM服务器软件设计和Android红外软件设计三部分组成。
3.1 内核定制
嵌入式Linux的内核源码为开源,用户可以根据自己的需要对内核做相应的调整,以适应自己的系统[7]。本系统选用了Ubuntu 12.04嵌入式操作系统,内核版本为3.4.29。系统内核中包含了众多的功能模块,不仅占用大量的系统资源而且对事件响应速度和执行速度也有很大影响。为了节省硬件磁盘空间、提高红外控制系统的反应速度,需要对内核模块进行有针对性的定制和裁剪,需对内核的内存管理、系统调用、中断机制、进程和进程调度、文件系统、进程间通信、设备驱动等方面的源代码进行修改,删除不必要的代码以减小内核,使内核更加精小高效,目标应用性更强。设备驱动模块在内核中占有很大比例,所以这里内核定制主要是删除一些系统没有用到的驱动模块组件,保留红外控制系统必需的设备驱动模块如无线网卡RT5370驱动、USB Host驱动等。如图5所示内核定制流程。
图5 内核定制流程
3.2 ARM服务器软件设计
在ARM端启动服务器程序,打开已连接红外控制模块的USB串口,监听Android设备客户端的连接请求,当有连接请求时,接受客户端连接,读取来自客户端发送过来的数据,判断服务器进行何种操作。通信协议规定:数据包第一个字节发送0表示ARM服务器进行指令代码的学习操作,发送1表示ARM服务器来控制红外家电设备。服务器将客户端发送的指令代码转发到红外控制模块,实现客户端软件对家电设备的学习与控制。ARM服务器的流程如图6所示。
图6 ARM服务器的流程
3.3 红外控制软件设计
通过Qt开发的红外控制软件,实现了在Android设备对家电设备的红外码的学习和控制,通信协议规定发送的数据包第一个字节须是0或1,用于标识ARM服务端进行红外学习或者红外控制。红外控制软件的流程如图7所示,作为客户端通过无线网络向ARM服务器发送连接请求,连接成功后,对应按键的操作,通过Android设备自带的无线装置[8],向服务器发送相应的操作命令。
图7 Android红外软件流程
Android设备学习和控制红外模块的具体步骤如下:
a) 输入ARM服务器IP地址,点击“Connect”,开始连接,按钮状态为“Disconnect”,表示已连接,也可以点击“Disconnect”断开连接。
b) 按下“开始学习”按钮,发送命令0xf0模块灯亮,进入学习状态,同时主机也收到0xf0回应,“开始学习”按钮被设置为“结束学习”状态。
c) 在文本框中输入按钮名称,按下“Enter”按钮,发送命令0x40,模块灯闪一下然后等待学习。
d) 原配遥控器正对着模块的黑色红外接收管,距离在3~5 cm左右,确认周围无强光或红外线和电磁干扰,按一下原配遥控器需要学习的按键,模块灯熄灭同时主机接收到0x00,大概1 s后模块灯再次亮表示学习成功了(如果是双码键学习,则A码学完,开始等待学习B码,再按一下原配遥控器的按键,模块灯熄灭同时主机接收到0x00表示B码学习成功了)。
e) 完成后,Android端红外软件上的其中未被使用的Button按钮变为可用,可以对其重命名,对应为该红外码的遥控按钮。
f) 如果学习错误模块灯会闪三下同时主机接收到0xff一个字节,提示重新学习,重复步骤2,3。
g) 按照步骤2、3将所有码键一一学完。
h) Android端按下“结束学习”按钮,发送命令0xf2,模块灯熄灭,退出学习状态,同时Android端收到0xf2回应,“结束学习”按钮被重新设置为“开始学习”状态。
i) 学习完成后,Android端红外控制软件则可以使用按钮的红外控制功能。
j) 红外模块正对家电设备,按下红外软件Button按钮(前提是其已变为红外码的遥控按钮),ARM端向红外模块发送Button下控制命令,模块蓝灯闪烁一下,红外学习模块向家电设备发送红外命令,返回0x00表示发送成功,实现了Android设备控制家电设备的效果。
k) 然后将室内多种家电设备的红外码依次学习到Android红外软件,通过Android端实现家电设备的集中控制。
本系统采用Android终端的用户友好型界面作为与用户的接口,Android红外软件操作界面如图8
图8 Android端界面
所示,主要由红外学习和红外控制两部分组成。当持有智能终端的客户打开智能终端的APP时[8],输入服务器IP地址连接上ARM端,Android端自定义输入红外码,学习各种家电红外码,红外码学习完成后,即可通过界面已学习成功的按钮对家电设备进行相应的集中红外控制。
4 结 语
本文设计了基于ARM的红外控制系统,介绍了系统的整体框架、硬件组成以及软件流程,系统采用嵌入式Linux,在Linux操作系统下完成了红外码的学习,实现了家电设备红外功能在Android客户端的集中控制。将智能家居红外控制系统软件安装在Android设备上,经过反复测试,系统能够在Android客户端实现家电设备红外码的学习,以及家电设备红外功能的集中控制。
[1] 肖令禄. 基于S3C2440和ZigBee的智能家居控制系统[J]. 渭南师范学院学报, 2013, 28(12): 33-36.
[2] 李小琴. 智能家居控制系统的设计[J]. 电子世界, 2013, (17): 126-127.
[3] 黄向骥. 基于CC2430的无线智能家居系统的设计[D]. 武汉: 武汉理工大学, 2010.
[4] 程 鹏, 潘志鹏, 王希朝. 基于WLAN技术的智能家居控制系统设计[J]. 微型机与应用, 2013, 32(17): 77-79.
[5] 乔强国. 基于S5PV210模拟智能家居嵌入式系统的设计[J]. 电子技术, 2013(9): 88-89.
[6] 程晓燕. 一种智能家居控制系统的设计与实现[J]. 才智, 2013(35): 307-307.
[7] 刘国秀, 王元伟, 徐建华. 基于ARM的嵌入式linux内核的裁剪与移植[J]. 电子元器件应用, 2009, 11(11): 66-68.
[8] 张银君, 黄国芸, 郑凌翔. 基于Android的智能家居系统设计与实现[J]. 科技创新与应用, 2013(33): 57-58.
(责任编辑: 康 锋)
Design of ARM-based Infrared Control System of Smart Home
TONGJiang-song,LIRen-wang,QIANXiao-yan
(School of Mechanical Engineering & Automation, Zhejiang Sci-Tech University, Hangzhou 310018, China)
This paper designs a kind of ARM-based infrared control system which takes ARM as microprocessor and Linux as embedded operating system, and integrates infrared remote control function of many kinds of indoor household appliances on intelligent terminal through infrared encoding learning on remote control of household appliances via infrared learning module so as to realize integrated control function on household appliances at the intelligent terminal. The testing result shows that this system has stable performance and it can realize the infrared control of Android equipments on household appliances.
ARM; remote control; Android; household appliance; smart home; infrared control
1673- 3851 (2015) 01- 0124- 06
2014-05-04
国家自然科学基金项目(51475434)
童江松(1991-),男,安徽安庆人,硕士研究生,主要从事嵌入式系统方面的研究。
TP399
A