基于HXD019DU的学习型红外遥控系统
2021-12-14韩炜
韩炜
(海南热带海洋学院海洋信息工程学院,海南三亚,572022)
0 引言
随着物联网技术的不断普及,使用红外遥控的家电种类开始增多,针对红外遥控板的多样性进行统一化的问题亟待解决[1]。使用者提出了“遥控统一化”、“红外遥控便携化”的用户需求[2-3]。本文设计了一款自学习型蓝牙红外遥控系统。该系统能够学习并记忆常见的家电红外遥控器信号,可以集合多种红外遥控于一体,从而实现对多种红外遥控设备的集中控制[4]。
1 红外遥控系统的总体设计
如图1所示,本文设计的学习型红外遥控系统由两部分组成。一部分是以HXD019DU和STC8G1K08单片机为核心组成的板载遥控器,其中HXD019DU连接主控STC8G1K08单片机的串 口2,HXD019DU会将红外接收头接收到的红外数据进行数据处理,将红外数据变成相应的十六进制数据,单片机通过串口发送处理好的红外数据来遥控红外设备。
图1 红外遥控系统总体框架图
另一部分是以TLSR8232为核心构建的蓝牙红外遥控单元。此单元可将遥控系统通过蓝牙与微信小程序连接,小程序中包含全球红外码库,可通过红外接收一体头对遥控设备的遥控板进行学习,也可以直接在小程序中选择对应品牌的遥控设备,再通过小程序的设备适配界面对相应设备进行控制。
2 红外遥控系统的硬件电路设计
本文硬件系统主要由两个核心部分组成,即STC8G1K08主控核心单元和宏芯达蓝牙红外学习单元。宏芯达蓝牙红外学习单元负责红外数据的学习、存储,STC8G单片机负责处理并发送处理后的红外数据。单片机引出了I/O端口用于连接功能按键,可用于学习与发送更多的遥控器功能键。遥控系统的硬件采用5V电池供电,硬件实物体积小、功耗低、便于携带,可应用于实际产品中。
2.1 STC8G单片机主控电路设计
如图2所示,主控部分采用了STC公司生产的STC8G1K08增强型8051内核单片机,STC8G系列单片机兼容传统的MCS-51系列单片机,性价比高且具备较强的抗干扰能力,该主控实现了功能按键解码和红外数据的处理与存储。
图2 STC8G1K08单片机核心电路图
单元电路中的U2采用了LM1117-3.3V芯片构成LDO稳压电路,该芯片可将5V电压转换成3.3V电压供蓝牙单元使用。U3为CH340G芯片构成的USB转TTL电平串口电路,该电路用于单片机的程序烧录及串口通信。U1为STC8G1K08单片机,该单片机自带2组独立异步高速串口,可用于PC通信及红外芯片拓展通信。在电路设计中,本系统将串口1预留作为程序下载接口,将串口2作为与HXD019DU芯片串口通信的端口。STC8G单片机的P1.0、P1.1引脚(串口2资源的数据收发引脚)与HXD019DU芯片的RX、TX端口交叉连接,以实现异步串口通信,接收学习到的红外数据码。
2.2 宏芯达蓝牙红外电路设计
宏芯达蓝牙红外单元电路是本系统电路设计中的重中之重,该单元电路主要以HXD019DU与TLSR8232芯片为核心构成。HXD019DU是集学习型、多设备万能遥控器于一体,具有学习码值功能,集成了各种常用遥控器的码值库,可学习全球绝大部分红外码格式,学习效果稳定、精准。TLSR8232是Telink开发的BLE SoC解决方案,它完全符合蓝牙4.2标准,允许与蓝牙智能手机、平板电脑、笔记本设备进行连接。
宏芯达蓝牙红外电路如图3所示。该单元通过红外收发一体头接收红外数据,通过HXD019DU进行数据处理,在选择红外模式时,可将处理好的数据存入STC8G单片机中等待发送;在选择蓝牙模式时,可将红外数据在全球万能码库中进行查询,将对应的码库调出,再通过TLSR8232芯片连接微信小程序,后将数据通过蓝牙协议下发到HXD019DU芯片进行数据发送即可。
图3 宏芯达蓝牙红外电路
电路设计时添加了拨动开关P1,便于蓝牙模式与红外模式的切换,天线部分采用PCB天线,可进一步降低设备成本,电路中添加了两个0R电阻和3nH电感组成2.4GHz天线滤波器,X1为石英晶体,C17与C18为晶振电路的负载电容。LED1为红外学习状态指示灯。
3 系统软件设计
STC8G单片机与HXD019DU的通信方式选择异步串口通讯。通过拨码开关选择红外模式或蓝牙模式,程序上电之后会对整个系统进行初始化,在红外模式下,判断当前的按键状态,长按按键三秒以上单片机就向HXD019DU发送学习指令进入学习模式,同时学习指示灯熄灭,表示成功进入学习模式。遥控器对准HXD5038红外收发一体头发送要学习的按键。当成功学习到按键数据时,学习指示灯会重新亮起。再次单击该按键,即可通过HXD019DU发送学习到的红外数据。拨码开关选择蓝牙模式时,HXD019DU与TLSR8232的TXD与RXD交 叉相连,以便双方进行串口通信。用户可通过微信小程序连接上遥控系统的蓝牙。可直接通过微信小程序的操控界面进行遥控设备的控制。
在蓝牙模式下,不需要单片机单元的参与。因此程序编写的重点在于红外模式下的按键状态判断、学习数据的接收、处理及红外数据的发送。软件处理过程如图4所示。
图4 软件处理流程图
在选择红外模式时,程序首先要对按键的状态进行判断,判断按下的状态是长按还是短按。按键按下时,需要有一个自定义的变量与延时函数,反映出按键按下的时长,规定当按键按下3秒以上时表示长按动作,反之则为短按动作。根据以上的思路可编写源码如下:
在长按按键时,单片机会通过串口2向HXD019DU发送学习指令,即4个16进制数“0x12,0x36,0x56,0x7A”,此时学习指示灯会熄灭。用户可用遥控板向HXD5038发送红外数据,当HXD019DU成功接收红外数据后学习指示灯再次亮起。单片机处理接收到的红外数据后再将其发送出去,即可控制相应的红外设备。该过程的核心源码如下:
若在单片机串口上添加检测探针,可在串口调试助手中得到如图5所示数据,将串口助手接收数据中的第一个字节和第二个字节(实际接收到的数据可能不是图5中所示的00、52,直接对这两个字节进行修改即可)修改为30、03后,再由单片机将其发送出去即可控制红外设备。
图5 HXD019DU接收到的红外数据
4 系统测试
本文设计的学习型红外遥控系统实现了常见家电红外遥控器信号的学习,可以集合多种红外遥控于一体,从而实现对多种红外遥控设备的集中控制。
在蓝牙控制模式下,系统连接手机端微信小程序后可以在界面中选择三种匹配模式,即品牌匹配模式、型号匹配模式和一键匹配模式来匹配控制设备。以型号匹配模式为例,用户可在型号选项中搜索相应的设备型号,点击对应设备选项,此时会出现命名选项框,用户可以根据自己的需求来命名。命名完成后点击对应的图标,小程序会跳转到相应的操控界面,可以点击界面中的功能按键来操控目标电器。具体的控制界面如图6所示。
图6 微信小程序控制界面图
5 结语
本文设计的学习型蓝牙红外遥控系统通过蓝牙模块将系统与微信小程序相结合,实现了设备遥控和红外码学习,实现了多种遥控器的整合与统一,提升了人机交互的操作性与便利性,解决了不同品牌遥控器间的兼容性问题。方案具有一定的实用性与拓展性,基于本系统,还可添加Wi-Fi等物联网模块组建为智能家居的红外控制网关设备等。