Прототип сделан на ESP32 потому, что в дальнейшем возможно будет управлять бытовым прибором через Интернет. Для начала необходимо прочитать необходимые команды от ИК пульта и записать полученные значения. Для этого потребуется ИК-приемник. Для отправки команд потребуется ИК-передатчик.
Для сборки макета использовались тройка модули от компании Амперка произведенные в России. С ними удобно работать с макетной платой.
Для чтения сигналов от домашних пультов использовался ИК-приёмник (Troyka-модуль) на базе TSOP22 на котором уже есть вся необходимая обвязка.
(в поисковых системах ИК приемники ищутся по запросу "IR Receiving arduino")
Расшифровка сигналов с пультов вопрос нетривиальный, и требует больших временных затрат - но в Интернет существует готовая библиотека IRremoteESP8266 разработчики которой уже выполнили данную работу. С ESP32 данная библиотека так-же дружит.
Подключаем датчик на 14 контакт, подаем питание
Идем в примеры:
Открываем монитор порта на скорости 115200 и считываем сигналы с пультов (приставка цифрового телевидения + пульт от телевизора)
Копируем нужные значения кодов кнопок в блокнот
Protocol : SAMSUNG (телевизор)
uint64_t data = 0xE0E040BF; // TVONOFF
uint64_t data = 0xE0E0E01F; // VOLUMEUPP
uint64_t data = 0xE0E0D02F; // VOLUMEDOWN
uint64_t data = 0xE0E0F00F; // VOLUMEMUTE
Protocol : NEC (триколор приставка)
uint64_t data = 0x807F807F; // TRONOFF
uint64_t data = 0x807FE817; // CHUP
uint64_t data = 0x807F58A7; // CHDOWN
uint64_t data = 0x807F00FF; // CH1
uint64_t data = 0x807FE01F; // CH2
uint64_t data = 0x807F609F; // CH3
uint64_t data = 0x807F20DF; // CH4
uint64_t data = 0x807FD02F; // CH5
uint64_t data = 0x807F50AF; // CH6
uint64_t data = 0x807F10EF; // CH7
uint64_t data = 0x807FF00F; // CH8
uint64_t data = 0x807F708F; // CH9
uint64_t data = 0x807FC837; // CH0
Для передачи сигналов из полученных кодов пишем набор процедур с понятными названиями и размещаем в отдельном файле.
Для теста попробуем включать/выключать ТВ и приставку триколор при подаче питания на ESP32
Для проверки работы используем ИК-модуль передатчик
Идем к телику и подаем питание на плату от PowerBank. Включилось и то и то - альтернатива 2-м пультам работает.
В готовой конструкции модуль использовать неудобно и дорого, поэтому соберем аналог на дискретных элементах. Максимальный ток который может выдавать ПИН микроконтроллера не достаточен для работы ИК-светодиода - потребуется ключ на транзисторе.
Размещаем прототип напротив телевизора с приставкой
Решение полностью работоспособно, можно прикручивать WEB интерфейс для управления ТВ со смартфона, управлять голосом, жестами, хлопками - но это уже будет рассмотрено в следующих статьях. Не забываете подписываться на канал, чтобы увидеть продолжение.
Полный список статей доступен по этой ссылке:
Список всех статей канала ESP32 и Arduino
Всем удачи!