0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于ESP8266開發(fā)板的遙控空調(diào)設(shè)計案例

454398 ? 來源:一板網(wǎng) ? 作者:風箏 ? 2020-12-13 10:37 ? 次閱讀

我們最近開始研究ESP8266開發(fā)板,而今天的項目將基于此WiFi模塊制作一個有趣的項目。我們將搭建一個基于ESP8266的WiFi空調(diào)遙控器。雖然此項目可以適應(yīng)任何使用遙控器的設(shè)備,但我們將使用它來控制空調(diào)。

通常,每個人離開家時都會關(guān)掉家里的所有電器,包括空調(diào)。當您回到家中時,溫度將不會被調(diào)節(jié),并且空調(diào)需要一些時間才能達到所需的溫度。但是,如果您離家只有幾個街區(qū),可以通過手機自動控制空調(diào),會不會很酷?如果您無論身在何處都可以將其關(guān)閉,或者離開屋子時仍將其打開?如果可以與手機的位置同步并在家時總將其打開?如果可以與手機的天氣信息同步?這些問題啟發(fā)了今天的項目。

空調(diào)遙控器是怎么運作的?

空調(diào)(AC)通常由遙控器控制,當按下按鈕時,該遙控器會向其發(fā)送紅外信號。 空調(diào)解釋信號并將其轉(zhuǎn)換為指令,以提高其溫度或降低其強度,關(guān)閉或開啟等。因此,為了能夠使用我們自己的設(shè)備進行控制,該設(shè)備必須能夠模仿并發(fā)送遙控器發(fā)送到AC的信號相同,因此,通過按應(yīng)用程序上的“ ON”按鈕,我們的WiFi遙控器會發(fā)送遙控器發(fā)出的相同IR信號。

ESP8266將通過MQTT連接到家庭橋接器,通過它,Siri可用于提供控制AC的指令。一旦通過MQTT接收到指令(例如“打開”指令),NodeMCU便將其與相應(yīng)的IR信號進行匹配,然后信號通過IR指示燈發(fā)送至AC。 OLED顯示器用于向用戶提供有關(guān)當前狀態(tài)的視覺反饋。對于非iPhone用戶,該設(shè)備還可以連接到Amazon Alexa。除了可以通過Siri或Apple的家用套件控制空調(diào)外,還配備了控制開關(guān)。

為了將本項目做的比較完整,該項目添加了以下功能:

√ 待機時顯示NTP時鐘。

√ 簡單的按鈕控制。電源、溫度升高/降低。

√ 可以使用HomeKit控制溫度、擺幅、風扇速度和模式。

√ 根據(jù)環(huán)境光自動亮度

√ OTA固件升級。

√ 使用HeaterCooler Service(iOS 11+)通過HomeKit進行控制,

√ 使用風扇服務(wù)與Amazon Alexa配合使用

在本文的最后,您將了解構(gòu)建物聯(lián)網(wǎng)解決方案和家庭自動化的基礎(chǔ)知識。您還將學(xué)習如何攔截基于IR的遙控器發(fā)送的信號,創(chuàng)建一個IR發(fā)射器,該發(fā)射器可用于控制家庭或家庭中所有基于IR遙控器的設(shè)備,并構(gòu)建可以通過Apple的Home工具包控制的設(shè)備。

所需的組件

● ESP8266 NodeMCU

● 帶有WiFi加密狗的Raspberry Pi 4,Raspberry Pi 3或Raspberry Pi 2

● Raspberry Pi的鍵盤,顯示器和HDMI電纜或LAN電纜

● Raspberry Pi的2A電源

● SSD1332 OLED顯示屏(256×64)

● 按鈕

● 紅外燈

● 發(fā)光二極管

● 跳線

● 面包板

原理圖

如上面所述,項目本身的硬件部分由NodeMCU、IR LED、一些按鈕和OLED顯示器組成,如下圖所示連接組件。

當您不攜帶手機時,這些按鈕提供了另一種控制設(shè)備的方式,OLED顯示屏提供了各種信息,包括當前溫度。

