基于單片機的多功能紅外空調遙控器 - 嵌入式 物聯網(含代碼)

** 單片機多功能紅外空調遙控器 **

  • 難度系數: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元領取:掃碼進群領資料

the end

評論(0)