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

    文章

    871

    浏览量

    71137
  • 开发板
    +关注

    关注

    25

    文章

    6125

    浏览量

    113384
  • 空调遥控器
    +关注

    关注

    0

    文章

    20

    浏览量

    7561
  • ESP8266
    +关注

    关注

    51

    文章

    966

    浏览量

    49012
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    晶科鑫 | 国产26MHz晶振匹配Espressif(乐鑫) ESP8285/ESP8266芯片案例

    【应用】国产26MHz频率晶振应用于物联网WIFI物联网模块(串口转WiFi模块),Espressif(乐鑫)ESP8285/ESP8266芯片匹配测试OKESP8285其实是ESP8266的升级版
    的头像 发表于 11-21 15:37 4062次阅读
    晶科鑫 | 国产26MHz晶振匹配Espressif(乐鑫) <b class='flag-5'>ESP</b>8285/<b class='flag-5'>ESP8266</b>芯片案例

    ESP8266ESP32开发板常见的2种下载方式

    ESP32和ESP8266是性价比很高而且使用较为广泛的的Wi-Fi模块,在物联网(IoT)领域的DIY项目中可以首先考虑这2款产品。 两款芯片都属于32位处理器。ESP32是低功耗双核80MHz
    的头像 发表于 11-10 20:30 337次阅读
    <b class='flag-5'>ESP8266</b>和<b class='flag-5'>ESP</b>32<b class='flag-5'>开发板</b>常见的2种下载方式

    在蜂鸟处理器上进行RT-Thread+ESP8266 wifi模块开发

    本队伍编号CICC3042,本文介绍在蜂鸟处理器上运行RT-Thread实时操作系统,并进行ESP8266wifi模块开发。 在蜂鸟配套的sdk中提供了RT-Thread的移植 https
    发表于 10-31 09:02

    ESP8266ESP32开发板常见的2种下载方式

    ESP8266全IO口引出,直接下载无需复位! ESP32功能框图 基于arduino的ESP32/ESP8266开发环境搭建 1.在a
    发表于 10-24 18:04

    请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗

    请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
    发表于 09-17 12:06

    ESP32-P4 口袋开发板 启明云端 WT9932P4-TINY开发板

    在万物互联的智能时代,您是否还在为寻找一款性能强大、接口丰富、应用灵活的嵌入式开发板而烦恼?启明云端全新推出的WT9932P4-TINY开发板,基于乐鑫科技高性能ESP32-P4芯片匠心打造,专为安
    的头像 发表于 09-11 18:06 982次阅读
    <b class='flag-5'>ESP</b>32-P4 口袋<b class='flag-5'>开发板</b> 启明云端 WT9932P4-TINY<b class='flag-5'>开发板</b>

    ESP32-P4-MINI开发板开箱和上手指南来了!速速码住!

    上期“梦中情ESP32-P4-MINI开发板一出就备受青睐这期我们立马就端着开箱和上手指南来了!不用惊叹,我们就是这么迅速,请把“启明云端权威”打在公屏上好嘛!开箱展示拿到
    的头像 发表于 07-25 18:02 1428次阅读
    <b class='flag-5'>ESP</b>32-P4-MINI<b class='flag-5'>开发板</b>开箱和上手指南来了!速速码住!

    【RA-Eco-RA6M4开发板评测】——4.使用ESP8266获取任意城市的天意预报

    手头上有一个ESP8266,闲置了很久,突然想起来可以和RA6M4开发板连接起来,使用AT指令来获取网络天气预报,于是就把它们连接起来。就有了这个帖子。 开始创建工程,打开 RA smart 配置
    发表于 07-23 19:50

    ESP32开发板元件资料

    ESP32开发板元件
    发表于 07-21 14:47 14次下载

    STM32+esp8266连接机智云,上传温湿度数据并控制继电器开关(平台配置、代码生成、代码移植)

    代码,并通过手机APP进行设备控制。元器件准备在开始之前,您需要准备以下硬件元器件:1.STM32开发板2.ESP8266Wi-Fi模块3.温湿度传感器(如DHT1
    的头像 发表于 07-15 18:54 751次阅读
    STM32+<b class='flag-5'>esp8266</b>连接机智云,上传温湿度数据并控制继电器开关(平台配置、代码生成、代码移植)

    ESP32-P4 C5开发板烧录小智全流程!速看!

    没错,你没有看错!我们带着WT99P4C5-S1开发板烧录小智全流程走来了!开发板搭载乐鑫科技ESP32-P4和ESP32-C5芯片,代码完全开源,支持灵活二次
    的头像 发表于 07-04 18:03 1612次阅读
    <b class='flag-5'>ESP</b>32-P4 C5<b class='flag-5'>开发板</b>烧录小智全流程!速看!

    ESP32-S3开发板烧录小智AI系统全流程指南

    在AI语音交互领域不断发展的今天,开发者们对于功能强大、开源灵活的开发板需求日益增长。今天,我们就来详细了解一下ESP32AgentDevKit烧录小智的全流程,这款搭载乐鑫科技ESP
    的头像 发表于 06-16 18:01 6955次阅读
    <b class='flag-5'>ESP</b>32-S3<b class='flag-5'>开发板</b>烧录小智AI系统全流程指南

    【RA-Eco-RA4M2开发板评测】使用RA4M2和ESP8266实现MQTT协议上传传感器数据到云服务器并反向点灯控制

    马上就到RA4M2开发板评测的结尾了,今天给瑞萨论坛线上最具创意的一篇帖子,通过RA4M2开发板,和ESP8266 WIFI模块,然后通过手机上的MQTTOOL来实现手机控制RA4M2远程点灯,即使
    发表于 05-29 15:29

    ESP8266烧录与机智云一键配网教程

    ESP8266模块因其低成本和高性能,广泛应用于智能家居和工业自动化等领域。机智云平台提供了一键配网功能,简化了设备的联网过程。本教程将详细介绍如何使用ESP8266进行烧录,并通过机智云实现一键配
    的头像 发表于 05-24 11:04 1563次阅读
    <b class='flag-5'>ESP8266</b>烧录与机智云一键配网教程

    【RA-Eco-RA4M2开发板评测】RA4M2 + ESP8266获取城市天气预报(一)

    很高兴收到瑞萨电子的RA4M2开发板,有幸成为了幸运观众,本期就来使用瑞萨的RA4M2开发板通过串口连接WIFI模块ESP8266,获取天气预报数据信息。并实时显示出来。它可以获取国内任何城市
    发表于 05-02 14:28