韓煒
(海南熱帶海洋學院海洋信息工程學院,海南三亞,572022)
隨著物聯(lián)網技術的不斷普及,使用紅外遙控的家電種類開始增多,針對紅外遙控板的多樣性進行統(tǒng)一化的問題亟待解決[1]。使用者提出了“遙控統(tǒng)一化”、“紅外遙控便攜化”的用戶需求[2-3]。本文設計了一款自學習型藍牙紅外遙控系統(tǒng)。該系統(tǒng)能夠學習并記憶常見的家電紅外遙控器信號,可以集合多種紅外遙控于一體,從而實現(xiàn)對多種紅外遙控設備的集中控制[4]。
如圖1所示,本文設計的學習型紅外遙控系統(tǒng)由兩部分組成。一部分是以HXD019DU和STC8G1K08單片機為核心組成的板載遙控器,其中HXD019DU連接主控STC8G1K08單片機的串 口2,HXD019DU會將紅外接收頭接收到的紅外數(shù)據進行數(shù)據處理,將紅外數(shù)據變成相應的十六進制數(shù)據,單片機通過串口發(fā)送處理好的紅外數(shù)據來遙控紅外設備。
圖1 紅外遙控系統(tǒng)總體框架圖
另一部分是以TLSR8232為核心構建的藍牙紅外遙控單元。此單元可將遙控系統(tǒng)通過藍牙與微信小程序連接,小程序中包含全球紅外碼庫,可通過紅外接收一體頭對遙控設備的遙控板進行學習,也可以直接在小程序中選擇對應品牌的遙控設備,再通過小程序的設備適配界面對相應設備進行控制。
本文硬件系統(tǒng)主要由兩個核心部分組成,即STC8G1K08主控核心單元和宏芯達藍牙紅外學習單元。宏芯達藍牙紅外學習單元負責紅外數(shù)據的學習、存儲,STC8G單片機負責處理并發(fā)送處理后的紅外數(shù)據。單片機引出了I/O端口用于連接功能按鍵,可用于學習與發(fā)送更多的遙控器功能鍵。遙控系統(tǒng)的硬件采用5V電池供電,硬件實物體積小、功耗低、便于攜帶,可應用于實際產品中。
如圖2所示,主控部分采用了STC公司生產的STC8G1K08增強型8051內核單片機,STC8G系列單片機兼容傳統(tǒng)的MCS-51系列單片機,性價比高且具備較強的抗干擾能力,該主控實現(xiàn)了功能按鍵解碼和紅外數(shù)據的處理與存儲。
圖2 STC8G1K08單片機核心電路圖
單元電路中的U2采用了LM1117-3.3V芯片構成LDO穩(wěn)壓電路,該芯片可將5V電壓轉換成3.3V電壓供藍牙單元使用。U3為CH340G芯片構成的USB轉TTL電平串口電路,該電路用于單片機的程序燒錄及串口通信。U1為STC8G1K08單片機,該單片機自帶2組獨立異步高速串口,可用于PC通信及紅外芯片拓展通信。在電路設計中,本系統(tǒng)將串口1預留作為程序下載接口,將串口2作為與HXD019DU芯片串口通信的端口。STC8G單片機的P1.0、P1.1引腳(串口2資源的數(shù)據收發(fā)引腳)與HXD019DU芯片的RX、TX端口交叉連接,以實現(xiàn)異步串口通信,接收學習到的紅外數(shù)據碼。
宏芯達藍牙紅外單元電路是本系統(tǒng)電路設計中的重中之重,該單元電路主要以HXD019DU與TLSR8232芯片為核心構成。HXD019DU是集學習型、多設備萬能遙控器于一體,具有學習碼值功能,集成了各種常用遙控器的碼值庫,可學習全球絕大部分紅外碼格式,學習效果穩(wěn)定、精準。TLSR8232是Telink開發(fā)的BLE SoC解決方案,它完全符合藍牙4.2標準,允許與藍牙智能手機、平板電腦、筆記本設備進行連接。
宏芯達藍牙紅外電路如圖3所示。該單元通過紅外收發(fā)一體頭接收紅外數(shù)據,通過HXD019DU進行數(shù)據處理,在選擇紅外模式時,可將處理好的數(shù)據存入STC8G單片機中等待發(fā)送;在選擇藍牙模式時,可將紅外數(shù)據在全球萬能碼庫中進行查詢,將對應的碼庫調出,再通過TLSR8232芯片連接微信小程序,后將數(shù)據通過藍牙協(xié)議下發(fā)到HXD019DU芯片進行數(shù)據發(fā)送即可。
圖3 宏芯達藍牙紅外電路
電路設計時添加了撥動開關P1,便于藍牙模式與紅外模式的切換,天線部分采用PCB天線,可進一步降低設備成本,電路中添加了兩個0R電阻和3nH電感組成2.4GHz天線濾波器,X1為石英晶體,C17與C18為晶振電路的負載電容。LED1為紅外學習狀態(tài)指示燈。
STC8G單片機與HXD019DU的通信方式選擇異步串口通訊。通過撥碼開關選擇紅外模式或藍牙模式,程序上電之后會對整個系統(tǒng)進行初始化,在紅外模式下,判斷當前的按鍵狀態(tài),長按按鍵三秒以上單片機就向HXD019DU發(fā)送學習指令進入學習模式,同時學習指示燈熄滅,表示成功進入學習模式。遙控器對準HXD5038紅外收發(fā)一體頭發(fā)送要學習的按鍵。當成功學習到按鍵數(shù)據時,學習指示燈會重新亮起。再次單擊該按鍵,即可通過HXD019DU發(fā)送學習到的紅外數(shù)據。撥碼開關選擇藍牙模式時,HXD019DU與TLSR8232的TXD與RXD交 叉相連,以便雙方進行串口通信。用戶可通過微信小程序連接上遙控系統(tǒng)的藍牙??芍苯油ㄟ^微信小程序的操控界面進行遙控設備的控制。
在藍牙模式下,不需要單片機單元的參與。因此程序編寫的重點在于紅外模式下的按鍵狀態(tài)判斷、學習數(shù)據的接收、處理及紅外數(shù)據的發(fā)送。軟件處理過程如圖4所示。
圖4 軟件處理流程圖
在選擇紅外模式時,程序首先要對按鍵的狀態(tài)進行判斷,判斷按下的狀態(tài)是長按還是短按。按鍵按下時,需要有一個自定義的變量與延時函數(shù),反映出按鍵按下的時長,規(guī)定當按鍵按下3秒以上時表示長按動作,反之則為短按動作。根據以上的思路可編寫源碼如下:
在長按按鍵時,單片機會通過串口2向HXD019DU發(fā)送學習指令,即4個16進制數(shù)“0x12,0x36,0x56,0x7A”,此時學習指示燈會熄滅。用戶可用遙控板向HXD5038發(fā)送紅外數(shù)據,當HXD019DU成功接收紅外數(shù)據后學習指示燈再次亮起。單片機處理接收到的紅外數(shù)據后再將其發(fā)送出去,即可控制相應的紅外設備。該過程的核心源碼如下:
若在單片機串口上添加檢測探針,可在串口調試助手中得到如圖5所示數(shù)據,將串口助手接收數(shù)據中的第一個字節(jié)和第二個字節(jié)(實際接收到的數(shù)據可能不是圖5中所示的00、52,直接對這兩個字節(jié)進行修改即可)修改為30、03后,再由單片機將其發(fā)送出去即可控制紅外設備。
圖5 HXD019DU接收到的紅外數(shù)據
本文設計的學習型紅外遙控系統(tǒng)實現(xiàn)了常見家電紅外遙控器信號的學習,可以集合多種紅外遙控于一體,從而實現(xiàn)對多種紅外遙控設備的集中控制。
在藍牙控制模式下,系統(tǒng)連接手機端微信小程序后可以在界面中選擇三種匹配模式,即品牌匹配模式、型號匹配模式和一鍵匹配模式來匹配控制設備。以型號匹配模式為例,用戶可在型號選項中搜索相應的設備型號,點擊對應設備選項,此時會出現(xiàn)命名選項框,用戶可以根據自己的需求來命名。命名完成后點擊對應的圖標,小程序會跳轉到相應的操控界面,可以點擊界面中的功能按鍵來操控目標電器。具體的控制界面如圖6所示。
圖6 微信小程序控制界面圖
本文設計的學習型藍牙紅外遙控系統(tǒng)通過藍牙模塊將系統(tǒng)與微信小程序相結合,實現(xiàn)了設備遙控和紅外碼學習,實現(xiàn)了多種遙控器的整合與統(tǒng)一,提升了人機交互的操作性與便利性,解決了不同品牌遙控器間的兼容性問題。方案具有一定的實用性與拓展性,基于本系統(tǒng),還可添加Wi-Fi等物聯(lián)網模塊組建為智能家居的紅外控制網關設備等。