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