Позвонить Telegram Viber
График работы: пн–пт 9:00–18:00

ESPHome: как отправлять ИК-команды с ESP32 в Home Assistant

RizneVdim

Время сборки: 40 мин

Сложность: средняя

Компоненты

  • ESP32-C3 Super Mini
  • TSAL6400
  • VS1838B
  • DHT11
  • MOSFET 2N7000

 Большинство бытовой техники продолжает использовать инфракрасные пульты, а значит не может напрямую работать с Home Assistant. Решить эту проблему можно с помощью ESP32, превратив ее в компактный ИК-хаб.

 В предыдущей статье мы научились считывать ИК-команды с любого пульта. Теперь используем эти данные для создания собственного ИК-передатчика на ESPHome. Этот проект станет основой компактного ИК-хаба с датчиком температуры и влажности DHT11, который можно разместить в любой комнате и использовать для управления техникой из Home Assistant.

Что понадобится

  • ESP32 или ESP32-C3 Super Mini;
  • ИК-светодиод (желательно TSAL6400 или аналог);
  • транзистор и резистор для управления светодиодом;
  • ESPHome;
  • Home Assistant.

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

Настройка ИК-передатчика

Для передачи ИК-команд используется компонент remote_transmitter. Достаточно указать GPIO, к которому подключен ИК-светодиод.

remote_transmitter:
  pin: GPIO3
  carrier_duty_percent: 33%

Параметр carrier_duty_percent определяет коэффициент заполнения несущей частоты. Значение 33% хорошо подходит для большинства бытовых устройств.

Создание первой кнопки

Команды, считанные в предыдущей статье, можно использовать напрямую в ESPHome. Например, кнопка включения люстры выглядит следующим образом:

button:
  - platform: template
    name: "Люстра Power"
    on_press:
      - remote_transmitter.transmit_nec:
          address: 0xFF00
          command: 0xB946

Значения address и command необходимо заменить на данные, считанные с вашего пульта. Аналогичным способом можно добавить любое количество кнопок для управления различными устройствами.

Минимальная конфигурация ESPHome

Ниже приведен упрощенный пример конфигурации. Полную версию проекта с несколькими кнопками можно скачать в конце статьи.

esphome:
  name: rvdir

esp32:
  variant: esp32c3
  framework:
    type: esp-idf

logger:

api:

ota:
  - platform: esphome

wifi:
  ssid: "Ваш Wi-Fi"
  password: "Ваш пароль"

remote_transmitter:
  pin: GPIO3
  carrier_duty_percent: 33%

button:
  - platform: template
    name: "Люстра Power"
    on_press:
      - remote_transmitter.transmit_nec:
          address: 0xFF00
          command: 0xB946

Готовый корпус

Для этого проекта разработан компактный корпус под ESP32-C3 Super Mini, три ИК-светодиода и датчик температуры и влажности DHT11. Все компоненты устанавливаются в подготовленные посадочные места, а крышка фиксируется защелками без использования винтов.

STL-файлы корпуса можно бесплатно скачать на Thingiverse. Если у вас нет 3D-принтера, готовый корпус или комплект для сборки можно заказать на нашем сайте.

Заключение

ESPHome позволяет превратить обычную ESP32 в универсальный ИК-передатчик буквально за несколько минут. Используя коды, считанные с оригинального пульта, вы сможете управлять бытовой техникой напрямую из Home Assistant. Ниже вы найдете полный YAML проекта, который можно использовать в качестве основы для собственного ИК-хаба.

Code for ESPHome
esphome:
  name: rvdir
  friendly_name: RVD IR

esp32:
  variant: esp32c3
  framework:
    type: esp-idf

logger:

api:

ota:
  - platform: esphome

wifi:
  ssid: "Ваш Wi-Fi"
  password: "Ваш пароль"

remote_transmitter:
  pin: GPIO3
  carrier_duty_percent: 33%

button:
  - platform: template
    name: "Люстра Power"
    on_press:
      - remote_transmitter.transmit_nec:
          address: 0xFF00
          command: 0xB946

Комментарии к статье

Пока нет комментариев. Будьте первым!

Добавить комментарий