Всем привет! Встала задача по модернизации вытяжного вентилятора в ванной, чтобы он включался/отключался, как настенным выключателем, так и по внешним условиям от датчика. Казалось бы, возьми встраиваемое реле, воткни в подрозетник и готово! Но не тут-то было! Именно в нужный мне подрозетник сходится три трехжильных кабеля и ни одно из имеющихся у меня реле в него не влезло: Aubess Wi-Fi DIY Smart Switch (ZN330893), Sonoff Zigbee Smart Switch (ZBMINI), Elektrostandard WF002.
Поэтому принялся искать более компактное реле с нейтралью и клеммами под выключатель и такой вариант нашелся - это Sonoff Mini R4 Extreme.
Итак, реле куплено, проверено на работоспособность и... разобрано. Разбирается легко, по бокам корпуса всего по паре защелок, но отделять половинки нужно аккуратно, чтобы не порвать проложенные внутри термопрокладки для отвода тепла с реле и электронных компонентов. Компоновка на плате очень плотная, однако интересующие нас микроконтроллер Espressif ESP32-D0WD-V3, SPI-флеш Winbond 25Q32BVSIG на 4 Мб и контакты для дальнейших манипуляций с прошивкой в легком доступе, и это хорошо.
В стоке без каких-либо настроек реле работает таким образом: пока выключатель, подключенный к терминалам S1-S2, в состоянии ВКЛ контакты реле замкнуты, перевод выключателя в состояние ВЫКЛ размыкает контакты реле. Это поведение наверняка настраивается, но ковыряться было лень, ведь есть возможность прошиться на ESPHome, чем и займемся далее. О бэкапе стоковой прошивки информация в конце статьи.
Забыл уточнить, настенный выключатель я решил заменить на выключатель с подпружиненной клавишей, по сути, на кнопку - такое управление вентилятором приятнее и интуитивно понятнее.
Ниже по тексту я приведу код конфигурационного файла для сборки прошивки ESPHome, которая закладывает в устройство тривиальный функционал: индикацию подключения светодиодом, переключение состояния реле по нажатию кнопки на корпусе и по нажатию кнопки, подключенной к S1-S2, Web-интерфейс, а также добавляет управляемые и диагностические объекты в Home Assistant, такие как управление реле, версия прошивки, перезагрузка контроллера, IP-адрес и имя Wi-Fi сети.
Для заливки прошивки потребуется USB-UART преобразователь 3.3 В, но возможно придется городить дополнительное питание, я же использую дешевый программатор CH341B, в нем есть все необходимое.
Подпаиваем провода к пятакам на платах, как показано на фото ниже и подключаем их к программатору по схеме: 3V3<-->3V3, GND<-->GND, TX<-->RX, RX<-->TX.
О добавлении (создании нового) устройства в ESPHome я писал ранее в статье про удлинитель EKF Connect Pro Wi-Fi (RCE-2-WF).
Далее берем конфиг отсюда:
Подгоняем раздел #Naming, network под себя, не забывая, что ESPHome использует свой файл secrets.yaml, компилируем и сохраняем прошивку ESPHome по короткому пути, желательно без кириллицы. Затем скачиваем актуальную версию утилиты Flash Download Tool с официального сайта Espressif, запускаем и настраиваем:
На плате реле зажимаем кнопку (см. фото ниже), подключаем программатор к компьютеру и отпускаем кнопку, таким образом контроллер ESP32 запустится в boot-mode режиме для загрузки прошивки. Убеждаемся, что COM-порт определился в системе и утилите, если в утилите автоматом не выставился - выставляем. Жмем "START" и ждем завершения процесса заливки прошивки.
На этом всё, закрываем программу, отключаем программатор, отпаиваем провода, собираем реле и пользуемся. Дальнейшие модификации можно проводить непосредственно из дополнения ESPHome в Home Assistant.
Если тема ESPHome интересна и есть желание перевести как можно бОльшее число умных устройств в локальную сеть, советую ознакомиться со списком девайсов поддерживаемых этим фреймворком: https://devices.esphome.io/. Поможет сэкономить и время, и деньги. Кстати, в списке есть и сабж: Sonoff Mini R4 Extreme.
Для бэкапа заводской прошивки нужно установить Python (официальный сайт), скачать пакет ESPTool (инструкция), перевести контроллер реле в boot-mode и в командной строке (CMD) ввести следующую команду: esptool --port COM3 --baud 921600 read_flash 0 0x400000 sonoff_mini_r4_factory_bkp.bin COM-порт в вашем случае может отличаться, впишите свой. При наличии в операционной системе логических дисков отличных от C:, я бы посоветовал в CMD сначала перейти в корень такого диска (в моем случае D:), а затем запускать вышеуказанную команду или сразу в команде прописать полный путь сохранения bin-файла - так проще его найти.
Буду рад вопросам, конструктивным замечаниям и помощи в допилинге и оптимизации прошивки. Успехов!
Тэги: #прошивка, #умный дом, #умное реле, #sonoff, #smart switch, #relay, #esphome, #home assistant, #Алиса, #firmware