智能空調解決方案:8266+紅外控制模塊
前言
炎炎夏日, 你是否有這樣的困惑:
睡覺時,并不覺得熱,然而后半夜被熱醒,然后在極其不爽的情緒下,開啟空調繼續(xù)誰?
睡覺時,空調溫度剛剛好,然而后半夜下雨了,被凍醒?
看完我們今天的內容,我相信以上兩個問題都能被解決,而且方法絕對簡單,好了,廢話少說,讓我們直接開始吧。
智能空調解決方案
準備工作
環(huán)境準備
這塊我們就不展開講了,包括Arduino IED
的安裝和配置、esp8266
開發(fā)板的使用等, 可以參考我們之前的內容。
材料部分
序號名稱數(shù)量備注1esp8266開發(fā)板1開發(fā)板2紅外發(fā)射模塊1用來發(fā)射控制信息,38KHZ3紅外接收模塊1用來接收空調遙控器紅外信號,解碼信息,38KHZ4DHT11溫濕度傳感器1用來采集房間內的溫度和濕度5杜邦線若干模塊連接
本次項目成本總計15
元左右,最貴的是esp8266
開發(fā),12
元左右
解碼空調遙控器信息
這里主要是通過紅外接收模塊和esp8266
開發(fā)板,接收并解析紅外信息,為后面控制空調做準備,也就是把空調各種控制信息,包括開、關、溫度加減、風速等控制信號輸出并保存,這樣我們在后續(xù)的控制中,可以直接通過esp8266
+紅外發(fā)射模塊來發(fā)射這些信息,從而實現(xiàn)空調的智能控制。
接收端接線
這里的接線比較簡單,因為紅外模塊只有三個引腳,一個信號線,兩個電源引腳,所以連接很簡單:
序號????紅外引腳????esp8266
1????out????d5(GPIO14)
2????VVC????3V
3????GND????G

電源部分可以連接3V3
或者5V
都可以,發(fā)送端建議連接5V
,不然距離太遠發(fā)送的紅外信號太弱,空調接收不到。
解碼
這里解碼我們要用到IRremoteESP8266
包下的一個示例項目,如果沒有這個包的小伙伴先去安裝這個包:

安裝完成之后,連接esp8266
,然后打開Arduino IDE
,打開IRremoteESP8266
的示例項目IRrecvDumpV2
:

因為示例項目的默認接收引腳是14
,這也是我們前面接線用14
號引腳的原因:

將示例代碼上傳至esp8266
,然后我們打開串口監(jiān)視器,端口115200
,拿遙控器對準紅外接收模塊,按下對應的鍵,終端便會展示該按鍵對應的控制信息:

這里我們把相關信息保存下,方便后面使用。
空調控制紅外信息發(fā)射
發(fā)射端連線
序號????紅外引腳????esp8266
1????out????d2(GPIO4)
2????VVC????VV
3????GND????G
esp8266
的vv
引腳是5v
,電壓高一點確保紅外信號可以發(fā)射遠一點

溫濕度傳感器連線
序號????紅外引腳????esp8266
1????out????d5(GPIO14)
2????VVC????3V
3????GND????G

發(fā)射端編碼
編碼本身很簡單,主要還是實現(xiàn)思路,先說我的需求:
通過溫度傳感器來采集溫度,溫度作為控制依據(jù);
當溫度高于某個值(比如30度),且空調未開啟,則發(fā)送開啟空調指令;
當溫度低于某個值(比如26度),且空調是開啟的,則發(fā)送關閉指令
下面是代碼實現(xiàn)
當然你還可以根據(jù)你的需要增加控制指令,比如溫度低于某個溫度(比如18度),開啟制熱模式,或者根據(jù)當前室溫調整空調溫度,方法類似。
結語
這個項目完全是興起之作,本來以為應該很簡單,然而當真正開始的時候,才發(fā)現(xiàn)我對紅外通信知之甚少,比如NEC
協(xié)議,比如紅外編碼解碼,所以毫無意外剛開始就卡在遙控器解碼這里了,結果差點放棄,然后我又不死心地搜了一些相關博客,最終順利完成。
參考內容:https://www.elecfans.com/d/1939738.html
- END -