準備項目

在為項目編寫代碼之前,我們需要進行一些準備工作。

1.準備針對每個命令將發(fā)送到AC的IR信號

2.設(shè)置與Homekit的通信

1.解碼IR信號

如上所述,該項目通過模仿IR遙控器,發(fā)送基于Homekit的命令生成的IR信號來工作。由于IR信號必須與遙控器發(fā)送的信號相同,因此我們需要先獲取每個按鈕的IR代碼。要獲取代碼,我們必須構(gòu)建一種設(shè)備,該設(shè)備從遙控器接收紅外信號,對其進行解碼并顯示編碼后的數(shù)據(jù),以便我們可以將其復(fù)制以供以后使用。

要獲取IR代碼,我們將使用便宜的設(shè)備,連接到Nodemcu的高效且流行的TSOP1738紅外接收器,當按下遙控器上的按鈕時,紅外接收器將對其進行拾取,并通過在NodeMCU上運行的解碼草圖,將信號內(nèi)容打印在串行監(jiān)視器。此內(nèi)容將在以后用于控制AC。

原理圖

如下圖所示,將IR接收器連接到NodeMCU:

為了確定何時接收到IR信號并幫助我們進行調(diào)試,在原理圖中添加了一個LED,使其僅在接收到IR信號時亮起。

代碼

本篇文章主要基于IRremote ESP8266庫,可以從隨附的鏈接下載該庫。該庫基于標準的Arduino IRremote庫,并帶有解碼的數(shù)據(jù)(用于一些通用鍵),用于許多流行的遙控器,這意味著您很幸運,并且遙控器的代碼將已經(jīng)可用。對于那些不太幸運的人,我們將使用IRremote ESP8266庫隨附的示例草圖IRrecvDumpV2以及上面的示意圖來獲取編碼。

