0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于ESP8266开发板的遥控空调设计案例

454398 来源:一板网 作者:风筝 2020-12-13 10:37 次阅读

我们最近开始研究ESP8266开发板,而今天的项目将基于此WiFi模块制作一个有趣的项目。我们将搭建一个基于ESP8266的WiFi空调遥控器。虽然此项目可以适应任何使用遥控器的设备,但我们将使用它来控制空调。

通常,每个人离开家时都会关掉家里的所有电器,包括空调。当您回到家中时,温度将不会被调节,并且空调需要一些时间才能达到所需的温度。但是,如果您离家只有几个街区,可以通过手机自动控制空调,会不会很酷?如果您无论身在何处都可以将其关闭,或者离开屋子时仍将其打开?如果可以与手机的位置同步并在家时总将其打开?如果可以与手机的天气信息同步?这些问题启发了今天的项目。

空调遥控器是怎么运作的?

空调(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配合使用

在本文的最后,您将了解构建物联网解决方案和家庭自动化的基础知识。您还将学习如何拦截基于IR的遥控器发送的信号,创建一个IR发射器,该发射器可用于控制家庭或家庭中所有基于IR遥控器的设备,并构建可以通过Apple的Home工具包控制的设备。

所需的组件

● ESP8266 NodeMCU

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

● Raspberry Pi的键盘,显示器和HDMI电缆或LAN电缆

● Raspberry Pi的2A电源

● SSD1332 OLED显示屏(256×64)

● 按钮

● 红外灯

● 发光二极管

● 跳线

● 面包板

原理图

如上面所述,项目本身的硬件部分由NodeMCU、IR LED、一些按钮和OLED显示器组成,如下图所示连接组件。

当您不携带手机时,这些按钮提供了另一种控制设备的方式,OLED显示屏提供了各种信息,包括当前温度。

准备项目

在为项目编写代码之前,我们需要进行一些准备工作。

1.准备针对每个命令将发送到AC的IR信号

2.设置与Homekit的通信

1.解码IR信号

如上所述,该项目通过模仿IR遥控器,发送基于Homekit的命令生成的IR信号来工作。由于IR信号必须与遥控器发送的信号相同,因此我们需要先获取每个按钮的IR代码。要获取代码,我们必须构建一种设备,该设备从遥控器接收红外信号,对其进行解码并显示编码后的数据,以便我们可以将其复制以供以后使用。

要获取IR代码,我们将使用便宜的设备,连接到Nodemcu的高效且流行的TSOP1738红外接收器,当按下遥控器上的按钮时,红外接收器将对其进行拾取,并通过在NodeMCU上运行的解码草图,将信号内容打印在串行监视器。此内容将在以后用于控制AC。

原理图

如下图所示,将IR接收器连接到NodeMCU:

为了确定何时接收到IR信号并帮助我们进行调试,在原理图中添加了一个LED,使其仅在接收到IR信号时亮起。

代码

本篇文章主要基于IRremote ESP8266库,可以从随附的链接下载该库。该库基于标准的Arduino IRremote库,并带有解码的数据(用于一些通用键),用于许多流行的遥控器,这意味着您很幸运,并且遥控器的代码将已经可用。对于那些不太幸运的人,我们将使用IRremote ESP8266库随附的示例草图IRrecvDumpV2以及上面的示意图来获取编码。

安装库后,启动Arduino IDE,转到示例并选择IRrecvDumpV2示例。将代码上传到NodeMcu,然后按遥控器上的按钮。每次按下遥控器上的按钮时,您应该会在串行监视器中看到一组数字。复制并保留每个键的阵列,因为它们代表遥控器发送的已解码IR信号,我们将使用它们为空调复制IR信号。

2.与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}

}

完成所有这些操作后,我们现在可以继续为该项目编写代码。

代码

今天的项目代码将使用VScode和platform.io IDE插件进行开发。该代码非常庞大,对于不习惯使用这些工具对微控制器进行编程的任何人来说可能很难理解,因此我们编写了有关使用这些工具的简单教程

本文主要基于IRremoteESP8266库,但它也使用了Wifi管理器库、Arduinojson库、Arduino OTA库和NTP库。这些库中的每一个都使实现项目的不同部分变得容易。 IRremoteESP8266库用于将设备的IR信号发送到空调,Wifimanager库用于轻松更改WiFi凭据,Arduinojson用于解析homekit中的数据,而Arduino OTA库用于在设备上启用无线固件更新。使用的其他库还包括U8g2库,该库可轻松处理单色显示器。它用于显示构成项目UI的图形。该项目使用的所有库都可以通过Arduino库管理器下载和安装。

该项目的代码非常庞大,可能在这里无法解释,但我们确保对其进行了注释并附加在zip文件下的zip文件中。zip文件包含一堆文件,包括用于GUI的图形图像、库以及有关项目的所有内容。该代码位于“ src”文件夹中。 “ src”文件夹还包含不同的代码,其中大多数是名为main.cpp的主代码的头文件。所有其他文件都很重要,并且必须与main.cpp放在同一项目文件夹中,因为它们包含了主文件所需的所有信息。例如,main.h文件包含MQTT声明,而UI.h文件包含用于UI的所有内容的char值。

外壳

为了使项目看起来令人愉悦,对外壳进行了3D打印。设计是使用Fusion 360完成的。

打印后,将外壳擦洗并上漆以使打印效果更好。最终外壳如下图所示。

