Авторизация
Регистрация

Напомнить пароль

Превращаем безымянный умный 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В. 

Всем спасибо, все свободны! 

 

Добавить в избранное
+9 +10
свернутьразвернуть
Комментарии (5)
RSS
+
avatar
0
  • wasla
  • 31 мая 2026, 19:26
Эти штуковины мне больше по душе, уже который год без танцев: Xiaomi Mijia Bluetooth Thermometer 2 (LYWSD03MMC). А может я чего не понял.
+
avatar
0
устройство я установил на потолке, где оно благополучно висит и по сей день
А что оно делает? Можно простым языком?
+
avatar
+1
Стоит как датчик температуры и влажности для статистики, плюс можно не искать пульт и управлять напрямую кондиционером, телевизором, музыкальным центром. Как стандартный IR бластер.
+
avatar
+3
Висит же. Замеряет температуру потолка. Отправляет данные комарам.
+
avatar
+1
Это ИК-бластер вообще-то. Лучевая пушка по комарам!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.