【導(dǎo)讀】現(xiàn)如今,紅外遙控器擁有價(jià)格低廉、技術(shù)成熟等優(yōu)點(diǎn),家庭中很多智能電子設(shè)備都采用紅外遙控器控制。隨著智能電子設(shè)備的增多,紅外遙控器數(shù)量也逐漸增加,這會(huì)給每個(gè)家庭帶來(lái)很多問(wèn)題。基于安卓手機(jī)WiFi的家用智能遙控器,可同時(shí)控制多個(gè)不同品牌不同型號(hào)的家用電器,極大減少遙控器數(shù)量和一次性電池的使用量。
系統(tǒng)的結(jié)構(gòu)
整個(gè)系統(tǒng)主要包括客戶端軟件、WiFi轉(zhuǎn)紅外模塊,如圖1所示。客戶端軟件通過(guò)WiFi,將已編碼的數(shù)據(jù)通過(guò)WiFi傳送至WiFi轉(zhuǎn)紅外模塊,然后WiFi轉(zhuǎn)紅外模塊根據(jù)編碼規(guī)則,傳遞指令至內(nèi)部紅外發(fā)射模塊,實(shí)現(xiàn)紅外數(shù)據(jù)的發(fā)送。
圖1:WiFi轉(zhuǎn)紅外模塊
(一)家用智能遙控器客戶端的構(gòu)成
1、碼數(shù)據(jù)包的采集與設(shè)計(jì)
(1)鍵碼數(shù)據(jù)包的采集
紅外遙控器的編碼格式通常有NEC。
NEC格式的特征:使用38kHz載波頻率,引導(dǎo)碼間隔是9ms+4.5ms,使用16位客戶代碼,使用8位數(shù)據(jù)代碼和8位取反的數(shù)據(jù)代碼。
隨著家庭電器種類、型號(hào)的不斷增多,相對(duì)應(yīng)的遙控器也隨之增加,為了便于管理、存取與更新家電遙控器的紅外代碼,需要為繁多冗雜的代碼建立一個(gè)數(shù)據(jù)包。
(2)遙控器按鍵數(shù)據(jù)包的設(shè)計(jì)
由于紅外協(xié)議各不相同,并且又相互不兼容,所以直接發(fā)送紅外數(shù)據(jù)會(huì)導(dǎo)致WiFI轉(zhuǎn)紅外模塊處理十分繁瑣。因此,收集多種紅外協(xié)議數(shù)據(jù),按照自定義編碼規(guī)則,將多種協(xié)議編碼化,并保存于后臺(tái)數(shù)據(jù)庫(kù)。
為了實(shí)現(xiàn)按鍵界面與遙控器數(shù)據(jù)包的匹配,定義數(shù)據(jù)包格式如下:
文件起始標(biāo)志位4位。
鍵碼屬性128位:設(shè)備的信息,訪問(wèn)中文字庫(kù)編碼、ASCII碼。
載波頻率4位:35-42kHz;分辨率0.5kHz,以適應(yīng)不同載波的遙控器。
鍵碼編碼:對(duì)遙控器界面軟件的所有按鍵進(jìn)行編碼,鍵碼位數(shù)根據(jù)實(shí)際紅外協(xié)議確定。
2、控器界面軟件的設(shè)計(jì)
(1)數(shù)據(jù)庫(kù)設(shè)計(jì)
安卓操作系統(tǒng)采用標(biāo)準(zhǔn)SQLite數(shù)據(jù)庫(kù),提供管理數(shù)據(jù)庫(kù)相關(guān)的API.利用SQLiteOpenHelper類中的onCreate()Call Back方法以及onUpdate()Call Back方法創(chuàng)建與打開(kāi)各種遙控器紅外代碼表Table,存進(jìn)數(shù)據(jù)庫(kù)中,方便數(shù)據(jù)的及時(shí)更新。
(2)按鍵與數(shù)據(jù)包匹配
在手機(jī)界面中,每個(gè)按鍵都與其相對(duì)應(yīng)的紅外代碼相匹配,即按鍵功能與數(shù)據(jù)庫(kù)中各種遙控器數(shù)據(jù)相連接。通過(guò)調(diào)用getReadableDatabase()方法當(dāng)用戶按下按鍵時(shí),軟件會(huì)查找數(shù)據(jù)包,將與該按鍵相連的數(shù)據(jù)包數(shù)據(jù),即相對(duì)應(yīng)的控制家電的紅外代碼以WiFi的形式發(fā)送至WiFi轉(zhuǎn)紅外模塊。
(二)WiFi轉(zhuǎn)紅外模塊
本模塊負(fù)責(zé)數(shù)據(jù)接收、紅外發(fā)射。包含WiFi數(shù)據(jù)接收與傳送、串口數(shù)據(jù)解析、紅外電平發(fā)射。采用WiFi芯片USR-WIFI232,提供WiFi信號(hào)及獲得客戶端所發(fā)送數(shù)據(jù),再將數(shù)據(jù)通過(guò)串口傳送至中控CPU。
本模塊內(nèi)部采用單片機(jī)作為中控CPU,處理編碼化數(shù)據(jù)與紅外協(xié)議的轉(zhuǎn)化。由于單片機(jī)價(jià)格低廉,資源足夠,功能滿足中控CPU的需求,因此,采用單片機(jī)作為中控CPU.在單片機(jī)程序中設(shè)置多個(gè)紅外協(xié)議入口點(diǎn),當(dāng)編碼化的數(shù)據(jù)傳送至單片機(jī)后,按照自定義的編碼規(guī)則,尋找對(duì)應(yīng)的紅外協(xié)議入口,從而發(fā)射對(duì)應(yīng)的紅外電平。
中控CPU功能硬件電路由單片機(jī)最小系統(tǒng)及紅外發(fā)射電路成。在中控CPU程序中,包含定時(shí)器功能、串口數(shù)據(jù)讀取功能、紅外電平控制功能。中控CPU的程序流程圖如圖2。定時(shí)器功能主要是用于產(chǎn)生載波,并與紅外信號(hào)疊加,從而提高紅外信號(hào)在空氣中傳播的抗干擾能力。串口數(shù)據(jù)讀取,將WiFi芯片傳遞的數(shù)據(jù)加以分析,按照自定義的編碼規(guī)則,進(jìn)入不同的紅外協(xié)議功能函數(shù)。紅外電平控制功能,實(shí)現(xiàn)具體的紅外協(xié)議函數(shù),通過(guò)串口讀取功能提供的數(shù)據(jù),發(fā)射出匹配的紅外信號(hào)。
圖2:中控CPU的程序流程圖
實(shí)驗(yàn)測(cè)試
本次試驗(yàn)采用專用的紅外測(cè)試儀器,可以監(jiān)測(cè)到紅外信號(hào)并將其波形顯示出來(lái)。采用安裝客戶端的安卓手機(jī)及WiFi轉(zhuǎn)紅外模塊,對(duì)比于實(shí)物遙控器。將實(shí)物遙控器、WiFi轉(zhuǎn)紅外模塊都對(duì)準(zhǔn)紅外測(cè)試儀器。按下實(shí)物遙控器的某個(gè)按鍵之后,觀察紅外測(cè)試儀器顯示的波形,如圖3所示;接著按下安卓手機(jī)上對(duì)應(yīng)的遙控器按鍵后,觀察紅外測(cè)試儀器上的波形,如圖4所示。
圖3:實(shí)物遙控器按鍵的紅外波形
圖4:智能遙控器按鍵的紅外波形