韓煒
(海南熱帶海洋學院海洋信息工程學院,海南三亞,572022)
隨著物聯網技術的不斷普及,使用紅外遙控的家電種類開始增多,針對紅外遙控板的多樣性進行統一化的問題亟待解決[1]。使用者提出了“遙控統一化”、“紅外遙控便攜化”的用戶需求[2-3]。本文設計了一款自學習型藍牙紅外遙控系統。該系統能夠學習并記憶常見的家電紅外遙控器信號,可以集合多種紅外遙控于一體,從而實現對多種紅外遙控設備的集中控制[4]。
如圖1所示,本文設計的學習型紅外遙控系統由兩部分組成。一部分是以HXD019DU和STC8G1K08單片機為核心組成的板載遙控器,其中HXD019DU連接主控STC8G1K08單片機的串 口2,HXD019DU會將紅外接收頭接收到的紅外數據進行數據處理,將紅外數據變成相應的十六進制數據,單片機通過串口發送處理好的紅外數據來遙控紅外設備。

圖1 紅外遙控系統總體框架圖
另一部分是以TLSR8232為核心構建的藍牙紅外遙控單元。此單元可將遙控系統通過藍牙與微信小程序連接,小程序中包含全球紅外碼庫,可通過紅外接收一體頭對遙控設備的遙控板進行學習,也可以直接在小程序中選擇對應品牌的遙控設備,再通過小程序的設備適配界面對相應設備進行控制。
本文硬件系統主要由兩個核心部分組成,即STC8G1K08主控核心單元和宏芯達藍牙紅外學習單元。宏芯達藍牙紅外學習單元負責紅外數據的學習、存儲,STC8G單片機負責處理并發送處理后的紅外數據。單片機引出了I/O端口用于連接功能按鍵,可用于學習與發送更多的遙控器功能鍵。遙控系統的硬件采用5V電池供電,硬件實物體積小、功耗低、便于攜帶,可應用于實際產品中。
如圖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端口交叉連接,以實現異步串口通信,接收學習到的紅外數據碼。
宏芯達藍牙紅外單元電路是本系統電路設計中的重中之重,該單元電路主要以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為紅外學習狀態指示燈。
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接收到的紅外數據
本文設計的學習型紅外遙控系統實現了常見家電紅外遙控器信號的學習,可以集合多種紅外遙控于一體,從而實現對多種紅外遙控設備的集中控制。
在藍牙控制模式下,系統連接手機端微信小程序后可以在界面中選擇三種匹配模式,即品牌匹配模式、型號匹配模式和一鍵匹配模式來匹配控制設備。以型號匹配模式為例,用戶可在型號選項中搜索相應的設備型號,點擊對應設備選項,此時會出現命名選項框,用戶可以根據自己的需求來命名。命名完成后點擊對應的圖標,小程序會跳轉到相應的操控界面,可以點擊界面中的功能按鍵來操控目標電器。具體的控制界面如圖6所示。

圖6 微信小程序控制界面圖
本文設計的學習型藍牙紅外遙控系統通過藍牙模塊將系統與微信小程序相結合,實現了設備遙控和紅外碼學習,實現了多種遙控器的整合與統一,提升了人機交互的操作性與便利性,解決了不同品牌遙控器間的兼容性問題。方案具有一定的實用性與拓展性,基于本系統,還可添加Wi-Fi等物聯網模塊組建為智能家居的紅外控制網關設備等。