Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DormAC-NEU

这是一个面向东北大学宿舍空调控制场景的非官方项目,使用 NodeMCU ESP8266 和红外发射管控制采用 COOLIX 红外协议的空调。设备可创建可配置的 Wi-Fi 热点,手机连接后通过网页完成开关机、温度、模式、风速、定时和上下扫风控制。

项目缘起:宿舍装了空调,却没有配遥控器,手机也没有红外功能😅。

项目的选材、接线、协议分析、代码和调试均由 GPT 提供方案。买完元件后才发现还有集成式 38 kHz 红外收发模块:功能与分立方案相同,只是封装更完整、使用更方便。本项目仍采用分立元件实现。

效果预览

控制页面:

空调控制页面

运行日志:

ESP8266 串口运行日志

功能

  • 制冷、制热、送风、自动和抽湿模式
  • 自动、低、中、高四档风速
  • 温度调节、定时关机和上下扫风
  • ESP8266 热点控制,也可连接已有 Wi-Fi
  • VS1838B 红外信号采集程序

材料

材料 数量
NodeMCU ESP8266 1
940 nm 红外发射管 1
S8050 NPN 三极管 1
100 Ω 电阻 1
1 kΩ 电阻 1
VS1838B 红外接收头 1(可选)
面包板、杜邦线、USB 数据线 若干

接线

Fritzing 接线图:

DormAC-NEU Fritzing 接线图

实物接线图:

ESP8266 空调控制器接线实物图

红外发射:

D2 / GPIO4 ── 1 kΩ ── S8050 B

VU / 5V ── 100 Ω ── 红外 LED 正极
红外 LED 负极 ── S8050 C
S8050 E ── GND

可选的红外接收:

3.3V ── VS1838B VCC
GND  ── VS1838B GND
D5 / GPIO14 ── VS1838B OUT

注意:

  • S8050 和 VS1838B 的引脚顺序可能因厂家、封装而异,接线前请查看对应数据手册。
  • NodeMCU、发射电路和接收电路必须共地。
  • 红外 LED 不要直接接 GPIO;发射管正负极和 VU / 5V 电压也应在通电前确认。

配置

本项目使用 PlatformIO。首次构建前复制配置文件:

cp include/config.example.h include/config.h

按需修改 include/config.h

constexpr char AP_WIFI_NAME[] = "DormAC";
constexpr char AP_WIFI_PASSWORD[] = "12345678";

constexpr char STA_WIFI_NAME[] = "YOUR_WIFI_SSID";
constexpr char STA_WIFI_PASSWORD[] = "YOUR_WIFI_PASSWORD";

const IPAddress AP_IP(192, 168, 4, 1);
const IPAddress AP_GATEWAY(192, 168, 4, 1);
const IPAddress AP_SUBNET(255, 255, 255, 0);

#define DEFAULT_AC_MODE MODE_COOL
#define DEFAULT_FAN_SPEED FAN_LOW
#define DEFAULT_SWING_STATE SWING_TOP
constexpr int DEFAULT_AC_TEMPERATURE = 25;
  • AP_WIFI_NAMEAP_WIFI_PASSWORD:ESP8266 创建的热点名称和密码,密码至少需要 8 个字符。
  • STA_WIFI_NAMESTA_WIFI_PASSWORD:设备要接入的已有 Wi-Fi;将名称留空时仅使用设备热点。
  • AP_IP:热点控制页面地址,可按需修改。
  • DEFAULT_AC_MODE:默认模式,可选 MODE_COOLMODE_HEATMODE_FANMODE_AUTOMODE_DRY
  • DEFAULT_AC_TEMPERATURE:默认温度,制冷和制热范围均为 17–30℃。
  • DEFAULT_FAN_SPEED:默认风速,可选 FAN_AUTOFAN_LOWFAN_MEDIUMFAN_HIGH
  • DEFAULT_SWING_STATE:默认风向,可选 SWING_AUTOSWING_TOPSWING_UPPERSWING_MIDDLESWING_LOWERSWING_BOTTOM。该设置只初始化页面状态,不会在设备启动时发送扫风指令。

这些默认参数用于设备启动后的首次空调开机指令;ESP8266 启动时不会自动打开空调。

本地配置可能包含 Wi-Fi 密码,include/config.h 已被忽略,请勿提交。

构建与运行

编译并上传:

pio run
pio run -t upload

需要查看启动日志时运行:

pio device monitor

设备启动后:

  1. 手机连接 AP_WIFI_NAME 配置的热点;模板默认名称为 DormAC,密码为 12345678
  2. 浏览器打开 AP_IP 对应的地址;模板默认为 http://192.168.4.1/
  3. 在控制页面选择空调状态并发送。

如果已在配置中填写宿舍 Wi-Fi,设备也会尝试接入该网络,实际地址可从串口日志查看。

辅助程序

example/ 目录包含以下两个独立的硬件调试程序,它们不会参与正式固件构建:

  • example/recv.cpp:使用 VS1838B 采集和解析红外信号。
  • example/send.cpp:红外发送测试程序。
  • web_preview.html:在电脑浏览器中预览控制页面。

COOLIX 编码、定时规律、扫风码及验证边界见 COOLIX 协议记录

About

东北大学宿舍空调的非官方 ESP8266 Wi-Fi 红外控制器,支持网页控制、定时与扫风。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages