基于单片机的多功能红外空调遥控器 - 嵌入式 物联网(含代码)

2023-10-23 11:57 浏览 1202人

** 单片机多功能红外空调遥控器 **

  • 难度系数: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元领取:扫码进群领资料