Добавить в корзинуПозвонить
Найти в Дзене
Smart Home 53

Пульт для телевизора ESPHome

Не все телевизоры можно интегрировать в умный дом по сети. Рассказываю как создать пульт для телевизора на ESPHome

Не все телевизоры можно интегрировать в умный дом по сети. Старые ТВ без сетевого интерфейса не позволяют это сделать, зато великолепно (за исключением обратной связи) управляются с помощью ИК-пультов. На рынке есть множество ИК-шайб и бластеров для управления телевизорами и кондиционерами, но этот функционал можно реализовать и на ESPHome, причем гораздо дешевле заводских устройств.

Для реализации проекта была взята одна из старых плат nodemcu с esp8266 на борту, которые сейчас повсеместно заменены на esp32 в моем умном доме.

В интернете в принципе можно найти базу кодов для множества телевизоров, но я предпочел считать их с пульта самостоятельно. Для этого был приобретен ИК-приемник 536AA3P

-2

Также мне понадобился ик-излучатель (в моем случае L-34F3C)

-3

и транзистор 2N2222

-4

Чтобы считать сигналы с пульта нам нужно сначала подключить ик-приемник. Согласно даташиту его левая нога - это земля, по центру - питание и правая нога - данные. Подключаем приемник, запитал я его с ноги на 3.3 В. Прописываем в конфигурации прошивки esphome следующий компонент:

remote_receiver:
pin:
number: $pin_receiver
inverted: True
mode: INPUT_PULLUP
dump: raw
idle: 25ms

Вместо $pin_receiver укажите пин или gpio, куда подключена самая правая нога ик-приемника (если смотреть на выпуклость приемника).

Дальше прошиваем контроллер и смотрим логи, наводим пульт на приемник и нажимаем интересующую нас клавишу на пульте. Логи могут быть уже заполнены каким-то количеством посторонних данных и шумов с ИК-приемника, это нормально. Интересует нас достаточно длинное сообщение следующего вида:

[D][remote.raw] Received Raw: 4088, -1542, 1019, -510, 513, -1019, 510, -509, 511, -510, 1020,
[D][remote.raw] -1020, 1022, -1019, 510, -509, 511, -510, 511, -509, 511, -510,
[D][remote.raw] 1020, -1019, 510, -511, 1020, -510, 512, -508, 510, -1020, 1022

Обратите внимание, что несмотря на три строки - это одно сообщение. Строки заканчиваются запятыми и кроме первой строки отсутствует надпись Received Raw. Иногда достаточно сложно отыскать такое сообщение среди кучи шумов.

Копируем куда-нибудь это сообщение и сохраняем. Оно нам понадобится в дальнейшем для отправки. Все интересующие кнопки пульта требуется считать этим методом и записать.

Далее отключаем ESP. Если вам больше не нужен ИК-приемник, его можно отключить. Теперь пришло время подключить ИК-передатчик. Тут все немного сложнее, одного светодиода мало, понадобится еще транзистор.

На просторах интернета я нашел отличную схему, объясняющую, как нужно подключить светодиод и транзистор к nodemcu.

-5

То есть Анод светодиода подключаем на 3.3 В, катод светодиода на коллектор транзистора, эмиттер подключаем на землю, а базу на один из пинов esp. Я привел подключение таким же образом и добавил в прошивку следующий блок:

remote_transmitter:
- pin: $pin_tv
carrier_duty_percent: 50%

где вместо $pin_tv указал пин или gpio, куда подключена база транзистора, управляющим светодиодом.

Далее остается только настроить отправку нужной команды. Для этого нам понадобится создать в ESPHome Template Switch. Делаем это следующим образом:

switch :
- platform : template
name : Raw Code Power Button
turn_on_action :
- remote_transmitter.transmit_raw :
carrier_frequency : 38kHz
code : [ 4088 , -1542 , 1019 , -510 , 513 , -1019 , 510 , -509 , 511 , -510 , 1020 , -1020 , 1022 , -1019 , 510 , -509 , 511 , -510 , 511 , -509 , 511 , -510 , 1020 , -1019 , 510 , -511 , 1020 , -510 , 512 , -508 , 510 , -1020 , 1022 ]

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

Подписывайтесь на мой канал, чтобы не пропустить обновления.

#умный дом #home assistant #smart home #esp #wifi #технологии #интернет вещей #tv #телевизор #пульт от телевизора