Модернизация вентилятора BORK CF TOR4135 BK для ESPHome

Перед тем как модернизировать вентилятор в "умный" я ставил перед собой задачу не только оставить текущий функционал, но и дополнить его - вентилятор должен уметь работать без интеграции с HomeAssistant. Но и сама интеграция с моим умным домом позволит расширить возможности вентилятора. Сразу оговорюсь, что я пытался использовать вентилятор через SmartIR, но в практике такое использование обернулось некорректной работой из-за работы функции осцилляции (вращения) - ИК сигналы просто не всегда улавливались из-за того, что вентилятор в момент отправки команды мог быть отвернут от ИК-передатчика. Ну и привязка данного вентилятора к комнате, в которой установлен ИК-передачик такое себе - вентилятор нужно иметь возможность носить в разные комнаты. IR коды для управления вентилятором через штатный пульт: smartHomeHub/SmartIR#1227. Если кому-то необходимо, могут "допилить" свой конфиг и для управления с пульта. :)
Штатные функции вентилятора при использовании кнопок на панели управления:
- Вкл/Выкл
- Выбор скорости (3 скорости)
- Режим эффекта морского бриза (волнообразный)
- Таймер выключения (никогда не использовал - считаю самой бесполезной функцией - разработчикам BORK привет)
- Вкл/Выкл осцилляции (вращения вентилятора по своей оси, для распределения воздушного потока в помещении) - приходится включать каждый раз когда включаешь вентиляцию
- Звуковая индикация нажатий
- Световая индикация, включая 2 кнопки с трехцветной индикацией (выбор скорости, таймер)
- Управление через ИК-пульт
Новый функционал:
- Вкл/Выкл (один клик), перезагрузка ESP - мультиклик (3 cек)
- Выбор скорости (3 скорости - циркулирующий клик)
- Режим эффекта морского бриза (волнообразный)
- Кнопка режим "По температуре" - один клик или удержание 1 сек выбор режимов: 1. Вкл/выкл по достижению температуры в помещении 26 и 25 градусов соответственно, 2. Вкл/Выкл по достижению температуры в помещении 27 и 26 градусов соответственно. Более точные настройки температуры можно выполнить в карточке HomeAssistant.
- Вкл/Выкл осцилляции (вращения вентилятора по своей оси, для распределения воздушного потока в помещении) - вкл/выкл клик сохраняет настройку до выключения питания
- Звуковая индикация нажатий с разными эффектами с возможностью регулирования громкости
- Световая индикация, включая 2 кнопки с трехцветной индикацией (выбор скорости, таймер)
- Управление через ИК-пульт (опционально подключение IR-приемника на GPIO20 - данный GPIO необходимо переключить в режим input без возможности использования USB или на i2c шину)
- Звуковая индикация корректной загрузки ESP при подаче питания
- Возможность звуковой и световой индикации при подключении к сети Wi-Fi (в разработке при необходимости)
- Возможность световой индикация RGB-светодиода на плате разработки ESP32-S3 - свет видно из штатного окошка для IR-приемника
- Возможность режима "Не беспокоить" - возможность отключения звуковой/световой индикации (в разработке при необходимости)
- Ну и ради чего все это: управляем из HomeAssistant и т.п.
Схема блока управления вентилятором:

Gerber файл в https://github.com/diemon24/BORK-Fun/blob/main/Gerber_PCB4_2025-06-05_ver.1.1.zip
Вам нужно использовать плату разработки ESP32 S3 в узком формате - 23 мм ширина. Тем не менее расположить на контроллере можно плату разработки ESP32S3 в широком формате 25,5 мм (что я и сделал), но тогда необходимо использовать однорядные гнездовые разъемы для монтажа ESP32S3 на плату с небольшим их наклоном в стороны. При использовании гнездовых разъемов для монтажа ESP32S3 на плату, высота монтажа ESP32S3 увеличивается и потребуется небольшая доработка задней стенки корпуса - сделав отверстие под размер ESP. Но от этого тоже есть плюс - при необходимости прошивки через JTAG, это можно будет выполнить без демонтажа корпуса вентилятора. :)
Я выбрал плату ESP32 S3 т.к. она имеет необходимое количество пинов в режиме AЦП.
В качестве датчика температуры выбран датчик ATH30 (https://esphome.io/components/sensor/aht10.html). Если есть необходимость использовать другой датчик (например TVOC и т.п.), то его также можно подключить в разъем CN6 i2c шины с небольшой доработкой прошивки.
Часть деталей я использовал со штатной платы: зуммер, конденсатор C1 и варистор R1.
Монтируем компоненты на плату:
На нижней стороны платы подготовлены места для мотажа RC фильтра (C2-R12, C3-R13, C4-R14, C5-R15), которые (как рекомендуют некоторые непроверенные источники в сети Интернет) необходимы для защиты симистора, и резисторов подтяжки (R16-R19). Но по факту RC и PULL-UP я не использую, т.к. электродвигатели вентилятора не имеют высокой мощности. Заявленная производителем мощность потребления вентилятора - не более 40Вт, когда как используются симисторы с возможностью подключения нагрузки до 1А на канал (±220 Вт). Это моя первая разработка платы и схемы в EasyEDA для ESPHome, поэтому не судите строго.
Сравнение нового контроллера со штатной платой:
Я не стал проектировать новые платы для кнопок и светодиодов, а использовал штатные вполне подходящие платы. Не смотря на то, что для управления светодиодами используется ШИМ, для порядка на аппаратном уровне я все равно заменил перемычку между светодиодами TYPE и SPEED (выпаял нужный по цветовой схеме с демонтированной штатной платы) и соединил каплей припоя черный провод (GND) с дорожкой, идущей сразу под местом подпайки - дав светодиоду SWING GND подключение. Собственно больше никаких доработок не производилось.
Если при сборке соблюсти цветовую маркировку проводов при подключении разъемов CN2 и CN3 (как у меня на фото), тогда не потребуется ничего переделывать в YAML файле ESPHome https://github.com/diemon24/BORK-Fun/blob/main/bork_fun.yaml.
Монтируем плату в корпус, при этом повернув ее USB-C разъемами ESP32-S3 к тыловой стороне вентилятора.
Перед монтажом обратите внимание на цветовую гамму проводов для управления электродвигателями - это необходимо учесть, чтобы скоростной режим и функция осцилляции функционировали корректно:
Монтируем (клеем) датчик температуры на задней стенке вентилятора:

Вот что мы получили в HomeAssistant:
Помогал тестировать связку оптопары, давал рекомендации по схеме и плате Владимир @Greg_v_v, за что выражаю ему непомерную благодарность.
Про ESP32-S3: https://dzen.ru/a/ZWuGsGuc3zHADD-l?ysclid=mbgftn7cqe275957289


