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

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


iot:firmware:tasmota:ai-thinker:esp-01s:xnano:x1:modernization

Модуль «BMC» для проектора Xnano X1

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

На данном этапе было реализовано только включение1) и выключение его по голосовой команде Siri и из приложения «Дом». Поэтому, собственно, в названии статьи и фигурирует аббревиатура «BMC», т.к. в выключенном состоянии проектор в сети ни как не присутствует и нужно что-то внешнее, что будет его будить. ;-)

Плюс, организовано опускание и поднятие экрана в зависимости от состояния проектора – проектор включается, экран опускается и наоборот.

На следующем этапе планируется подключение к приложению «Пульт Apple TV» для полноценного управления проектором с iPhone. Но, для этого требуется рабочий пульт от проектора2)

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

  1. Wi-Fi модуль ESP-01S;
  2. энергомонитор INA2263);ESP-01S, INA226 и AMS1117
  3. стабилизатор 3.3 в.4);
  4. оптопара 817B, 1 шт.;
  5. резистор 22R, 1 шт.;
  6. резистор 10K, 1 шт.;
  7. резистор 2512 3 Вт. R010;
  8. радиатор ~10×10;
  9. макетная плата;
  10. двусторонняя лента;
  11. каптоновая лента.

:!: Естественно, для прошивки ESP-01 нужен UART-USB программатор с питанием 3.3 в!

Подготовка

Сборка

Для работы энергомонитора, необходимо собрать прошивку с поддержкой драйвера «INA226»5):

#ifndef USE_INA226
#define USE_INA226
#endif

Подключение

Вся, необходимая для работы и прошивки, обвязка уже присутствует на платах модуля и программатора, необходимо только правильно соединить:

ESP-01 UART
3V3 3V3
EN
GND GND
IO0
RX TXD
TX RXD

Прошивка

Процедура прошивки стандартная, описана тут6).

Модернизация

Суть модернизации, как и в случае с экраном, заключается в эмуляции Wi-Fi модулем нажатия физической кнопки на проекторе. Как говорится, просто и со вкусом!

Обратная же связь основывается на работе лампы проектора – когда лампа загорается, значит проектор включен и, соответственно, наоборот. Бонусом, можно видеть напряжение, ток и потребление светодиода7).

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

Это простая реализация задачи, как говорится, «в лоб» и с минимальными изменениями в конструкции самого проектора.

Энергомонитор

Для начала, на модуле INA226 нужно заменить чип резистор R100 на R010, т.к. заводской номинал не будет показывать ток больше ~800 мА., а в нашем случае заранее известно, что ток будет больше! Делается это паяльником за несколько минут, но да, феном «профессиональнее»8).

:!: Кстати, чип резисторы типоразмера 2512 бывают разной толщины и, соответственно, мощности9)!

Далее нужно очистить дорожки между колодцами и резистором от лака, чтобы потом усилить их припоем. Это делается для надежности, т.к., не взирая на то, что они у INA226 заметно толще, чем у INA219, заводской резистор не предполагает использование этого монитора с такими токами!

Ну и в конце необходимо припаять его в разрыв цепи положительной полярности, причем вывод «IN+» должен быть соединен с положительным выводом со стороны блока питания, а «IN-» – с анодом светодиода10)! Также нужно хорошо пропаять очищенные ранее дорожки.

Плата-адаптер

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

Если перевернуть первую фотку на 180° получается:

Схема Плата11)
RX S1
GND T1-T2-U1-U2
VSS12) S3-S4-T3-T4-U3-U4
B1 U5

Кнопка питания

Осталось подпаяться одним проводом к кнопке питания проектора со стороны контроллера на соответствующей плате.

Подключения

ESP-01S INA226 JC817 AMS1117 Xnano X1
3V3, EN VCC VOUT+
GND GND GND13) GND- GND
RX RX14)
B115) Bt1
TX SDA
IO0 SCL
IN+, VBS +30 (PSU)
IN- Anode (LED)
VIN+ +12 (PSU)

В итоге все будет выглядеть как-то так.

