以安卓手机wifi为前提的智能遥控器设计
现如今,红外遥控器拥有价格低廉、技术成熟等优点,家庭中很多智能电子设备都采用红外遥控器控制。随着智能电子设备的增多,红外遥控器数量也逐渐增加,这会给每个家庭带来很多问题。基于安卓手机WiFi的家用智能遥控器,可同时控制多个不同品牌不同型号的家用电器,极大减少遥控器数量和一次性电池的使用量。
系统的结构
整个系统主要包括客户端软件、WiFi转红外模块,如图1所示。客户端软件通过WiFi,将已编码的数据通过WiFi传送至WiFi转红外模块,然后WiFi转红外模块根据编码规则,传递指令至内部红外发射模块,实现红外数据的发送。
图1:WiFi转红外模块(一)家用智能遥控器客户端的构成
1、码数据包的采集与设计
(1)键码数据包的采集红外遥控器的编码格式通常有NEC。NEC格式的特征:使用38kHz载波频率,引导码间隔是9ms+4.5ms,使用16位客户代码,使用8位数据代码和8位取反的数据代码。随着家庭电器种类、型号的不断增多,相对应的遥控器也随之增加,为了便于管理、存取与更新家电遥控器的红外代码,需要为繁多冗杂的代码建立一个数据包。
(2)遥控器按键数据包的设计由于红外协议各不相同,并且又相互不兼容,所以直接发送红外数据会导致WiFI转红外模块处理十分繁琐。因此,收集多种红外协议数据,按照自定义编码规则,将多种协议编码化,并保存于后台数据库。为了实现按键界面与遥控器数据包的匹配,定义数据包格式如下:文件起始标志位4位。键码属性128位:设备的信息,访问中文字库编码、ASCII码。载波频率4位:35-42kHz;分辨率0.5kHz,以适应不同载波的遥控器。键码编码:对遥控器界面软件的所有按键进行编码,键码位数根据实际红外协议确定。
2、控器界面软件的设计
(1)数据库设计安卓操作系统采用标准SQLite数据库,提供管理数据库相关的API.利用SQLiteOpenHelper类中的onCreate()Call Back方法以及onUpdate()Call Back方法创建与打开各种遥控器红外代码表Table,存进数据库中,方便数据的及时更新。
(2)按键与数据包匹配在手机界面中,每个按键都与其相对应的红外代码相匹配,即按键功能与数据库中各种遥控器数据相连接。通过调用getReadableDatabase()方法当用户按下按键时,软件会查找数据包,将与该按键相连的数据包数据,即相对应的控制家电的红外代码以WiFi的形式发送至WiFi转红外模块。
(二)WiFi转红外模块本模块负责数据接收、红外发射。包含WiFi数据接收与传送、串口数据解析、红外电平发射。采用WiFi芯片USR-WIFI232,提供WiFi信号及获得客户端所发送数据,再将数据通过串口传送至中控CPU。本模块内部采用单片机作为中控CPU,处理编码化数据与红外协议的转化。由于单片机价格低廉,资源足够,功能满足中控CPU的需求,因此,采用单片机作为中控CPU.在单片机程序中设置多个红外协议入口点,当编码化的数据传送至单片机后,按照自定义的编码规则,寻找对应的红外协议入口,从而发射对应的红外电平。中控CPU功能硬件电路由单片机最小系统及红外发射电路成。在中控CPU程序中,包含定时器功能、串口数据读取功能、红外电平控制功能。中控CPU的程序流程图如图2。定时器功能主要是用于产生载波,并与红外信号叠加,从而提高红外信号在空气中传播的抗干扰能力。串口数据读取,将WiFi芯片传递的数据加以分析,按照自定义的编码规则,进入不同的红外协议功能函数。红外电平控制功能,实现具体的红外协议函数,通过串口读取功能提供的数据,发射出匹配的红外信号。
图2:中控CPU的程序流程图
实验测试
本次试验采用专用的红外测试仪器,可以监测到红外信号并将其波形显示出来。采用安装客户端的安卓手机及WiFi转红外模块,对比于实物遥控器。将实物遥控器、WiFi转红外模块都对准红外测试仪器。按下实物遥控器的某个按键之后,观察红外测试仪器显示的波形,如图3所示;接着按下安卓手机上对应的遥控器按键后,观察红外测试仪器上的波形,如图4所示。
图3:实物遥控器按键的红外波形
图4:智能遥控器按键的红外波形
由图3、图4可以看得出,安装客户端的安卓手机及WiFi转红外模块可以实现实物遥控器的功能。