背景技术
智能家居是在互联网影响之下物联化的体现,通过物联网技术将家中的各种电气设备连接到一起,提供家电控制、照明控制、电话远程控制、室内外遥控、防盗报警、环境监测、暖通控制、红外转发以及可编程定时控制等多种功能和手段。在原有红外发送遥控器的功能上,增加了红外接收电路,通讯电路及控制电路等,实现了红外码学习和根据远程指令执行相应操作的功能。
现有的红外遥控器技术中,均存在很多不足。如专利CN201410723466.4《一种高效红外遥控的学习和编码方法》中,从获取的所述红外信号通过算法得到红外控制码的载波频率以及PWM比例;在发送学习码的时候,根据学习的翻转电平间隔以及PWM比例和载波频率,将红外码发送出去。此方案中通过记录波形的高低电平时长比例实现了控制码的复制,遥控码中的每一个bit都需要采用了一个byte来描述,数据长度增加了8倍;不适合采用网络传输。
如专利CN201610506014.X《一种红外遥控器代码的学习使用方法及学习型遥控器》中,按照微秒级的采集时间周期对所述目标红外遥控器的红外信号波形数据进行完整接收;将接收到的红外信号波形数据与所述学习型遥控器的相应按键的信息进行关联存储;在代替所述目标红外遥控器进行遥控工作时,根据被触发的按键调用存储的相应的红外信号波形数据进行发送。此方法中采用调用按键本地存储代码的方式,没有数据处理及压缩,主要用于遥控器的复制使用,不能用于网络应用。
如专利CN 201510456459.7《一种家电红外遥控波形的复制学习方法及系统》中,利用直接采样法对家电红外遥控波形中的数据码进行采样,获得采样数据;对采样数据进行特征提取,获得特征值;通过对空调遥控编码波形的深入分析,使用了数据统计分析的方法来进行空调遥控编码特征值的求取,解决了毛刺干扰问题,而且对超长遥控编码进行了大比例的压缩,大大提高了红外遥控编码复制的成功率。此方案中四个特征值t1,t2,t3,t4来进行表示的数据,分别利用二进制数00,01,10,11来表示,所述采样数据被压缩为4个二进制数00,01,10,11表示。此方法中特征提取算法比较复杂,需要专门处理。
如专利CN201510420789.0《基于云平台的空调遥控码学习方法》中,直接采用了采集数据与数据库现存数据比对的方法,对未知来源的遥控器适应性弱。
发明内容
鉴于以上技术问题,本发明的目的在于提供一种红外遥控器学习及编码方法、红外遥控器系统及存储介质,解决现有遥控器技术领域中红外遥控编码数据不适合网络传输或对未知遥控器适应性弱的问题。
本发明采用技术方案如下:
一种红外遥控器学习及编码方法,包括:
通过红外信号采集及编码设备接收红外遥控器发出的红外编码数据;
获取所述红外编码数据的时长数据;
获取所述时长数据的最大公约数T;
分别获取所有时长数据对最大公约数T的倍数数据;
将所有倍数数据按照8bits组合成1个byte方式进行压缩,得到压缩后的遥控码数据;
将压缩后的遥控码数据按照设定的数据格式发送给红外信号解码及发射设备进行解密,以红外信号解码及发射设备将解密后的数据发送给被控设备。
进一步的,获取所述红外编码数据的时长数据包括:
将接收的所有红外编码数据除10,得到所述所有红外编码数据的时长数据。
进一步的,所述红外编码数据包括:引导码高电平时长、引导码低电平时长、数据1的高电平时长、数据1低电平时长、数据0高电平时长、数据0低电平时长、结束码高电平时长和结束码低电平时长;获取的所有时长数据对最大公约数T的倍数数据包括为引导码高电平时长的倍数数据TY1、低电平时长的倍数数据TY0、数据1高电平时长的倍数数据T11、低电平时长的倍数数据T10、数据0高电平时长的倍数数据T01、低电平时长的倍数数据T00、结束码高电平时长的倍数数据TS1和低电平时长的倍数数据TS0。
进一步的,红外信号采集及编码设备将压缩后的遥控码数据通过远程控制设备保存并发送给红外信号解码及发射设备进行解密。
进一步的,所述设定的数据格式为:10TTY1TY2T11T10T01T00TS1TS0
D0D1…Dn,其中Dn为自定义增加的数据,n为自然数。
一种红外遥控器系统,包括红外遥控器、红外信号采集及编码设备、红外信号解码及发射设备和远程控制设备;
所述红外信号采集及编码设备用于接收红外遥控器发出的红外编码数据;获取所述红外编码数据的时长数据;获取所述时长数据的最大公约数T;分别获取所有时长数据对最大公约数T的倍数数据;将所有倍数数据按照8bits组合成1个byte方式进行压缩,得到压缩后的遥控码数据,并将压缩后的遥控码数据按照设定的数据格式发送给远程控制设备;
所述远程控制设备用于保存按照设定的数据格式发送的遥控码数据并将所述遥控码数据发送给红外信号解码及发射设备;
所述红外信号解码及发射设备用于接收按照设定的数据格式发送的遥控码数据并对所述遥控码数据进行解密并发送给被控设备。
一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现所述的红外遥控器学习及编码方法。
相比现有技术,本发明的有益效果在于:
本发明通过红外信号采集及编码设备对被学习红外发射装置的编码记录并通过网络发送到发射终端,实现对各种遥控器行为的模仿,从而实现联网控制功能,解决了红外遥控码在网络上的传输速率及响应及时性问题,满足在最低4.8KBPS的窄带通讯中的应用,响应速度在1s内的时间要求;而且本发明同时可以满足遥控器的通用性,不管哪种遥控器都能够学习使用。而且高压缩率的编码方法,可以显著减少在网络上发送的数据长度,数据部分无损压缩率可为16:1或者32:1,由于压缩率大,可以更好的适应未知的遥控器和占用更少的网络带宽来实现智能家居的功能。
具体实施方式
下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
实施例:
请参考图1所示,一种红外遥控器系统,包括红外遥控器、红外信号采集及编码设备、红外信号解码及发射设备和远程控制设备;
所述红外信号采集及编码设备用于接收红外遥控器发出的红外编码数据;获取所述红外编码数据的时长数据;获取所述时长数据的最大公约数T;分别获取所有时长数据对最大公约数T的倍数数据;将所有倍数数据按照8bits组合成1个byte方式进行压缩,得到压缩后的遥控码数据,并将压缩后的遥控码数据按照设定的数据格式发送给远程控制设备;
所述远程控制设备用于保存按照设定的数据格式发送的遥控码数据并将所述遥控码数据发送给红外信号解码及发射设备;
所述红外信号解码及发射设备用于接收按照设定的数据格式发送的遥控码数据并对所述遥控码数据进行解密并发送给被控设备。
本发明的红外遥控器学习及编码方法采用上述红外遥控器系统,请参照图2所示,包括:
通过红外信号采集及编码设备接收红外遥控器发出的红外编码数据;
获取所述红外编码数据的时长数据;
获取所述时长数据的最大公约数T;
分别获取所有时长数据对最大公约数T的倍数数据;
将所有倍数数据按照8bits组合成1个byte方式进行压缩,得到压缩后的遥控码数据;
将压缩后的遥控码数据按照设定的数据格式发送给红外信号解码及发射设备进行解密,以红外信号解码及发射设备将解密后的数据发送给被控设备。
具体的,获取所述红外编码数据的时长数据包括:
将接收的所有红外编码数据除10,得到所述所有红外编码数据的时长数据。
具体的,所述红外编码数据包括:引导码高电平时长、引导码低电平时长、数据1的高电平时长、数据1低电平时长、数据0高电平时长、数据0低电平时长、结束码高电平时长和结束码低电平时长;获取的所有时长数据对最大公约数T的倍数数据包括为引导码高电平时长的倍数数据TY1、低电平时长的倍数数据TY0、数据1高电平时长的倍数数据T11、低电平时长的倍数数据T10、数据0高电平时长的倍数数据T01、低电平时长的倍数数据T00、结束码高电平时长的倍数数据TS1和低电平时长的倍数数据TS0。
优选的,红外信号采集及编码设备将压缩后的遥控码数据通过远程控制设备保存并发送给红外信号解码及发射设备进行解密。
具体的,所述设定的数据格式为:10TTY1TY2T11T10T01T00TS1TS0D0D1…
Dn,其中Dn为自定义增加的数据,n为自然数。
本发明具体的应用实施方式如下:
步骤1:红外遥控器发送信号;
步骤2:红外信号采集及编码设备采用1us为时长单位计数对数据电平计数;作为具体实施例,时长单位为1us,在本发明中时长单位不作限制。
具体的,采用以1us为单位的时间为计数单位,对红外遥控器发射的数据进行采样分析,可以采集到红外遥控器以下信息:
1.引导码高电平时长;
2.引导码低电平时长;
3.数据1高电平时长;
4.数据1低电平时长;
5.数据0高电平时长;
6.数据0低电平时长;
7.结束码高电平时长;
8.结束码低电平时长;
步骤3:将所接收的数据除10,用于消除采样误差;即将所有时长数据除以10,用于消除采样误差;
步骤4:求出所有数据的最大公约数T并保存,并将所有时长的最大公约数T,用作基本时长;
步骤5:按照数据顺序,分别求出引导码高低电平、数据1高低电平,数据0高低电平、结束码高低电平对T的倍数,例如最大公约数为20,数据1高电平时长除10后的时长数据为300,数据1高电平时长对T的倍数=300/20=15;即分别求出引导码高电平时长的倍数数据TY1,低电平时长的倍数数据TY0,数据1高电平时长的倍数数据T11,低电平时长的倍数数据T10,数据0高电平时长的倍数数据T01,低电平时长的倍数数据T00,结束码高电平时长的倍数数据TS1,低电平时长的倍数数据TS0;
步骤6:将计算出来的1和0按照8bits组合成1个byte的方式压缩遥控码数据;根据计算结果,将数据1及数据0压缩成按字节为单位的数据格式;
在头部增加固定说明:基本计数单位10(单位为uS)、基本时长T;引导码时长TY1、TY0;数据时长T11、T10、T01、T00;结束码时长TS1、TS0共10个字节;增加采集到的数据位D0~Dn,每8bits合成1个Byte;
步骤7:按照设定的数据格式,将压缩后的数据打包发送给上位机并存储;
设定的数据格式如下:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
… |
n+10 |
10 |
T |
TY1 |
TY2 |
T11 |
T10 |
T01 |
T00 |
TS1 |
TS0 |
D0 |
D1 |
… |
Dn |
步骤8:远程控制设备将存储的数据发送给红外发射终端解码发送,这里远程控制设备可采用上位机。
本方案基于云平台的学习型红外发射设备,通过对被学习红外发射装置的编码记录并通过网络发送到个发射终端,实现对各种遥控器行为的模仿,从而实现联网控制功能。解决了红外遥控码在网络上的传输速率及响应及时性问题,满足在最低4.8KBPS的窄带通讯中的应用,响应速度在1s内的时间要求;
本发明同时可以满足遥控器的通用性,不管哪种遥控器都能够学习使用。而且高压缩率的编码方法,可以显著减少在网络上发送的数据长度,数据部分无损压缩率可为16:1或者32:1,由于压缩率大,可以更好的适应未知的遥控器和占用更少的网络带宽来实现智能家居的功能。
本发明还提供一种计算机存储介质,其上存储有计算机程序,本发明的方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在该计算机存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机存储介质不包括电载波信号和电信信号。
对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。