安裝庫后,啟動Arduino IDE,轉(zhuǎn)到示例并選擇IRrecvDumpV2示例。將代碼上傳到NodeMcu,然后按遙控器上的按鈕。每次按下遙控器上的按鈕時,您應(yīng)該會在串行監(jiān)視器中看到一組數(shù)字。復(fù)制并保留每個鍵的陣列,因為它們代表遙控器發(fā)送的已解碼IR信號,我們將使用它們?yōu)榭照{(diào)復(fù)制IR信號。

2.與Homekit進行連接

在編寫代碼之前,我們需要做的第二件事是建立與Homekit的連接。與Homekit的連接使我們能夠使用Siri和Homekit應(yīng)用程序控制設(shè)備。為此,我們將使用安裝在RaspberryPi上的Homebridge-MQTT作為服務(wù)器。 Homebridg-MQTT本質(zhì)上是Homebridge的插件,可讓您通過MQTT協(xié)議添加和控制設(shè)備。啟動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部分添加到配置文件中,使其現(xiàn)在看起來像這樣;

{

"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,創(chuàng)建一個使用加熱器冷卻器服務(wù)的附件,該附件受IOS11的任何版本的IoS支持。將發(fā)布設(shè)置為;

homebridge / to / add

并將有效載荷設(shè)置為;

{

"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}

}

完成所有這些操作后,我們現(xiàn)在可以繼續(xù)為該項目編寫代碼。

代碼

今天的項目代碼將使用VScode和platform.io IDE插件進行開發(fā)。該代碼非常龐大,對于不習慣使用這些工具對微控制器進行編程的任何人來說可能很難理解,因此我們編寫了有關(guān)使用這些工具的簡單教程

本文主要基于IRremoteESP8266庫,但它也使用了Wifi管理器庫、Arduinojson庫、Arduino OTA庫和NTP庫。這些庫中的每一個都使實現(xiàn)項目的不同部分變得容易。 IRremoteESP8266庫用于將設(shè)備的IR信號發(fā)送到空調(diào),Wifimanager庫用于輕松更改WiFi憑據(jù),Arduinojson用于解析homekit中的數(shù)據(jù),而Arduino OTA庫用于在設(shè)備上啟用無線固件更新。使用的其他庫還包括U8g2庫,該庫可輕松處理單色顯示器。它用于顯示構(gòu)成項目UI的圖形。該項目使用的所有庫都可以通過Arduino庫管理器下載和安裝。

該項目的代碼非常龐大,可能在這里無法解釋,但我們確保對其進行了注釋并附加在zip文件下的zip文件中。zip文件包含一堆文件,包括用于GUI的圖形圖像、庫以及有關(guān)項目的所有內(nèi)容。該代碼位于“ src”文件夾中。 “ src”文件夾還包含不同的代碼,其中大多數(shù)是名為main.cpp的主代碼的頭文件。所有其他文件都很重要,并且必須與main.cpp放在同一項目文件夾中,因為它們包含了主文件所需的所有信息。例如,main.h文件包含MQTT聲明,而UI.h文件包含用于UI的所有內(nèi)容的char值。

外殼

為了使項目看起來令人愉悅,對外殼進行了3D打印。設(shè)計是使用Fusion 360完成的。

打印后,將外殼擦洗并上漆以使打印效果更好。最終外殼如下圖所示。

演示效果

確保如上面所示連接并打開設(shè)備。它應(yīng)該如下圖所示。

以上就是本文的全部內(nèi)容。如開始所說,該項目的應(yīng)用是無限的。它可以作為一個簡單的盒子來控制房屋中的每個紅外遙控設(shè)備。
編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 遙控器
    +關(guān)注

    關(guān)注

    18

    文章

    840

    瀏覽量

    66490
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5121

    瀏覽量

    98032
  • 空調(diào)遙控器
    +關(guān)注

    關(guān)注

    0

    文章

    19

    瀏覽量

    7336
  • ESP8266
    +關(guān)注

    關(guān)注

    50

    文章

    962

    瀏覽量

    45265
收藏 人收藏

    評論

    相關(guān)推薦

    ESP8266 太空人動畫的 OLED 顯示

    ESP8266 太空人動畫的 OLED 顯示
    的頭像 發(fā)表于 10-08 15:06 ?326次閱讀
    <b class='flag-5'>ESP8266</b> 太空人動畫的 OLED 顯示

    arduino(1)--ESP8266配置

    硬件準備 首先需要準備一個開發(fā)板,這里我準備的是淘寶購買的兼容arduino的ESP8266模塊。 arduino配置 我使用的是arduino來編程實現(xiàn),故需要下載對應(yīng)的庫文件,打開
    發(fā)表于 09-06 11:00

    STM32 ESP8266阿里云鏈接源碼

    stm32F103C8T6 ESP8266 物聯(lián)網(wǎng)電表 登錄阿里云
    發(fā)表于 08-29 14:21 ?6次下載

    esp32和esp8266代碼共用嗎

    作為兩款具有Wi-Fi功能的微控制器,因其低成本、易用性和靈活性而受到廣泛關(guān)注。然而,盡管它們在某些方面具有相似性,但在硬件性能、開發(fā)環(huán)境和編程語言等方面仍存在一定差異。 二、ESP32與ESP8266簡介
    的頭像 發(fā)表于 08-19 18:23 ?1377次閱讀

    esp8266esp32區(qū)別是什么

    以下是關(guān)于ESP8266ESP32的主要區(qū)別: 處理器和架構(gòu) : ESP8266 :使用一個Tensilica L106 80MHz的處理器,屬于Xtensa架構(gòu)。 ESP32 :使
    的頭像 發(fā)表于 08-19 18:16 ?5856次閱讀

    ESP8266需要燒錄固件庫嘛

    需要。ESP8266是一款非常流行的Wi-Fi模塊,廣泛應(yīng)用于物聯(lián)網(wǎng)項目中。它具有低成本、低功耗、易于編程等特點,因此受到了許多開發(fā)者的喜愛。在開發(fā)ESP8266項目時,燒錄固件庫是一
    的頭像 發(fā)表于 08-19 17:30 ?1022次閱讀

    esp8266不燒錄可以使用嗎

    ESP8266是一款非常流行的Wi-Fi模塊,廣泛應(yīng)用于物聯(lián)網(wǎng)項目中。然而,如果不進行燒錄,ESP8266將無法正常工作。 1. ESP8266簡介 ESP8266是一款由Espres
    的頭像 發(fā)表于 08-19 17:28 ?973次閱讀

    esp8266wifi模塊怎么連接手機

    ESP8266 WiFi模塊連接手機主要可以通過兩種方式實現(xiàn): 通過路由器連接(STA模式)和直接作為熱點連接(AP模式) 。以下是兩種連接方式的步驟: 一、通過路由器連接(STA模式) 配置
    的頭像 發(fā)表于 08-19 17:27 ?3493次閱讀

    機智云ESP8266開發(fā)板RGB彩燈控件

    隨著智能家居技術(shù)的迅猛發(fā)展,RGB彩燈控件正逐漸成為現(xiàn)代家庭不可或缺的一部分。在這一潮流中,機智云(Gizwits)的ESP8266開發(fā)板RGB彩燈控件以其先進的物聯(lián)網(wǎng)技術(shù)和多樣化的燈光控制功能,為
    的頭像 發(fā)表于 08-09 08:10 ?446次閱讀
    機智云<b class='flag-5'>ESP8266</b><b class='flag-5'>開發(fā)板</b>RGB彩燈控件

    STM32F103 + ESP8266與機智云開發(fā)常見問題集錦:入門者必讀!

    關(guān)于ESP8266模塊的選擇針對初學(xué)者,強烈建議選擇帶有串口的ESP8266開發(fā)板!這可以避免像我曾經(jīng)遇到的燒錄固件失敗等問題。推薦直接購買已預(yù)裝機智云固件的模塊,或者帶有串口下載功能的模塊,例如
    的頭像 發(fā)表于 07-18 08:11 ?561次閱讀
    STM32F103 + <b class='flag-5'>ESP8266</b>與機智云<b class='flag-5'>開發(fā)</b>常見問題集錦:入門者必讀!

    ESP8266作Client建立TCP連接出現(xiàn)報錯?

    問題(192.168.0.107)。 用其它設(shè)備(主機、STM32開發(fā)板(LwIP)...)都是可以接入Server的,唯獨ESP8266模塊不行。
    發(fā)表于 07-17 07:16

    ESP8266EX開發(fā)板PWM非常不準確是怎么回事?

    我在你們的淘寶官網(wǎng)店購買了 ESP8266EX 開發(fā)板ESP-LAUNCHER) 這個8266開發(fā)板。并且下載了
    發(fā)表于 07-12 08:16

    ESP8266EX開發(fā)板如何知道Flash的大小?

    我是新手,從 espressif.taobao.com 上買了一個 ESP8266EX 開發(fā)板ESP-LAUNCHER)。 請問這個上面的 Flash 有多大? 自帶的系統(tǒng)啟動的時候,提示
    發(fā)表于 07-08 07:36

    ESP8266網(wǎng)絡(luò)天氣時鐘OLED顯示

    基于ESP8266實現(xiàn)網(wǎng)絡(luò)獲取天氣和時鐘并OLED顯示
    的頭像 發(fā)表于 06-28 04:46 ?1399次閱讀
    <b class='flag-5'>ESP8266</b>網(wǎng)絡(luò)天氣時鐘OLED顯示

    國產(chǎn)低成本W(wǎng)i-Fi SoC解決方案芯片ESP8266ESP8285對比差異

    ESP8266ESP8285對比差異 ESP8285相當于在ESP8266基礎(chǔ)上多加了1/2MB Flash, ESP8285與
    的頭像 發(fā)表于 05-17 11:44 ?1465次閱讀
    國產(chǎn)低成本W(wǎng)i-Fi SoC解決方案芯片<b class='flag-5'>ESP8266</b>與<b class='flag-5'>ESP</b>8285對比差異