Инструменты пользователя

Инструменты сайта


iot:firmware:tasmota:nodemcu:devkitv1:esp32-wroom-32d:xnano:x1:remote:modernization

Пульт Apple TV для проектора Xnano X1

После добавления, сперва экрана, а потом и самого проектора в экосистему умного дома Apple, настал черед пульта дистанционного управления, благо наконец он дошел из Китая.

Комплектующие

  1. NodeMCU DevKit V1;
  2. ESP32-WROOM-32D;
  3. плата пульта LZN1005;
  4. оптопара 817, 14 шт.;
  5. резистор 47R, 14 шт.;
  6. светодиод 1.2 в;
  7. БП 5 в, 700 мА1);
  8. макетные платы;
  9. корпус пластиковый;
  10. двусторонняя лента;
  11. термоклеевой пистолет.

Аппаратная часть

Wi-Fi мост для пульта дистанционного управления проектором

Суть модернизации, как и во всех проектах этой серии, заключается в эмуляции нажатия кнопок. За это отвечает плата 817×16. Плата 817×1 нужна для сброса питания пульта, т.к. он не отличается стабильностью…

Подготовка

Подготовка заключается в подпайке проводов или шлейфа к микросхемам на плате пульта управления и сборке двух плат-адаптеров.

LZN1005

На плате LZN1005 нужно:

  1. снять инфракрасный светодиод и контактные площадки батареек,
  2. перепаять красный SMD-светодиод на DIP-светодиод такого же номинала2),
  3. припаять отводы от ножек 7 и 8 микросхемы C2TH2218,
  4. припаять отводы от ножек 3-6 и 10-13 микросхемы 74HC164D,
  5. залить термоклеем.
Таблица

Исходная таблица соответствия кнопок выводам микросхем 74HC164D и C2TH2218.

74HC164D
3 4 5 6 10 11 12 13
C2TH2218 7 POWER UP LEFT DOWN MIC VOL+ VOL- HOME
8 MUTE OK RIGHT BACK MENU SOURCE SET MOUSE

К примеру, при замыкании контакта 8 на микросхеме C2TH2218 и контакта 6 на 74HC164D, сработает клавиша «BACK», а, соответственно, 7 и 13 – «HOME».

817x16

Это основная плата-коммутатор. Собирается на макетной плате 3×7 см. Распаивать можно только те соединения, которые будут использоваться – к примеру, я не распаивал кнопки «POWER», «SOURCE» и «MIC» т.к. они мне не нужны, соответственно, ни оптопары, ни обвязки там нет. Более добавить нечего, все видно на схеме и фотографиях.

Принципиальная схема крупно.

817x1

Т.к. плата LZN1005, ни в одной из имеющихся у меня ревизий, не отличается бесперебойностью работы, я заранее предусмотрел модуль сброса питания платы… который, как выяснилось в процессе последующей эксплуатации, работает только, когда пульт не находится в спящем режиме – в спящем режиме ему хоть бы хны! :-\ Что, в общем, использованию модуля по прямому назначению совершенно не мешает!

Соединения

Сводная таблица по соединениям.

Function NodeMCU3) (ESP32) 817×16 817×1 74HC164D C2TH2218 LZN1005
MUTE D32 (GPIO32) A05
UP D23 (GPIO23) F06
OK D33 (GPIO33) D05
LEFT D22 (GPIO22) I06
RIGHT D25 (GPIO25) G05
DOWN D21 (GPIO21) L06
BACK D26 (GPIO26) J05
MENU D27 (GPIO27) M05
VOL+ D19 (GPIO19) R06
VOL- D18 (GPIO18) U06
SET D14 (GPIO14) S05
HOME D4 (GPIO04) X06
MOUSE D13 (GPIO13) V05
POWER/MUTE C05 3
UP/OK F05 4
LEFT/RIGHT I05 5
DOWN/BACK L05 6
MIC/MENU O05 10
VOL+/SOURCE R05 11
VOL-/SET U05 12
HOME/MOUSE X05 13
08 7
03 8
3V3 X01
GND M10
RCU RESET D15 (GPIO15) X10
M01 VBAT+1
M09 VBAT-1

Программная часть

В приложении «Пульт Apple TV»4), в режиме совместимости, т.е. без поддержки Apple AirPlay 2, которой тут конечно же нет, очень мало кнопок и все кнопки физического пульта там не помещаются. Поэтому был придуман «второй слой» кнопок, который вызывается по нажатию кнопки «i» на пульте. Подробнее ниже.

