目前很多家電帶有紅外遙控,如:電視、空調、風扇等等。有一個用手機控制的紅外線遙控器的話現有的家電變成智能家電了,比如到家之前手機遠程開空調等。 本文介紹通過機智云平臺快速實現智能家電紅外遙控器。
1,硬件結構圖 主要使用了esp8266 wifi模塊和紅外串口通訊模塊。有了紅外串口通訊模塊,省去了單片機的串口通訊和紅外編碼程序,大大縮短開發時間。因為紅外通訊模塊不支持3.3VTTL電平,所以兩個模塊之間加了一個2路電平轉換模塊,把ESP8266的3.3V電平裝換為紅外通訊模塊所需的5V電平。ESP8266有兩個串口,串口0是雙向的一般用在與MCU通訊,串口1是單向,顯示LOG用。紅外串口通訊模塊資料請參考附件。 各模塊連接圖如下: 2, 紅外線串口通訊模塊 功能: 1、具備NEC格式紅外發射功能。 2、具備NEC格式 紅外編碼功能。 3、帶紅外發射頭擴展接口。 4、具備串口通信功能,通信電平為TTL。 5、可控制99%的NEC紅外格式設備,包括電視機、電風扇等電子電器設備。 6、支持NEC 編碼芯片:(典型編碼芯片如uPD6121, uPD6122, TC9012 以及眾多 的兼容芯 片型號,如 PT2221, PT2222,SC6121, SC6122, SC9012 等等)。 7、可作為紅外無線數據通信、數據傳輸、紅外控制等功能。
使用方法: 解碼:解碼時不需要發送任何指令,只需要拿起遙控對準模塊的接收頭按下,這時模塊的串口就輸出該紅外編碼。 編碼(發射):編碼時需要根據一定格式發送指令,通過電腦或者單片機串口發送5個字節的指令,就可以將對應編碼的紅外信號還原出去。
2,獲取遙控器編碼 把紅外串口通訊模塊連接USB轉TTL模塊上(電壓5V),打開串口調試助手,按下家電的紅外遙控鍵,獲取各鍵的紅外編碼并記錄下來。
3,ESP8266開發(SoC) 創建數據點
MCU設置及生成代碼
4,Soc程序修改 紅外遙控編碼中可能包含0X00,這是字符串結束符,所以不能直接用uart0_sendStr函數了。 打開uart.c文件創建uart0_sendIFR函數,內容下圖 uart.h 里加函數** 確認user_main.c函數中的串口初始化,由于紅外串口通訊模塊的默認波特率是9600,所以串口初始化部分不需要修改。 gizwits_product.c 文件的修改 發射邏輯
5,編譯及燒寫 官網和其他帖子里介紹的很詳細,這里不再重復了。 6,測試 紅外線管對準家電,用手機機智云Demo程序可以控制家電了
源碼和模塊資料:
原文作者:黑洞
|