聚豐項(xiàng)目 > 多功能老式空調(diào)遙控器
針對(duì)老式空調(diào)遙控功能單一、定時(shí)功能不方便、缺少自動(dòng)化的問(wèn)題,設(shè)計(jì)了這款提升老式空調(diào)使用體驗(yàn)的遙控器。該作品以AB32VG1開發(fā)板為核心,搭配了0.96寸OLED、溫濕度傳感器DTH11、紅外發(fā)射二極管。 實(shí)現(xiàn)的功能有: 1.檢測(cè)并存儲(chǔ)空調(diào)的紅外遙控編碼; 2.監(jiān)控環(huán)境溫濕度,根據(jù)室內(nèi)環(huán)境情況遙控空調(diào)工作。 3.更加自由的定時(shí)遙控空調(diào)開啟或關(guān)閉。 該作品可以增強(qiáng)老式空調(diào)的功能,使之更加自動(dòng)化,給用戶帶來(lái)更好的體驗(yàn)。
hcszheng
分享hcszheng
團(tuán)隊(duì)成員
杭工 學(xué)生
RT-Thread使用情況概述:
整個(gè)方案涉及的技術(shù)棧有:RT-Thread實(shí)時(shí)操作系統(tǒng),OLED驅(qū)動(dòng)、紅外遙控編碼等方面。在設(shè)計(jì)該作品的過(guò)程中,我加深了對(duì)RT-Thread操作系統(tǒng)的理解和紅外遙控編碼的理解。
內(nèi)核部分:使用了線程、信號(hào)量、郵箱等。
組件部分:使用了串口、傳感器接口、PWM、RTC、定時(shí)器等。
軟件包:
dhtxx/multibutton 等
設(shè)備驅(qū)動(dòng):
GPIO/PWM/RTC/IRRX等
該作品通過(guò)DHT11溫濕度傳感器獲取室內(nèi)的溫度和濕度信息,通信協(xié)議為一線制通信。0.96寸OLED用于顯示時(shí)間、溫濕度、空調(diào)狀態(tài)等信息,單片機(jī)采用軟件模擬IIC方式與OLED通信。使用5mm紅外發(fā)射管發(fā)送遙控信號(hào),陽(yáng)極串聯(lián)一個(gè)限流電阻后接到板上的3.3V,陰極接單片機(jī)IO。開發(fā)板上的按鈕用于輸入控制信息。利用板上的紅外接收探頭接收空調(diào)自帶的遙控器的紅外遙控信號(hào),記錄空調(diào)紅外遙控信號(hào)的波形。
軟件方面比較簡(jiǎn)單較多代碼參考了RT官方的例程,用到了multibutton和dhtxx軟件包。RT-Thread的軟件包和例程十分方便,加快了我的開發(fā)進(jìn)度,十分有利于快速開發(fā)一個(gè)設(shè)備。作品共分為2個(gè)工作模式:一個(gè)是學(xué)習(xí)模式,用于接收并記錄空調(diào)原始遙控器的紅外遙控信號(hào)數(shù)據(jù);一個(gè)是遙控模式,用于按照用戶預(yù)設(shè)的室內(nèi)環(huán)境條件、時(shí)間條件來(lái)遙控空調(diào)運(yùn)行??蓪?shí)現(xiàn)定時(shí)開關(guān)機(jī),根據(jù)室溫改變空調(diào)制冷、制熱模式。
作品的難點(diǎn)和重點(diǎn)是紅外解碼以及發(fā)送紅外遙控信號(hào)。
記錄紅外信號(hào)
大部分紅外遙控信號(hào)由38KHz的方波和一段低電平信號(hào)組成,如下圖。有無(wú)方波的時(shí)長(zhǎng)代表了碼元'0'和'1'。具有解調(diào)功能的紅外接收管接收并解調(diào)該信號(hào),解調(diào)后的信號(hào)可以看作是遙控信號(hào)的包絡(luò)。
AB32VG1單片機(jī)芯片內(nèi)部集成了一個(gè)紅外信號(hào)的解碼器,它支持解碼NEC制式的紅外信號(hào)。NEC協(xié)議如下圖。
符合NEC協(xié)議的紅外遙控信號(hào)經(jīng)紅外接收端口解調(diào)后傳給解碼器,它可以解出遙控信號(hào)的地址和命令數(shù)據(jù)。但是有一些大廠的空調(diào)并不使用NEC協(xié)議,而是廠家自己設(shè)計(jì)了一套通信協(xié)議。AB32VG1內(nèi)部的解碼器無(wú)法處理這種自定義的協(xié)議。
不過(guò)這種自定義的紅外遙控信號(hào)仍是使用38KHz的方波作為載波,我可以利用開發(fā)板上的紅外接收端口將其解調(diào)為一段由高低電平組成的序列。單片機(jī)只要復(fù)制下特定模式的紅外信號(hào),在滿足我預(yù)設(shè)的條件時(shí)發(fā)射出去,即可實(shí)現(xiàn)“智能”地遙控空調(diào)。
因此,我參照《中科藍(lán)訊AB32VG1開發(fā)實(shí)踐指南》中的軟件解碼方式,利用定時(shí)器的輸入捕獲功能,記錄下空調(diào)原裝遙控器的紅外信號(hào)序列的波形。下圖是單片機(jī)記錄的某空調(diào)28度制熱時(shí)的序列時(shí)長(zhǎng),通過(guò)串口輸出。每個(gè)數(shù)字表示序列高/低電平持續(xù)的時(shí)長(zhǎng),單位為微秒。
對(duì)應(yīng)的遙控器發(fā)出的原始信號(hào)如下圖。
發(fā)射紅外信號(hào)
本作品中用到的紅外發(fā)射二極管沒(méi)有調(diào)制功能,單片機(jī)利用內(nèi)部定時(shí)器的PWM功能產(chǎn)生一個(gè)38KHz的方波,按照記錄下來(lái)的原始遙控信號(hào)序列,在特定時(shí)間輸出或關(guān)閉該P(yáng)WM,復(fù)制空調(diào)的遙控信號(hào)并發(fā)送。
流程如下圖。利用TIM1定時(shí)器精確控制載波輸出時(shí)長(zhǎng)(微秒),data是存儲(chǔ)了上述序列高低電平時(shí)長(zhǎng)的數(shù)組。
作品各組件采用杜邦線加洞洞板連接,為了美觀把混亂的走線藏在一個(gè)紙盒中,整體照片如圖。
后續(xù)完善計(jì)劃:
添加wifi模塊,通過(guò)網(wǎng)絡(luò)更新單片機(jī)時(shí)間;設(shè)計(jì)手機(jī)APP,更便捷地配置該作品的工作參數(shù)和工作模式,比如利用手機(jī)設(shè)定空調(diào)開啟或關(guān)閉的條件、時(shí)間等信息;根據(jù)室內(nèi)溫度、濕度實(shí)時(shí)調(diào)整空調(diào)模式,比如室內(nèi)溫度與預(yù)期值差距較大則加大風(fēng)速。
程序地址: