周平,吕勇,易恺迪,陈飞挺
(北京信息科技大学仪器科学与光电工程学院,北京 100192)
基于PC的智能家电无线红外遥控系统
周平,吕勇,易恺迪,陈飞挺
(北京信息科技大学仪器科学与光电工程学院,北京 100192)
基于PC的智能家电遥控系统是以单片机CC2530为核心驱动、以YS-IR01F为红外学习核心模块的控制系统,该系统包括三部分,分别为用户控制界面、网关模块以及底层红外驱动模块,该系统可以通过对家用红外遥控数据的学习进而实现利用PC用户界面控制包括电视、投影仪等普通家电,初步实现家电智能化。满足一般家庭对智能家居的要求,方便人们的生活。
PC;无线红外;智能家电控制;红外学习
随着科技的不断发展,智能化产品设备日新月异,层出不穷,同时越来越多的多媒体设备进入了人们的生活、学习中,例如,在多媒体教室中,我们经常用到的数字投影仪,在家庭设备中我们每家必备的电视机、空调等,这些设备中大部分都采用红外遥控设备来实现对相应的设备远距离控制,由于智能化家电的控制是相对独立的,不受其他的遥控设备数据的影响,因此我们要想同时控制多个设备时就会给我们带来不便,如果我们仅仅通过每个家庭普遍存在的PC来实现对整个遥控网络的控制,这无疑会给我们的生活带来很大的便利。现在越来越要求电器设备具有智能处理功能,但就目前而言暂时还无法让人们大量体验这种智能设备,主要是存在这样几个问题,首先这样的智能成本相对较高,设备价格不菲,普通家庭承受不了这样的费用;其次无法在短时间内完成对那些不具备智能功能设备的替换,即使完成替换也将造成大量浪费。如果操作者可以将不同网络编号的底层红外驱动设备放在设备的前端,这样,操作者不需要拿着遥控器对着设备的红外感应头进行遥控,也不需要来回在某个空间范围内来回走动。如果可以通过改造这些设备来达到基本的智能功能,这无疑是一次非常具有实用性的创新和探索。
本文要介绍的基于PC的智能家电遥控系统是一种将家用遥控器上的红外数据学习后再控制设备的一套系统,在红外控制家用设备之初,它需要对不同的红外数据进行数据学习,具体流程为通过上位机将红外学习命令通过USB串口下发到网关设备,网关设备再通过单片机CC2530的物理层将上位机发来的数据组合成数据包并通过无线的方式转发给底层红外驱动设备,底层红外设备接收到网关发来的无线数据后判断接收到的是否为有效数据,如果为有效数据则驱动设备反馈给上位机,并且红外学习芯片YS-IR01F处于学习状态,等待红外数据学习;当上位机发出控制命令时,则芯片YS-IR01F将会调用之前相应学习的红外数据实现对家用电器的控制。
目前暂时先研究通过PC来控制这些设备,随着研究的深入可以尝试通过手机来控制,更进一步则是可以将电器设备与各种类型的传感器形成系统结合起来,以此完成设备的智能自动化操作。
该系统是一个便于操作和控制家用电器的遥控系统,它不仅在操作层面上使得人们控制家用电器简单方便,同时它还能够将许多红外遥控设备组成一个星形网络,从而通过电脑客户端来实现对整个红外遥控设备的遥控。整个系统的结构如图1所示。
图1 系统整体结构
从上图1中我们可以看到,本系统主要有三部分构成:基于PC的上位机用户界面设计部分、底层驱动软件部分以及硬件设计部分。
设计思路:上位机主要负责实现对整个系统的控制,它通过发送数据给红外学习模块来实现对红外的学习及发射红外控制命令。首先,上位机通过无线串口将学习命令数据通过无线发送给红外学习模块,然后红外学习模块就可以开始对红外遥控设备进行学习,学习完后,红外模块开始保存学习到的红外数据并回馈给上位机,上位机便可以对红外学习模块下达控制命令,从而实现对家庭红外系统的控制。系统简单流程图如图2所示。
图2 系统流程图
上位机用户界面采MFC编写,它主要是通过串口传递数据。传递时,需要先确定串口号、波特率、奇偶校验位,停止位等,成功设置后即可打开串口,进行数据传输。程序主要通过创建线程来接收数据,通过按钮来发送数据。程序分为控制模式和学习模式,控制模式是控制下位机对家电进行控制,学习模式是控制下位机学习家电的红外数据。用户界面图形如图3所示。
图3 上位机界面图
从图3中我们可以看到:该上位机主要由三部分组成:串口基本参数设定、数据的发送与接收、网络设置及上位机的学习与控制。
串口基本的参数设定:该部分主要是对设定网关与上位机的准确链接,其主要包括端口号的设定及波特率的大小,端口号使得上位机与网关之间能够相互之间传送数据,而波特率则决定了发送和接收数据的准确定位。
数据的发送与接收:该部分主要是用来在上位机与网关之间的数据联系,也就是通过这些数据来达到控制底层红外学习模块的学习与控制作用。
网络设置:该部分说明了网关与在网络中所在的哪个设备进行通信,并决定了红外学习命令还是红外控制命令。由于设备就有两个,一个是网关设备的网络编号,一个是红外遥控模块的网络编号,此部分的功能只用到了一部分,其他地方还可以扩展。
上位机的学习与控制:该部分主要是对相应设备的规定,其中包括红外学习与红外控制命令,而从整体上看,该部分主要控制的是空调和电视,但是由于本设备室采用先学习控制数据再进行控制的方式,所以,在实现红外控制方面,本设备还可以通过该部分控制其他红外遥控设备,例如投影仪、遥控风扇等。
通过该操作界面,我们可以在电脑上很容易地实现对家电实时控制,初步实现家居的智能化,并且该用户界面操作简单、实用方便,能够让操作者在短时间内掌握操作的步骤。
3.1 底层协议
本设计的底层驱动直接采用CC2530的物理层(底层协议)进行无线数据的发送与接收,并制定出了收发的私有协议,这样设计不仅设计简单,而且开发的速度快,能够满足设计要求,实现对家电的控制功能。该协议帧格式如表1所示:
表1 通信帧格式
3.2 命令定义
在对设备进行无线遥控时,上位机要通过网关对无线设备进行下发命令,通知无线红外控制设备进行相应的操作处理,其命令如下表所示:
表2 命令定义
3.3 网关驱动软件设计
网关是在网络层以上实现网络互联;是一种充当转换重任的计算机的系统或设备,简单地说就是在不同的通信协议、数据格式语言,甚至两个体系结构完全不同的系统之间,充当翻译器。
本设计的网关是通过USB串口实现无线发射/接收设备与PC之间的连接通信,从而实现了底层控制设备与PC之间的联系与传递信息。
具体驱动实现方法:
在网关与PC握手后,网关开始检测上位机是否下达命令或者底层红外控制设备是否发来数据,当检测到上位机发送数据到网关后,网关便把发来的命令数据通过无线发送到底层红外设备,而当网关检测到底层红外控制设备发来数据时,它便把这些数据送到串口缓冲区,在串口显示,因而我们可以直观地看到底层数据反映来的情况。
3.4 底层驱动软件设计
总流程设计:
图4 底层驱动流程
底层驱动就是接收上位机发送的命令,并对收到的命令进行判断识别,如果发送来的数据命令符合规定的协议,则底层驱动便对上位机发送的命令进行响应并发送确认帧通知上位机已经收到数据,例如上位机发送来的数据是一个学习帧,那么底层驱动则进入到红外学习程序中等待外面数据的存储,等下次上位机发送控制命令来控制红外设备时,底层驱动则调用上次学习到的数据发射出去,从而控制相关的红外设备。
图5 USB转串口电路图
上位机在传达命令数据给网关模块时,它是以串口的形式向网关模块发送数据,因此在上位机与网关之前需要一个串口来实现两者的联系,本文采用以USB转串口的设计来实现连接功能。其设计电路图如图5所示。
从电路图中我们可以看出,USB转串口是通过FT232RL芯片来实现的,FT232RL为接口转换芯片,可以实现USB到串行UART接口的转换,其工作电压范围为3.3V~5.25V,一共有28个管脚,其中15管脚USBDP为USB信号加,连接内部串联电阻和上拉电阻到3.3V。此管脚在与USB连接时连接USB的D+接口。16管脚USBDM为USB信号减,连接内部串联电阻。此管脚在与USB连接时连接USB的D-接口。
而1管脚TXD为发送异步数据输出,5管脚RXD为接收异步数据输入,两者分别连接CC2530串口0位置2的P1_4和P1_5管脚用来接收和传输数据。
本模块是一个收发一体的万能红外学习模块,采用I2C总线协议来实现相应的功能,该模块兼容市面上的机顶盒、电视机、电风扇、MP3播放器、音响设备等99%的红外学习,但不支持空调。从电路上和实物上来看,此红外学习模块结构具有相对简单、接口少、体积小等优点,并且工作电压在3.3V,普通的干电池或USB供电即能满足要求,因而此设计采用此模块进行红外设备的学习和控制。
●I2C总线协议:
I2C总线协议是PHILIPS公司开发的两线式串行总线,一条是数据线(SDA),一条是时钟总线(SCL),用于连接微控制器及其外围设备,其最大的优点就是简单性和有效性,由于组件直接连接到两条主线接口上,因此I2C总线所占的空间很小,减少了接口的数量以及电路板的空间,进而也降低了成本。
图6 红外模块
●总线信号类型:
I2C总线协议有三种信号类型,它们分别是起始信号、结束信号和应答信号。
●起始信号:
SCL为高电平的时候,SDA由高电平向低电平跳变。
●结束信号:
SCL为高电平的时候,SDA由低电平向高电平跳变。
●应答信号:
接收数据的设备在接收到8位数据后向发送数据的设备发送一个低电平脉冲,CPU单元在向受控单元发送数据后,等待受控单元返回应答信号,CPU根据受控单元发送的应答信号决定是否向受控单元发送数据,如果CPU单元未接收到受控单元发送过来的应答信号,则判断受控信号出现故障。
注意:在SCL为高电平期间,SDA上的数据要求必须稳定,不允许发生跳变。
●数据的传输:
数据的传输分为读操作和写操作。在I2C协议中,数据传送是以每8位数据进行传递,加上受控单元的应答信号,一个信息的传送一共9位,在这8位有效的数据当中,前四位一般是厂家出厂时设定的,下面三位是主控单元发送数据的目标位置,也就是受控单元的地址,最后一位是读写操作位,“0”为写操作,“1”为读操作。
本文研制了基于PC的智能家电无线红外遥控系统,设计了一个能够通过电脑客户端实现对家庭中的无线红外遥控设备控制系统,组成一个以PC为中心的星形网络系统,通过对PC客户端的简单操作便可以实现对家用电器的控制,实现家电设备的初步智能化。系统的实物图如图7所示。该系统从整体来说有创新点为:
(1)通过电脑控制电视或空调等可红外遥控的家电;
(2)使用射频无线传输,提高应用的便利性;
(3)可实现普通家电的初步智能化。
图7 系统实物图
该系统在测试中对99%的设备能够进行遥控,由于空调的控制相对比较复杂,因此对于空调则不能进行控制。
[1] 李志方,钟洪声.IEEE802.15.4的CC2530无线数据收发设计[J].单片机与嵌入式系统应用,2011(7):43~45
[2] 马忠梅,王美刚,孙娟.单片机的C语言应用程序设计[M].第五版.北京:北京航空航天大学出版社,2013:287~313
[3] 马磊.基于CC2530无线数据远距离通信模块的设计[D],2013
[4] 石宗义.I2C总线时序分析及其模拟[J].太原理工大学学报.2004(1):53~55
[5] 朱珍,王忠峰.PC串口通信的几种实现方式[J].现代计算机,2012(12):49~52
[6] 王凯明.智能家居系统的研究[D].西安科技大学,2005
Wireless Infrared Control System of Intelligent Appliances Based on PC
ZHOU Ping,LV Yong,YI Kai-di,CHEN Fei-ting
(School of Instrumentation Science and Opto-electronics Engineering,Beijing Information Science&Technology University,Beijing 100192)
Intelligent home appliances remote control system based on PC uses MCU CC2530 as core driving.The control system of infrared learning module with YS-IR01F as the core,the system consists of three parts which are the user interface,gateway module and underlying infrared driver module.Further realizes the system by the PC user interface control including TV,projector,etc,realizes the intelligent home appliances.To meet the requirements of general family intelligent home furnishing,convenience to people's life.
PC;Wireless Infrared;Intelligent Home Appliances Control;Infrared Based Learning
1007-1423(2015)01-0036-06
10.3969/j.issn.1007-1423.2015.01.009
周平(1990-),男,河南人,北京信息科技大学光信息科学与技术专业本科生
吕勇(1971-),男,安徽合肥人,硕士,副教授,从事领域为光电检测技术研究工作
2014-11-28
2014-12-08
北京信息科技大学本科生培养-大学生科研训练项目资助(No.PXM2014_014224_000079)、专业建设-光信息科学与技术项目资助(No.PXM2014_014224_000066)
易恺迪(1987-),男,北京人,本科,工程师,研究方向为无线通信技术
陈飞挺(1992-),男,福建人,本科,研究方向为光电检测