上周日小哈哥體驗了一下當主播的感覺,在B站直播了一下ESP8266如何快速連上阿里云物聯(lián)網(wǎng)平臺,演示了一下整個開發(fā)過程。
一個網(wǎng)友在做LD3320+STM32+紅外學習模塊組合的實例,實現(xiàn)語音控制紅外遙控功能的時候,遇到了困難,給我郵來一個紅外學習模塊,我做了一個實例,周二晚上為了演示方便,又開了一次直播,感覺當主播的感覺還不錯的。
這個紅外學習模塊玩起來還不錯,利用它可以把我家的電視、空調(diào)控制起來。
今天給大家分享一下這個模塊的調(diào)試過程,如果大家手里沒有USB轉(zhuǎn)TTL模塊,可以利用咱們的最小系統(tǒng)核心板,自己制作一個USB轉(zhuǎn)TTL模塊。
IR03T紅外學習模塊
功能特點
通信波特率可修改,默認為9600bps,可選4800、57600、19200、115200。
通信協(xié)議為5字節(jié)指令,操作簡單,自帶存儲,可實現(xiàn)掉電保存紅外信號,調(diào)用簡單。
可擴展并聯(lián)6個紅外發(fā)射頭,實現(xiàn)全方位控制。
遠距離學習解碼、遠距離控制,發(fā)射距離遠達10米。
支持讀出236字節(jié)紅外數(shù)據(jù)(非原碼)及寫入紅外數(shù)據(jù),方便于量產(chǎn)和修改。
支持修改指令幀頭,可結(jié)合RS485實現(xiàn)組網(wǎng),對多個模塊進行分別控制。
具備3路手動觸發(fā)口,帶專用脫機學習按鈕,可脫離串口實現(xiàn)按鍵觸發(fā)發(fā)送紅外信號。
常用應用方案
- 單片機+IR03T模塊--->實現(xiàn)智能家居紅外控制家電WiFi串口模塊+IR03T模塊--->實現(xiàn)遠程控制紅外電器USB轉(zhuǎn)TTL串口+IR03T模塊--->實現(xiàn)電腦控制紅外設備藍牙串口模塊+IR03T模塊--->實現(xiàn)手機、平板控制紅外設備
接線
紅外學習模塊與USB轉(zhuǎn)TTL模塊相連
紅外學習模塊與最小系統(tǒng)板相連
注意:
有的USB轉(zhuǎn)TTL模塊可能跟這個紅外學習模塊不兼容,如果調(diào)試過程中遇到困難,可以換一種USB轉(zhuǎn)TTL模塊再嘗試一下。
上面兩種方式,我都測試過,完全沒有問題。
測試流程(電腦端)
- 安裝USB轉(zhuǎn)TTL驅(qū)動;將紅外模塊與USB轉(zhuǎn)TTL連接并插入電腦。(注意RXD接TXD);打開電腦串口調(diào)試助手,選擇好波特率和COM口后打開串口;發(fā)送學習指令
FA FD 01 00 DF
,指示燈熄滅 ,進入學習狀態(tài);遙控器距離20cm,對準模塊的紅外接收頭,按下要解碼的按鍵,指示燈亮起,學習完成;如要利用紅外模塊發(fā)射紅外信號,只需要用對應通道的發(fā)射指令FA FD 02 00 DF
,通過串口助手軟件發(fā)送給模塊,即可還原出對應的紅外信號。
串口通信協(xié)議
進入通道學習狀態(tài)
FA FD 01 xx DF
==> 反饋A1,學習完成后反饋A2
其中:xx 為通道號,范圍00~FF,代表將當前信號存儲到某個位置。
例如:
FA FD 01 05 DF
-- 將當前紅外信號學習并存儲于5號通道。
操作的時候,先發(fā)送上述指令,串口助手收到反饋A1,然后再將待學習的紅外信號,對著模塊的紅外接收頭,發(fā)射紅外信號,學習完畢或超時,串口助手中會收到反饋A2。
指令的幀頭使用A1
也可以,即 A1 FD 01 00 DF
也可以被紅外學習模塊正確解析的。
指定通道發(fā)射
FA FD 02 xx DF
==> 反饋F1
其中:xx 為通道號,范圍00~FF,代表將當前位置的數(shù)據(jù)還原為紅外信號發(fā)出。
例如:
FA FD 02 05 DF
-- 發(fā)射5號通道存儲的紅外信號。
修改波特率
FA FD 03 xx DF
==> 反饋A3
其中:xx 為波特率序號,范圍1~5,不同序號對應不同波特率。
例如:
波特率序號 | 波特率 |
---|---|
01 | 4800 |
02 | 9600(默認) |
03 | 19200 |
04 | 57600 |
05 | 115200 |
修改幀頭
FA FD 04 xx DF
==> 反饋A4
其中:xx 為修改后的指令幀頭,范圍:00~FF,F(xiàn)A為通用幀頭不可修改,修改的是備用幀頭A1。
舉例:
FA FD 04 01 DF
-- 將備用幀頭改為01。
FA FD 04 A1 DF
-- 將備用幀頭改為A1。
注意:幀頭修改一般用于RS485組網(wǎng)功能,一個主控連接多個紅外模塊,根據(jù)不同的幀頭進行區(qū)分。
普通用戶一般只用到1個紅外的場景,一般不需要修改。
擦除指定通道記錄
FA FD 05 xx DF
==> 反饋A5
其中:xx 為通道號,范圍00~FF,代表要擦除信號的通道位置。
舉例:
FA FD 05 00 DF
-- 將通道號0的信號擦除。
FA FD 05 0A DF
-- 將通道號10的信號擦除。
注意:每個通道學習時,不需要先做擦除操作,可以重復寫入,新寫入的數(shù)據(jù)將覆蓋原有數(shù)據(jù)。
讀出指定通道數(shù)據(jù)
FA FD 06 xx DF
==> 反饋236字節(jié)
其中:xx 為通道號,范圍00~FF,將當前信號數(shù)據(jù)輸出到串口。
舉例:
FA FD 06 00 DF
-- 將通道號0的236字節(jié)數(shù)據(jù)由串口輸出。
FA FD 06 11 DF
-- 將通道號17的236字節(jié)數(shù)據(jù)由串口輸出。
輸出格式為:FA FD 07 xx 230字節(jié)數(shù)據(jù) DF DF
其中:xx 為通道號,范圍00~FF。
例如:讀取通道00內(nèi)的數(shù)據(jù):
例如:讀取通道01內(nèi)的數(shù)據(jù):
寫入指定通道數(shù)據(jù)
FA FD 07 xx '230字節(jié)數(shù)據(jù)' DF DF
==> 反饋A7
其中:xx 為通道號,范圍00~FF;將當前信號數(shù)據(jù)寫入到通道位置;
擦除所有通道記錄
FA FD 0F 0F DF
==> 反饋1F,代表開始擦除,約13秒后,反饋0F,代表擦除完成。
其中:xx 為通道號,范圍00~FF,將存儲的所有信號數(shù)據(jù)擦除。