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

Коментарі до статті

Поки що немає коментарів. Будьте першим!

Додати коментар