演示效果

确保如上面所示连接并打开设备。它应该如下图所示。

以上就是本文的全部内容。如开始所说,该项目的应用是无限的。它可以作为一个简单的盒子来控制房屋中的每个红外遥控设备。
编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 遥控器
    +关注

    关注

    18

    文章

    812

    浏览量

    64201
  • 开发板
    +关注

    关注

    25

    文章

    4403

    浏览量

    93815
  • 空调遥控器
    +关注

    关注

    0

    文章

    17

    浏览量

    7183
  • ESP8266
    +关注

    关注

    50

    文章

    946

    浏览量

    43870
收藏 人收藏

    评论

    相关推荐

    esp8266控制空调扇温度加减如何设计电路和程序?

    esp8266控制空调扇温度加减如何设计电路和程序
    发表于 11-09 06:15

    请问ESP8266开发板如何写程序?

    社区送的ESP8266开发板如何写程序?是像stm32那样用Keil编程么?
    发表于 10-31 06:53

    nodemcu和esp8266是什么关系?

    nodemcu和esp8266是什么关系 nodemcu和esp8266是什么关系?通俗理解就是nodemcu是一个开发板,基于esp8266开发
    的头像 发表于 10-20 14:53 2179次阅读
    nodemcu和<b class='flag-5'>esp8266</b>是什么关系?

    esp8266ex引脚详细 ESP8266EX参考手册

    ESP8266EX 由乐鑫公司开发,提供了⼀套⾼度集成的 Wi-Fi SoC 解决⽅案,其低功耗、 紧凑设计和⾼稳定性可以满⾜⽤户的需求。 ESP8266EX 拥有完整的且⾃成体系的 Wi-Fi
    发表于 09-08 17:05 1次下载

    ESP8266物联网茶壶

    电子发烧友网站提供《ESP8266物联网茶壶.zip》资料免费下载
    发表于 07-10 16:45 0次下载
    <b class='flag-5'>ESP8266</b>物联网茶壶

    使用ESP8266 DIY GoPro Wi-Fi遥控

    电子发烧友网站提供《使用ESP8266 DIY GoPro Wi-Fi遥控器.zip》资料免费下载
    发表于 07-05 11:28 0次下载
    使用<b class='flag-5'>ESP8266</b> DIY GoPro Wi-Fi<b class='flag-5'>遥控</b>器

    基于ESP8266的Agrumino Lemon

    电子发烧友网站提供《基于ESP8266的Agrumino Lemon.zip》资料免费下载
    发表于 06-15 09:19 0次下载
    基于<b class='flag-5'>ESP8266</b>的Agrumino Lemon

    ESP8266ESP32上的WiFi Webradio

    电子发烧友网站提供《ESP8266ESP32上的WiFi Webradio.zip》资料免费下载
    发表于 06-13 11:38 0次下载
    <b class='flag-5'>ESP8266</b>或<b class='flag-5'>ESP</b>32上的WiFi Webradio

    请问哪个是最适合led灯条项目的esp8266

    我是这个论坛的新人,我没有使用 ESP8266 的经验,我过去使用的是 Arduino UNO 开发板。 我对 ESP8266 很感兴趣,因为它们通常是物联网和远程管理的绝佳解决方案。 我的目标
    发表于 06-02 07:39

    ESP8266初次如何实现无线通信(基于电脑与ESP8266)

    一.需要的软件及硬件 1.软件 2.硬件 二.ESP8266的使用 .ESP8266的介绍 2.ESP8266进行初始AT指令的配置步骤 三.所用软件安装分享 ESP8266
    发表于 05-30 09:53 14次下载
    <b class='flag-5'>ESP8266</b>初次如何实现无线通信(基于电脑与<b class='flag-5'>ESP8266</b>)

    ESP8266 DevKitC V1如何下载FW到定制ESP8266

    我是 ESP 论坛的新手,刚开始使用 ESP8266 进行开发。我有一个 ESP8266 DevKitc V1 和另一个用
    发表于 05-30 07:41

    Zybo Z7开发板如何使用Wifi和ESP8266

    大家好,我是 Wifi 和 ESP8266 的新手,所以我目前正在测试一些项目以验证我购买的 ESP8266 在 Arduino 上的工作情况。但是,我的目标是最终在 Digilent 提供的 Zybo Z7 开发板上使用它。有
    发表于 05-25 13:29

    浅谈ESP8266的IO口功能

    在IOT Kit开发板上提供了一些基础的外设及传感器,本篇通过驱动按键、LED灯、继电器、光敏电阻和电机来学习ESP8266的IO口功能,即数字输入、数字输出、模拟输入和PWM模拟输出功能。
    的头像 发表于 05-19 14:34 3703次阅读
    浅谈<b class='flag-5'>ESP8266</b>的IO口功能

    ESP8266编程线的疑问求解

    -12E Internet WiFi 开发板开源串行无线模块。 我已经安装了 IDE,添加了 8266 开发板的 URL,为开发板管理器选择并安装了它们。我选择了我的
    发表于 05-06 08:14

    ESP8266 WIFI继电器初识

    ; 2、ESP8266模块,此文用的是安信可ESP-01S版本; 3、WIFI继电器,配合ESP8266模块使用,某宝上有两者合一的版本; 4、ESP8266下载器(可选)。
    发表于 04-21 14:16 5次下载
    <b class='flag-5'>ESP8266</b> WIFI继电器初识