:!: На фото нет, но на AMS1117 крайне желательно приклеить радиатор, т.к. на 12 вольтах он очень сильно греется, хотя за значения, указанные в технической спецификации, не выходит.

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

Ниже описан вариант реализации задачи с использованием «виртуального» переключателя, назначенного на неиспользуемый GPIO. Однако, эту же задачу можно реализовать более красиво с использованием команды «Subscribe», примерно, как тут.

Настройки

  1. Добавляем шаблон и активируем его

    Backlog Template {"NAME":"Xnano X1","GPIO":[608,640,576,224,0,0,0,0,225,0,0,0,0,0],"FLAG":0,"BASE":18}; Module 0
  2. переименовываем устройство

    Backlog DeviceName Projector; FriendlyName1 Проектор
  3. устанавливаем топик MQTT и группируем

    Backlog Topic projector_%06X; FullTopic projector/%topic%/%prefix%/
  4. настраиваем и включаем MQTT

    Backlog MqttHost 192.168.XXX.XXX; MqttPort 1883; MqttUser RGEHrther; MqttPassword TRH45yg34; SetOption3 1
  5. настраиваем монитор INA226

    Backlog Sensor54 11 0.01; Sensor54 12 3; Sensor54 13 40.96; Sensor54 2

    :!: Без этих настроек, модуль INA226, или не будет виден в системе, или будет отображаться, как INA219!

  6. настраиваем кнопки

    Backlog PulseTime1 2; WebButton1 Кнопка; WebButton2 Питание; PowerOnState 0
  7. прочие настройки

    Backlog Timezone +10:00; TelePeriod 0; SetOption128 0

Правила

  1. Действия при запуске и переподключении

    Rule1
    ON Power1#Boot DO Var1 1 ENDON
    ON Mqtt#Connected DO Backlog Power1#State; Power2#State ENDON
  2. детектирование статуса проектора по статусу светодиода

    Rule2 ON INA226-1#Current>1 DO ADD1 1 ENDON ON INA226-1#Current<1 DO ADD1 2 ENDON

    :!: Это правило должно срабатывать единожды, т.е. нужно установить «Rule2 5»!

  3. логика работы кнопки и управления экраном

    Rule3
    ON Power2#State=1 DO ADD1 50 ENDON ON Power2#State=0 DO ADD1 60 ENDON
    ON Var1#State==51 DO Backlog Power1 1; Var1 1 ENDON
    ON Var1#State==61 DO Backlog Power1 1; Delay 30; Power1 1; Var1 1 ENDON
    ON Var1#State==2 DO Backlog Publish projector/screen_CF4CBF/cmnd/POWER4 1; Power2 1; Var1 1 ENDON
    ON Var1#State==3 DO Backlog Publish projector/screen_CF4CBF/cmnd/POWER4 0; Power2 0; Var1 1 ENDON
  4. настройка и включение правил

    Backlog Rule2 5; Rule1 1; Rule2 1; Rule3 1

Интеграция

Пример конфигурации Homebridge приведен тут.

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

1)
Т.к. на корпусе проектора нет части кнопок.
2)
Да, у меня тоже пульт постоянно виснет, китайцы новый отправили, жду…
3)
INA219 не подойдет, т.к. он измеряет только до 26 в.
4)
У меня завалялся на AMS1117, но не суть, главное, это входное напряжение не ниже 12 в.
5)
Т.е. вместо определения для «Subscribe», которое указано по ссылке, нужно использовать указанное тут ниже!
6)
Естественно, выбирать нужно не релиз, а собранную и скачанную прошивку!
7)
У меня это примерно 29 в. и 2,4 а.
8)
В кавычках, т.к. ради нескольких минут доставать из закромов фен…
9)
Да, да, желательно менять на «толстый».
10)
Положительный вывод.
11)
Первое отверстие «Q1», последнее «U6».
12)
Нет на схеме!
13)
Cathode (2), Emitter (3).
14)
Anode (1).
15)
Collector (4).

Обсуждение

Ваш комментарий:
K E M T H X P M A I H V​ H P I E
 
Последнее изменение: 2023/08/31 21:19 — Николай Солошин