Превращаем безымянный умный IR-бластер в полноценный конфигурируемый безумный хаб
Было очень много статей по устройствам ESPHome. Может, пора попробовать альтернативу? В этом материале рассмотрим перепрошивку на Tasmota-подобное ПО. В случае рассмотренного контроллера — OpenBeken. И заодно немного модифицируем заводское устройство. Подобности под катом.
Итак, давным-давно в далекой галактике… Нет, не то. В общем, давненько брал я дешевый IR-бластер, да не просто так, а чтобы его переделать под открытые системы умного дома. Потому что с завода их клепают на базе закрытого SmartHome, а подключать такое к своему локальному уютному домику считаю кощунством.


На вид просто шайба. Снизу кнопка reset, сбоку microUSB для питания, сверху WiFi-индикатор. Вскроем. Проводки напаял для теста.


Видим внутри простую плату, на которой 3 основных модуля — диоды бластера в круг для покрытия 360 градусов, приемник IR — какой-то комбинированный модуль вроде VS1838B, они все одинаковые и, наконец, модуль bk7231n CBU.
Модуль выпаиваем феном и подключаем к программатору.

Он готов к прошивке через ПК. Понадобится программа BK7231 GUI Flash Tool.

В ней отмечаем COM-порт с подключенным хвостиком программатора и тип чипа. Тип гуглится по запросу "$module_name module". В данном случае «CBU module». Первая же ссылка на даташит. Первый же абзац дает

Это все что нужно. В отличие от ESPHome конфиг пинов можно менять прямо на лету в прошивке, так что по этому поводу можно совсем не морочиться. Ценой этого является то, что прошивка очень тяжелая (в ней нужно хранить множество вариантов драйверов и подпрограмм), а память не резиновая — много чего не влезает.
Теперь, когда прошивка записана, устройство запускает свою точку доступа WiFi. Нам нужно лишь подключиться и вбить данные своего домашнего WiFi, после чего оно уже нормально переподключится и получит IP в локальной сети.


Остается настроить пины и подключение по MQTT к умному дому (либо просто пины, если домашнего сервера пока нет).
Семи пяди во лбу не надо иметь, чтобы разобраться в схеме. Светодиоды IR подключаются через драйвер-транзистор.

У IR-приемника пару резисторов в обвязке. В остальном обычно идет напрямую к пину контроллера. Но может быть инвертирован!

Еще есть синий LED как wifi-индикатор. Берем мультиметр и отзваниваем все это дело.
Я решил не ограничиваться этим, а добавить в схему еще модулей — PIR сенсор и датчик температуры и влажности AM2320. А что? Зря чтоли столько пинов свободных. Поместил все в распечатанный боковой модуль корпуса, который сам разработал.

Разные красные провода — разное питание. Забыл упомянуть — перед CBU стоить стабилизатор на 3.3В, чтобы 5В USB не спалили чип. Так вот PIR питается от 5, а AM2320 от 3.3. Не перепутать! А земля общая, ее соединил.
В модулях прошивки нет драйвера AM2320 по I2C (подключение по 2 проводам). Пришлось доставать из широких штанин даташит и схему для 1-Wire. Не забывайте про подтяжку SDA резистором 5.1k к питанию!


В общем, спаиваем мой модулек с заводской платой прямо навесом.

Далее в прошивке указываем пины устройств, найденные мультиметром и добавленные пайкой.



Для AM2320 по 1-Wire использовал драйвер DHT21. Для PIR DInput_NoPullup. Канал это название в MQTT (не знал, так что отображается PIR теперь как «4»).
Кстати про MQTT. Если есть сервер, можно подключить устройство прямо к нему. Для этого вводим данные этого сервера.

Для примера введу это. Послу чего некоторое время подключается, и на главной странице появляется статус.

Теперь устройство есть и в умном доме.


Я добавил статистическую характеристику как уровень присутсвия на основе данных PIR-сенсора. Это не относится к конфигурации устройства.
Чтобы также воспользоваться устройством как IR пультом следует сначала в его веб интерфейсе (открывается по IP-адресу) открыть Web-приложение.

В нем открыть логи и выбрать IR.

Теперь необходимо направить пульт на приемник и нажать кнопку, что надо скопировать. Она появится в логах.

Теперь с помощью команд, которые вбиваются в поле «Command:» шлем.
IRsend {"Protocol":"RC6","Bits":20,"Data":0x000C}
IRsend {"Protocol":"RC6","Bits":20,"Data":0x1000C}Код может быть инвертированным. В этом случае пригодится битовый инвертор.
IRsend {"Protocol":"RC6","Bits":20,"Data":0xFFFF3}
IRsend {"Protocol":"RC6","Bits":20,"Data":0xEFFF3}Как только устройство начинает реагировать на сигнал, мы можем перенести нашу команду из консоли в скрипт HomeAssistant либо на сервер MQTT.
Вот так для MQTT.
mosquitto_pub -t cmnd/homeassistant/IRSend -m '{"Protocol":"RC6","Bits":20,"Data":0xFFFF3}'А вот для Hassio.
action:
- service: mqtt.publish
data:
topic: cmnd/homeassistant/IRSend
payload: '{"Protocol":"RC6","Bits":20,"Data":0xFFFF3}'Думаю, более-менее ситуация прояснилась. Если сразу не заработает — это нормально. Везет, когда работает сразу. Обычно еще полчаса ищешь инфу по битам протокола, а затем вручную бит-флиппишь и шлешь RAW-коды. В любом случае, это основные знания, которые следует усвоить.
Тем временем, устройство я установил на потолке, где оно благополучно висит и по сей день, посылая команды по IR и собирая статистику температуры и влажности. Провод тоже позже провел к БП 5В.

Всем спасибо, все свободны!
- 31 мая 2026, 19:26
- 31 мая 2026, 19:45
- 31 мая 2026, 19:52
- 31 мая 2026, 19:52
- 31 мая 2026, 20:00
| +42 |
1587
36
|
| +49 |
2763
55
|