Фактически, кнопка «INFO» переключает группы правил, размещенных в «Rule1» и «Rule2».

Прошивка

Web-инсталлятор Tasmota

Прошивать в данном случае5) удобнее через веб-установщик Tasmota:

  1. подключить плату к USB;
  2. выбрать релиз «Tasmota RU»;
  3. выбрать платформу «ESP32»;
  4. нажать «Connect»;
  5. выбрать «Erase device»;
  6. нажать на плате кнопку «BOOT»;
  7. на сайте нажать «Install»;
  8. отпустить кнопку «BOOT».

:!: Помимо прошивки, веб инструменты могут показать консоль, подключить к Wi-Fi и что-то еще… В общем, как оказалось, намного более удобный инструмент, чем Tasmotizer.

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

Кнопки пульта управления в web-интерфейсе

  1. Шаблон6)

    Backlog Template {"NAME":"Xnano LZN1005","GPIO":[0,0,576,0,235,0,0,0,0,236,234,269,0,0,232,231,0,226,227,225,0,228,230,233,0,0,0,0,224,229,0,0,7584,0,0,7585],"FLAG":0,"BASE":1}; Module 0
  2. название

    Backlog DeviceName Projector Remote; FriendlyName1 Пульт проектора
  3. группировка топиков

    Backlog Topic remote_%06X; FullTopic projector/%topic%/%prefix%/
  4. настройка MQTT

    Backlog MqttHost 192.168.XXX.XXX; MqttPort 1883; MqttUser RGEHrther; MqttPassword 34g34g3gffsd; SetOption3 1
  5. настройки по мелочи7)

    Backlog Timezone +10:00; TelePeriod 0; SetOption128 0; SetOption146 1
  6. названия кнопок в web-интерфейсе

    Backlog WebButton1 Mute; WebButton2 Up; WebButton3 Down; WebButton4 Left; WebButton5 Right; WebButton6 Ok; WebButton7 Back; WebButton8 Vol+; WebButton9 Vol-; WebButton10 Menu; WebButton11 Set; WebButton12 Home; WebButton13 Mouse; WebButton14 Reset
  7. время сброса реле

    Backlog PulseTime1 1; PulseTime2 1; PulseTime3 1; PulseTime4 1; PulseTime5 1; PulseTime6 1; PulseTime7 1; PulseTime8 1; PulseTime9 1; PulseTime10 1; PulseTime11 1; PulseTime12 1; PulseTime13 1; PulseTime14 20

Правила

  1. Основные функции пульта8)

    Rule1
    ON Event#GetKey=SELECT DO Power6 1 BREAK
    ON Event#GetKey=UP DO Power2 1 BREAK
    ON Event#GetKey=DOWN DO Power3 1 BREAK
    ON Event#GetKey=LEFT DO Power4 1 BREAK
    ON Event#GetKey=RIGHT DO Power5 1 BREAK
    ON Event#GetKey=BACK DO Power7 1 BREAK
    ON Event#GetKey=PLAY_PAUSE DO Power6 1 BREAK
    ON Event#GetKey=VOLUME_UP DO Power8 1 BREAK
    ON Event#GetKey=VOLUME_DOWN DO Power9 1 BREAK
    ON Event#GetKey=INFO DO Event ChangeLayer=5 BREAK
  2. дополнительные функции пульта

    Rule2
    ON Event#GetKey=SELECT DO Backlog Power6 1; Event ChangeLayer=1 BREAK
    ON Event#GetKey=UP DO Power8 1 BREAK
    ON Event#GetKey=DOWN DO Power9 1 BREAK
    ON Event#GetKey=LEFT DO Backlog Power10 1; Event ChangeLayer=1 BREAK
    ON Event#GetKey=RIGHT DO Backlog Power11 1; Event ChangeLayer=1 BREAK
    ON Event#GetKey=BACK DO Event ChangeLayer=1 BREAK
    ON Event#GetKey=PLAY_PAUSE DO Backlog Power14 1; Event ChangeLayer=1 BREAK
    ON Event#GetKey=VOLUME_UP DO Backlog Power1 1; Event ChangeLayer=1 BREAK
    ON Event#GetKey=VOLUME_DOWN DO Backlog Power1 1; Event ChangeLayer=1 BREAK
    ON Event#GetKey=INFO DO Backlog Power13 1; Event ChangeLayer=1 BREAK
  3. инициализация

    Rule3
    ON Event#ChangeLayer DO Backlog Rule1 2; Rule2 2; PulseTime6 %value% ENDON
    ON Mqtt#Connected DO Subscribe GetKey, projector/remote_DEEBB4/cmnd/REMOTE ENDON
    ON System#Init DO Backlog Rule2 0; Rule1 1; PulseTime6 1 ENDON
  4. включение правил9)

    Backlog Rule1 1; Rule3 1

