基于單片機的多功能紅外空調遙控器 - 嵌入式 物聯網(含代碼)
- 難度系數:3分
- 工作量:3分
- 創新點:3分
1 簡介
基于ESP8266開發板的自制空調遙控器,搭建一個基于ESP8266的WiFi空調遙控器。雖然此項目可以適應任何使用遙控器的設備,但我們將使用它來控制空調。
2 主要器件
- ESP8266 NodeMCU
- 帶有WiFi加密狗的Raspberry Pi 4,Raspberry Pi 3或Raspberry Pi 2
- Raspberry Pi的鍵盤,顯示器和HDMI電纜或LAN電纜
- Raspberry Pi的2A電源
- SSD1332 OLED顯示屏(256×64)
- 按鈕
- 紅外燈
- 發光二極管
- 跳線
- 面包板
3 實現效果
4 硬件設計
空調遙控器原理
空調遙控器是怎么運作的?
空調(AC)通常由遙控器控制,當按下按鈕時,該遙控器會向其發送紅外信號。 空調解釋信號并將其轉換為指令,以提高其溫度或降低其強度,關閉或開啟等。因此,為了能夠使用我們自己的設備進行控制,該設備必須能夠模仿并發送遙控器發送到AC的信號相同,因此,通過按應用程序上的“ ON”按鈕,我們的WiFi遙控器會發送遙控器發出的相同IR信號。
ESP8266將通過MQTT連接到家庭橋接器,通過它,Siri可用于提供控制AC的指令。一旦通過MQTT接收到指令(例如“打開”指令),NodeMCU便將其與相應的IR信號進行匹配,然后信號通過IR指示燈發送至AC。 OLED顯示器用于向用戶提供有關當前狀態的視覺反饋。對于非iPhone用戶,該設備還可以連接到Amazon Alexa。除了可以通過Siri或Apple的家用套件控制空調外,還配備了控制開關。
為了將本項目做的比較完整,該項目添加了以下功能:
- 待機時顯示NTP時鐘。
- 簡單的按鈕控制。電源、溫度升高/降低。
- 可以使用HomeKit控制溫度、擺幅、風扇速度和模式。
- 根據環境光自動亮度
- OTA固件升級。
- 使用HeaterCooler Service(iOS 11+)通過HomeKit進行控制,
- 使用風扇服務與Amazon Alexa配合使用
原理圖
如上面所述,項目本身的硬件部分由NodeMCU、IR LED、一些按鈕和OLED顯示器組成,如下圖所示連接組件。
解碼IR信號
如上所述,該項目通過模仿IR遙控器,發送基于Homekit的命令生成的IR信號來工作。由于IR信號必須與遙控器發送的信號相同,因此我們需要先獲取每個按鈕的IR代碼。要獲取代碼,我們必須構建一種設備,該設備從遙控器接收紅外信號,對其進行解碼并顯示編碼后的數據,以便我們可以將其復制以供以后使用。
要獲取IR代碼,我們將使用便宜的設備,連接到Nodemcu的高效且流行的TSOP1738紅外接收器,當按下遙控器上的按鈕時,紅外接收器將對其進行拾取,并通過在NodeMCU上運行的解碼草圖,將信號內容打印在串行監視器。此內容將在以后用于控制AC。
原理圖
為了確定何時接收到IR信號并幫助我們進行調試,在原理圖中添加了一個LED,使其僅在接收到IR信號時亮起。
為了使項目看起來令人愉悅,對外殼進行了3D打印。設計是使用Fusion 360完成的。
打印后,將外殼擦洗并上漆以使打印效果更好。最終外殼如下圖所示。
5 軟件說明
代碼
本篇文章主要基于IRremote ESP8266庫,可以從隨附的鏈接下載該庫。該庫基于標準的Arduino IRremote庫,并帶有解碼的數據(用于一些通用鍵),用于許多流行的遙控器,這意味著您很幸運,并且遙控器的代碼將已經可用。對于那些不太幸運的人,我們將使用IRremote ESP8266庫隨附的示例草圖IRrecvDumpV2以及上面的示意圖來獲取編碼。
安裝庫后,啟動Arduino IDE,轉到示例并選擇IRrecvDumpV2示例。將代碼上傳到NodeMcu,然后按遙控器上的按鈕。每次按下遙控器上的按鈕時,您應該會在串行監視器中看到一組數字。復制并保留每個鍵的陣列,因為它們代表遙控器發送的已解碼IR信號,我們將使用它們為空調復制IR信號。
與Homekit進行連接
在編寫代碼之前,我們需要做的第二件事是建立與Homekit的連接。與Homekit的連接使我們能夠使用Siri和Homekit應用程序控制設備。為此,我們將使用安裝在RaspberryPi上的Homebridge-MQTT作為服務器。 Homebridg-MQTT本質上是Homebridge的插件,可讓您通過MQTT協議添加和控制設備。啟動RaspberryPi并打開終端。我們將從更新Pi開始,以確保以后不會遇到任何兼容性問題。
運行以下指令:
Sudo apt-get update
完成此操作后,在pi上為MQTT安裝MOSQUITTO。運行以下指令:
sudo apt-get install mosquitto
完成后,使用以下指令安裝Homebridge-MQTT插件;
sudo npm install -g homebridge-mqtt
接下來,我們需要編輯配置文件。配置文件位于homebridge文件夾(home / .homebridge /config.js)中。切換到目錄并運行;
sudo nano config.js
將platform部分添加到配置文件中,使其現在看起來像這樣;
{ "bridge": { "name": "Homebridge", "username": "CC: 22: 3D: E3: CE: 30", "port": 51826, "pin": "031-45-154" }, "description": "This file is a fake accessory and one fake platform.", "accessories": [{ "accessory": "relay", "name": "My relay light 1", "pin": 7 }], "platforms": [{ "platform": "mqtt", "name": "mqtt", "url": "mqtt: //127.0.0.1", "port": "1883", "topic_type": "multiple", "topic_prefix": "homebridge", "qos": 1 }]
}
保存配置文件并退出。
運行HomeBridge,使用MQTT LENS并將Connection添加到我們的Raspberry Pi,創建一個使用加熱器冷卻器服務的附件,該附件受IOS11的任何版本的IoS支持。將發布設置為;
homebridge / to / add
并將有效載荷設置為;
**{ "name": "Smart AC", "service_name": "smart_ac", "service": "HeaterCooler", "manufacturer": "ESP8266", "firmwarerevision": "1.0.0", "SwingMode": 1, "RotationSpeed": {"maxValue": 3, "minValue": 0, "minStep": 3}, "CoolingThresholdTemperature": {"maxValue": 28, "minValue": 18, "minStep": 1}
}
完整代碼可進群免費領取。
嵌入式物聯網的學習之路非常漫長,不少人因為學習路線不對或者學習內容不夠專業而錯失高薪offer。不過別擔心,我為大家整理了一份150多G的學習資源,基本上涵蓋了嵌入式物聯網學習的所有內容。點擊下方鏈接,0元領取學習資源,讓你的學習之路更加順暢!記得點贊、關注、收藏、轉發哦!
點擊這里找小助理0元領取:掃碼進群領資料
- 贊