ИК-бластер на ESP8266: управление кондиционером через Алису

Содержание
Рекомендация
Управляй умным домом с компьютера

Яндекс Браузер со встроенной Алисой — бесплатно

Установить
Реклама. ООО «Яндекс», ИНН 7736207543

Управление классической бытовой техникой (кондиционерами, телевизорами, аудиосистемами), которая работает от обычных инфракрасных пультов, — одна из первых задач при автоматизации дома. Покупка готового фирменного ИК-пульта от Яндекса или Tuya решает эту проблему, но имеет свои ограничения: вы жестко привязаны к готовой базе кодов приборов и не можете использовать тонкие локальные сценарии без интернета.

Для тех, кто хочет получить полный контроль над передачей радиосигналов и сэкономить деньги, отличным решением станет сборка собственного умного ИК-бластера на базе недорогого микроконтроллера ESP8266 (плата NodeMCU или Wemos D1 Mini) под управлением прошивки ESPHome. Стоимость всех компонентов для сборки составляет около 150-200 рублей, а интеграция с Home Assistant и Домом с Алисой позволяет управлять кондиционером голосом через любую Яндекс Станцию.

Сборка электрической схемы ИК-передатчика

Для реализации проекта нам понадобятся следующие радиодетали:

  1. Микроконтроллерная плата NodeMCU ESP8266.
  2. Инфракрасный светодиод с длиной волны 940 нм (именно эта частота используется во всех бытовых пультах).
  3. Резистор номиналом 100 Ом для ограничения тока.
  4. Биполярный транзистор NPN-структуры (например, BC547 или 2N2222) и резистор 1 кОм для базы — опционально, но рекомендуется для увеличения мощности и дальности действия.

Если подключить ИК-светодиод напрямую к пинам микроконтроллера ESP8266 через резистор 100 Ом, дальность работы передатчика составит всего 1.5-2 метра, так как максимальный ток цифрового выхода чипа ограничен 12 мА.

Чтобы бластер мог уверенно управлять техникой из любого угла комнаты на расстоянии до 7-10 метров, светодиод необходимо подключать через транзисторный ключ. В этой схеме транзистор выступает в роли силового переключателя: управляющий сигнал с пина ESP8266 открывает транзистор через резистор 1 кОм, пуская через ИК-светодиод высокий ток непосредственно от линии питания 5V (вывод Vin платы NodeMCU).

Конфигурация ESPHome

Прошивка ESPHome позволяет настроить работу с ИК-передатчиком без написания сложного кода на C++. Вся конфигурация описывается в простом YAML-файле.

Создайте новый узел в панели управления ESPHome и добавьте в него конфигурационный блок для работы с ИК-передатчиком:

esphome:
  name: ir-blaster

esp8266:
  board: nodemcuv2

# Настройка Wi-Fi сети умного дома
wifi:
  ssid: "MySmartHome_2.4G"
  password: "SuperSecurePassword123"

# Включение API для интеграции с Home Assistant
api:

logger:

# Конфигурация физического ИК-передатчика
remote_transmitter:
  pin: GPIO4 # Пин D2 на плате NodeMCU
  carrier_duty_cycle: 50%

# Создание виртуальных кнопок для отправки сигналов
button:
  - platform: template
    name: "Conditioner Power Toggle"
    on_press:
      - remote_transmitter.transmit_panasonic:
          data: 0x40040700E5A2

Параметр carrier_duty_cycle: 50% задает скважность несущей частоты импульсов ИК-сигнала (обычно модулируемого на частоте 38 кГц), что гарантирует стабильное распознавание команд приемником кондиционера.

Специфика работы с сырыми кодами (Raw Codes)

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

В таком случае конфигурационный блок кнопки в файле ESPHome будет выглядеть следующим образом:

button:
  - platform: template
    name: "Conditioner Target Cold"
    on_press:
      - remote_transmitter.transmit_raw:
          code: [3450, -1720, 430, -430, 430, -1290, 430, -430, 430, -1290, 430]

Отрицательные числа в массиве обозначают длительность пауз (когда светодиод полностью выключен), а положительные — длительность импульсов свечения. Запись таких сырых массивов данных позволяет скопировать функции пульта абсолютно любого производителя бытовой техники на рынке, независимо от сложности кодирования протокола.

Запись ИК-кодов и интеграция с Алисой

Чтобы узнать точные коды кнопок вашего оригинального пульта от кондиционера, временно подключите к плате ESP8266 инфракрасный приемник (например, VS1838B) к любому свободному пину и пропишите блок remote_receiver в конфигурации. При нажатии кнопок на пульте в логах ESPHome будут отображаться считанные HEX-коды и используемые протоколы (например, LG, NEC, Panasonic или сырые данные raw).

После компиляции и прошивки ESP8266 по USB-кабелю устройство автоматически появится на панели интеграций Home Assistant.

Для интеграции с экосистемой Яндекса выполните следующие действия:

  1. В Home Assistant настройте виртуальный переключатель (климат-контроль) на основе созданных кнопок ИК-передатчика.
  2. Синхронизируйте устройства Home Assistant с приложением «Дом с Алисой» через официальный навык Yandex Smart Home.
  3. Алиса распознает прибор как кондиционер и позволит управлять им стандартными голосовыми командами: «Алиса, включи кондиционер» или «Алиса, установи температуру в спальне на 22 градуса».

WARNING

Так как инфракрасный канал связи является односторонним, умный дом не может физически контролировать текущее состояние прибора. Если вы выключите кондиционер руками с родного пульта, в приложении Яндекса он по-прежнему будет числиться включенным. Старайтесь использовать только автоматические сценарии или голосовое управление во избежание рассинхронизации.

TIP

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

Сборка собственного ИК-бластера позволяет легко интегрировать любую старую бытовую технику в сценарии автоматизации. Подробнее о логике температурного регулирования читайте в инструкции по умному управлению кондиционером с Алисой.

Инструкция по настройке

1

Сборка электрической схемы ИК-передатчика

Подключите инфракрасный светодиод (940нм) к пину D2 платы NodeMCU ESP8266 через токоограничивающий резистор 100 Ом. Для повышения дальности используйте транзистор.

2

Написание конфигурационного YAML-файла

Создайте новый проект в ESPHome, пропишите конфигурационный блок remote_transmitter для отправки сигналов и укажите пин управления GPIO4 (D2).

3

Прошивка микроконтроллера ESP8266 по USB

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

4

Интеграция ИК-команд пульта с Алисой

Пропишите коды клавиш в Home Assistant и пробросьте виртуальный пульт в Яндекс. Свяжите устройство с Яндекс Станцией для голосового управления.