Функции

Таблица соответствия функций проектора и моста с кнопками в приложении «Пульт Apple TV»:

Пульт Apple TV

Кнопка Функция
Основная Дополнительная
Громкость «+» Увеличение громкости Выкл./вкл. звук
Громкость «-» Уменьшение громкости Выкл./вкл. звук
Вверх Навигация вверх Увеличение громкости
Вниз Навигация вниз Уменьшение громкости
Влево Навигация влево Меню приложения
Вправо Навигация вправо Настройки системы
Выбор Навигация – выбор Выбор (долгое нажатие)
Старт/стоп Навигация – выбор Сброс питания пульта
Назад Навигация назад Основные функций
Инфо Дополнительные функции Вкл./выкл. режим «мышь»

Основные функции доступны сразу после запуска приложения, а дополнительные – после нажатия кнопки «i». Выход из режима дополнительных функций осуществляется автоматически после нажатия на любую кнопку, кроме увеличения и уменьшения громкости. Для выхода из режима после настройки громкости или вообще без нажатия на другие функциональные кнопки, используется кнопка «НАЗАД».

:!: Кнопки громкости продублированы, т.к. штатные кнопки доступны не всегда и не везде! Мало того, они то есть, то их нет на одном и том же телефоне! Пока не понял закономерности…

Интеграция

Отдельной интеграции не имеет и использует ключ «setRemoteKey» в аксессуаре «television».

Демонстрация

Версии пультов

В комплекте с проектором X1 мне пришел пульт LZN1005V1.210) с датой 20220913, который то и дело переставал работать вплоть до сброса питания путем вытаскивания батарейки. Китайцы прислали мне второй пульт, уже LZN1005V1.0 от 20220709, но он, как показала практика, работает еще менее стабильно, т.е. значительно чаще отваливается! Вот так вот и вот думаю… написать что ли китайцам очередную претензию… LOL

Сторона с компонентами крупно.

Насколько я разглядел, разводка плат особо не отличается, микросхемы одни и те же…

:!: Но, что интересно, тестируя уже четвертый день свой колхоз, описанный в этой статье, пульт ревизии 1.2, запитанный от стабильных 3V3, ведет себя прекрасно и пока ни разу11) не отваливался!


Дисклеймер

  • Использование материалов данной базы знаний разрешено на условиях лицензии, указанной внизу каждой страницы! При использовании материалов активная гиперссылка на соответствующую страницу данной базы знаний обязательна!
  • Автор не несет и не может нести какую либо ответственность за последствия использования материалов, размещенных в данной базе знаний. Все материалы предоставляются по принципу «как есть». Используйте их исключительно на свой страх и риск.
  • Все высказывания, мысли или идеи автора, размещенные в материалах данной базе знаний, являются исключительно его личным субъективным мнением и могут не совпадать с мнением читателей!
  • При размещении ссылок в данной базе знаний на интернет-страницы третьих лиц автор не несет ответственности за их техническую функциональность (особенно отсутствие вирусов) и содержание! При обнаружении таких ссылок, можно и желательно сообщить о них в комментариях к соответствующей статье.
1)
Или, как в моем случае, когда кончились блоки питания, USB провод и зарядка.
2)
Для понимания, смотрите фото платы в боксе ниже.
3)
Хорошая статья по выводам ESP32 (копия в PDF).
4)
Для доступа к которому необходимо добавить его в настройках «Пункта управления».
5)
Да и, похоже, уже во всех остальных…
6)
«HallEffect» на GPIO36 и 39 включает встроенный датчик Холла, измеряющий величину магнитного поля.
7)
«SetOption146» включает встроенный датчик температуры.
8)
В консоль можно вставлять, как есть, с переносами.
9)
«Rule2» по умолчанию должен быть выключен!
10)
Еще на нем есть маркировка «HYX14456», которой нет на версии 1.0, к слову.
11)
Тьху-тьху-тьху!!!

Обсуждение

Ваш комментарий:
G L W U N G᠎ X F J T᠎ T S U J D L
 
Последнее изменение: 2023/08/31 21:16 — Николай Солошин