1、项目概述与硬件选型:了解中央空调控制原理,选择ESP32、温湿度传感器(DHT22/AM2301)、继电器模块、红外发射管等核心器件

大家好,欢迎来到这门实战课。

说实话,做智能家居这么多年,我一直觉得中央空调的控制是个「硬骨头」。市面上那些所谓的智能面板,要么贵得离谱,要么协议封闭,根本没法自己折腾。所以我决定,干脆自己动手,用ESP32做一个多房间温控面板,顺便把中央空调的红外控制也集成进来。

这一章,我们先聊聊项目整体思路,再搞定硬件选型。嗯,别急着买元件,看完再下单,能省不少冤枉钱。

1.1 中央空调控制原理——其实没那么玄乎

很多人一听「中央空调控制」,就觉得是高大上的东西。说白了,家用中央空调的控制方式,无非就三种:

  • 红外遥控:最常见,壁挂机、风管机都用这个。我们模拟遥控器发码就行。
  • 有线面板:通过两根信号线(通常是RS485或CAN总线)和室内机通信。这个稍微复杂点,需要协议分析。
  • WiFi/蓝牙模块:部分新机型自带,但价格嘛...你懂的。

我个人习惯,优先选红外方案。为什么?因为通用性强,几乎所有的中央空调室内机都带红外接收头。我在项目中遇到过一台三菱电机的老机器,面板都停产了,但红外遥控照样能用。

核心思路:我们用一个ESP32,同时控制多个房间的空调。每个房间放一个温湿度传感器,再配一个红外发射管。ESP32通过WiFi联网,手机或面板上就能看到每个房间的温度,还能独立开关、调温。

1.2 主控芯片:为什么选ESP32?

选ESP32,说白了就三个理由:便宜、双核、自带WiFi+蓝牙。

你想想看,如果用一个Arduino Uno,还得外挂一个ESP8266才能联网,布线麻烦,稳定性也差。ESP32一颗芯片全搞定,成本才十几块钱。

芯片 价格(约) WiFi 蓝牙 GPIO数量 适合场景
ESP32 ¥15-25 25+ 多房间、多传感器
ESP8266 ¥8-12 9 单房间、简单控制
Arduino Uno ¥20-30 ❌(需外挂) 14 不推荐本项目

我建议选ESP32-WROOM-32模组,开发板用NodeMCU-32S就行。注意,别买那种带摄像头接口的版本,用不上还占地方。

避坑指南:我曾经买过一批便宜的ESP32模组,结果发现Flash大小只有4MB,跑OTA升级时死活不够用。所以,一定要选16MB Flash的版本,或者至少8MB。多花几块钱,省心很多。

1.3 温湿度传感器:DHT22 vs AM2301

这两个其实是一个东西。DHT22是通用型号,AM2301是封装好的模块版本,带PCB板和上拉电阻。我个人习惯用AM2301,因为直接插杜邦线就能用,不用自己焊电阻。

为什么不用DHT11?精度太差了,±2°C的误差,你设26°C,它给你读到28°C,空调就拼命制冷。DHT22的精度是±0.5°C,湿度±2%RH,够用了。

接线也很简单:

AM2301 / DHT22 引脚定义:
1号脚(VCC) → ESP32 3.3V
2号脚(DATA)→ ESP32 GPIO4(可自定义)
3号脚(NC)  → 悬空
4号脚(GND) → ESP32 GND

注意,DATA引脚和VCC之间最好加一个4.7kΩ上拉电阻。AM2301模块自带了这个电阻,但如果你买的是裸DHT22,记得自己焊一个。

重要提醒:DHT22的采样间隔至少2秒!我曾经在代码里写了个100ms的循环,结果传感器直接罢工,输出全是NaN。后来查手册才发现,这货每次读取后需要1.5秒以上的恢复时间。所以,别贪快,老老实实加延时。

1.4 继电器模块——控制空调电源?别乱来

很多人一上来就想用继电器直接控制空调的220V电源。嗯,这里要泼一盆冷水:千万别这么做

中央空调的室内机,断电后重新上电,并不会自动开机。它需要等待主板自检、通信握手,少说十几秒。而且频繁断电对压缩机是致命伤害。

那继电器用来干嘛?两个场景:

  • 控制电动风阀:多房间中央空调,每个房间的风阀是220V供电的,用继电器开关最合适。
  • 控制辅助设备:比如新风机的启停、电加热带的开关。

选型上,我推荐SRD-05VDC-SL-C,5V继电器,ESP32用三极管驱动。别买那种3.3V的「单片机继电器模块」,驱动电流不够,容易误动作。

继电器驱动电路(简化版):
ESP32 GPIO → 1kΩ电阻 → NPN三极管基极
三极管集电极 → 继电器线圈(并联续流二极管)
三极管发射极 → GND
继电器VCC → 5V电源

我的经验:继电器模块买回来,第一件事不是接空调,而是接一个灯泡测试。我曾经遇到过继电器触点粘连的问题,就是吸合后断不开。用灯泡测试,一眼就能看出问题。

1.5 红外发射管——把手机变成万能遥控器

红外控制是这门课的核心。每个房间的空调,都靠一个红外发射管来开关、调温。

选型很简单:5mm红外发射管,940nm波长,买一包100个才几块钱。注意,要配一个三极管驱动,因为ESP32的GPIO输出电流太小,直接推不动红外管。

电路连接:

ESP32 GPIO → 100Ω电阻 → NPN三极管基极
三极管集电极 → 红外发射管阳极
红外发射管阴极 → GND
(发射管正极接3.3V也行,但距离会短一些)

我建议每个房间的红外发射管,用独立的GPIO控制。这样你可以同时给不同房间发不同的指令。比如客厅开26°C,卧室开28°C,互不干扰。

关键点:红外发射管的角度问题。我实测过,普通5mm红外管的有效角度大约±15度。所以安装时,发射管要对准空调室内机的红外接收窗。如果距离超过5米,建议用两个发射管并联,或者加一个红外发射头支架。

1.6 其他辅助器件

除了上面几个核心器件,你还需要:

  • 电源模块:220V转5V/3.3V,推荐HLK-PM01,体积小、发热低。
  • OLED屏幕(可选):0.96寸SSD1306,I2C接口,显示温湿度信息。
  • 按键:轻触开关,用于本地手动控制。
  • 面包板+杜邦线:前期调试用,别一上来就焊板子。

嗯,这一章的内容就到这里。硬件选型是项目的基石,选对了后面就顺风顺水。下一章,我们会搭建开发环境,然后写第一行代码——让ESP32连上WiFi,读取DHT22的温度数据。

到时候见。