В магазинах то и дело мелькают коробки с надписями вроде:
- «Контроллер "Атлас" — 21 170 ₽»
- «М3-Сити 2L для приточно-вытяжной установки»
И возникает законный вопрос: а что вообще делает этот контроллер? И главное — можно ли обойтись без него, собрав своё на ESP32, реле и паре датчиков?
Давайте разберёмся — и заодно посмотрим, как бы выглядел «самопальный» контроллер для вентиляции в моём стиле.
Что делает промышленный контроллер вентиляции?
Это не просто «кнопка включения». Это мозг всей системы. Вот его основные задачи:
- Управление вентиляторами — включает/выключает приток и вытяжку, часто с плавной регулировкой оборотов (через ШИМ или сигнал 0–10 В).
- Защита от замерзания — если на улице –20°C, а рекуператор работает, он может обмерзнуть. Контроллер либо отключает приток, либо открывает байпас, либо включает подогрев.
- Работа по датчикам — температура улицы, в комнате, после рекуператора. Некоторые модели читают CO₂, влажность, давление.
- Режимы работы — «авто», «ночной», «интенсивная вентиляция», «отдых» и т.п.
- Индикация и аварии — если датчик отвалился или вентилятор заклинило, система предупредит.
- Интеграция — Modbus, RS-485, иногда Wi-Fi или Ethernet для подключения к умному дому.
Всё это — ради одного: чтобы ты дышал свежим воздухом, а не ледяным или спёртым.
А можно ли сделать своё?
Если ты не продаёшь систему, а делаешь для себя — то да, можно. Особенно если:
- Ты понимаешь риски (например, замерзший рекуператор = 30 000 ₽ в утиль),
- Ты готов тестировать, логгировать и «обкатывать» систему,
- У тебя уже есть ESP32, датчики и желание поковыряться.
Я, например, однажды подключил воздуховод к батарее — и получил ледяную скульптуру вместо вентиляции. Теперь знаю: физика не прощает 😅
Пример: минималистичный контроллер на ESP32
Вот как может выглядеть базовая логика «антизамерзания» для домашней ПВУ:
// Простой контроллер вентиляции на ESP32
// Датчики: DS18B20 (улица, в воздуховоде)
// Реле: приточный вентилятор
#include
#include
#define ONE_WIRE_BUS 4
#define FAN_RELAY_PIN 5
#define MIN_OUTDOOR_TEMP 2.0 // ниже +2°C — не включать приток
#define MIN_DUCT_TEMP 3.0 // в воздуховоде должно быть теплее +3°C
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
int sensorOut = 0; // индекс датчика улицы
int sensorDuct = 1; // индекс датчика в воздуховоде
void setup() {
pinMode(FAN_RELAY_PIN, OUTPUT);
digitalWrite(FAN_RELAY_PIN, LOW); // выключено по умолчанию
sensors.begin();
Serial.begin(115200);
}
void loop() {
sensors.requestTemperatures();
float tempOut = sensors.getTempCByIndex(sensorOut);
float tempDuct = sensors.getTempCByIndex(sensorDuct);
Serial.print("Улица: "); Serial.print(tempOut);
Serial.print(" °C | Воздуховод: "); Serial.print(tempDuct); Serial.println(" °C");
bool safeToRun = (tempOut >= MIN_OUTDOOR_TEMP) && (tempDuct >= MIN_DUCT_TEMP);
if (safeToRun) {
digitalWrite(FAN_RELAY_PIN, HIGH);
Serial.println("→ Вентилятор ВКЛ");
} else {
digitalWrite(FAN_RELAY_PIN, LOW);
Serial.println("→ Вентилятор ВЫКЛ (риск замерзания!)");
}
delay(10000); // проверка каждые 10 сек
}
Это, конечно, упрощение. В реальности нужно:
- Добавить гистерезис (чтобы вентилятор не щёлкал каждые 10 сек),
- Логгировать данные в файл или базу,
- Сделать веб-интерфейс для управления,
- Добавить watchdog — чтобы при зависании ESP32 вентилятор выключался.
Вывод
Готовые контроллеры — это надёжно, сертифицировано, «из коробки». Но если ты хочешь гибкость, интеграцию в свою IoT-систему и полный контроль — DIY на ESP32 имеет смысл.
Главное — не забывать: вентиляция работает не для «умного дома», а для твоих лёгких. И для этого она должна быть не только «умной», но и надёжной.
А лёд в воздуховоде? Это не баг. Это первый урок от профессора Физики 😉
— Ставь лайк, если тоже когда-то заморозил свою вентиляцию. И пиши в комментариях — как ты решаешь проблему свежего воздуха зимой?