среда, 27 июля 2022 г.

Crestron и ESP8266 приём ИК команд (Arduino IDE)

Была задача:

Принимать инфракрасные команды при помощи ESP8266 (у меня была версия Node MCU v3) и посылать результат в Crestron.


Краткое описание функционала:

Настраиваем подключение ESP к WiFi, поднимаем TCP сокет, принимаем ИК команду и посылаем её в TCP сокет.




Подробнее:

Подключаем наверно любой ИК приёмник, похожий как на фото. 

При помощи библиотеки IRrecv, принимаем ИК команду с любого пульта и получаем в переменную results.value значение в uint64. И по идее её надо отправить в TCP сокет при помощи команды client.write(value), но эта функция не кушает данные типа long long integer.

    Пробовал по всякому, но наиболее приемлемый способ оказался такой:

        Получаем ИК команду E0E020DF (11100000 11100000 00100000 11011111) - 4 байта.

        Забираем каждые пол байта каждый в свою переменную: 

            1110 0000 1110 0000 0010 0000 1101 1111

            E      0        E      0      2        0       D      F 

        Создаём функцию, где сравниваем полученные пол байта с цифрами 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. И если равно, то возвращаем результат в char.

        Например: если полученное = 1, то вернуть '1'; если полученное = 13, то вернуть '13'.

        Важно писать в одинарных кавычках, что означает "вернуть значение в char, а не в string".

        Складываем все сконвертированные char'ы в переменную hex3.

        И шлём в TCP сокет client.write(hex3).


В Крестроне настраиваем TCP клиент на IP адрес ESP, на порт, указанный в скетче.

Сравниваем полученную команду с той которая нам нужна. Например E0E020DF - кнопка "1" пульта от Samsung телевизора. И если равно, то переключаем одно из реле процессора.


Код скетча для ESP8266 в Arduino IDE: github.com/Bagunda/ESP8266_IR_to_TCP/blob/main/ESP_TCP_Server.ino


Крестроновская программа: github.com/Bagunda/ESP8266_IR_to_TCP/blob/main/TCPclientESP_IR.smw




Диденко Александр. t.me/Bagunda 

понедельник, 25 июля 2022 г.

WyreStorm NetworkHD 400 краткий обзор

 

К передатчику подключаем по HDMI AppleTV, спутниковый ресивер или что-то подобное, которое например находится в серверной.

Приёмник соединяем с телевизором по HDMI.




Контроллер нужен обязательно, если подключение NHD не Точка-точка.

Всё управление происходит через контроллер. Напрямую NHD не управляются. Веб и другого интерфейса нет.

По адресу ip/stream можно брать поток для предпросмотра. Качество среднее, примерно 1 кадр в секунду.

Перезагрузка происходит в течении 45 секунд.

Соединение приёмника с передатчиком происходит от 7 до 15 секунд через фриз картинки.


Изменение полосы пропускания при режиме качества видео - 0 (лучшее качество) (выставляется в Network series console).

Слева выставленное качество, справа скорость на порту, показанное в веб админке коммутатора.

10М - 2900 кБ/с

50М - 3333 кБ/с

100М - 6000 кБ/с

150М - 11000 кБ/с

200М - 13500 кБ/с

В режиме "авто" показатели сильно лучше. 20000, 40000, а в некоторых случаях 95000 (это около 800Мбит/с).

Источник - AppleTV не 4к:

При 200М видео как-будто превращается в 20 кадров в секунду и в картинке появляется шум (качество теряется).

Когда на приёмнике NHD выставил качество UHD 2160p30, то кадры стали пропадать редко. Но сочность (контрасность) картинки ухудшается. Как будто пропадает HDR.

Если на приёмнике выставить FHD 1080p60, то сочность не пропадает, но появляется шум и 20 кадров в секунду


Если подсунуть определённые Edidы, AppleTV вещает звук 5.1, а у телевизора только 2 канала. И через WyreStorm пропадает звук центрального канала, где голоса героев. Остаётся звук спецэффектов.


IR можно пробрасывать и маршрутизировать. IR команды можно посылать приёмнику через telnet контроллера.

ИК передаёт с приёмника на передатчик только со своим ИК-приёмником. Мы вставляли от Триколор - не заработало.

Кирилл смог добиться того, что посылает команды с процессора Crestron в физический ИК процессора, оттуда соединено проводом с NHD передатчика в порт ИК приёмника. То есть туда, куда должен вставляться ИК приёмник в NHD - он туда вставил провод от процессора Крестрон, идущий из порта ИК передатчика.


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


С Кирилова NVidia шилда по HDMI в 4к показывает как будто сжимая цвет, HDR, субпиксели (градиент ступенчатый становится). А с ноутбука как-то нормально передаётся, но с затемнением.


Проброс RS232 не работает. Только посылка команд в консоле или с Крестроновского модуля.


В консоле контроллера команда ИК выглядет так:

infrared "0000 006d 0022 0003 00a9 00a8 0015 003f 0015 003f 0015 003f 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 003f 0015 003f 0015 003f 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 003f 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0015 0015 003f 0015 003f 0015 003f 0015 003f 0015 003f 0015 003f 0015 0702 00a9 00a8 0015 0015 0015 0e6e" OUT1-Samsung


В консоле команда для соединения передатчика с приёмником выглядит так:

matrix set NvidiaShield Samsung


В консоле команда для соединения ИК передатчика (с именем Dante) с приёмником с именем Samsung: 

matrix infrared set Dante Samsung


Получить информацию о маршрутизации ИК (получаем с передатчика):

matrix infrared get IN1-NvidiaShield


Послать CEC команду на включение телевизору Samsung (могу ошибаться в FF4441, сейчас уже не посмотреть):

cec "FF4441" OUT1-Samsung

Ещё через CEC кроме вкл/выкл можно включать определённый источник. Например HDMI1, HDMI2, HDMI3, TV. И это очень и очень хорошо. От глазка уже можно отказаться в некоторых случаях. И Samsung'у слать данные через локальную интеграцию с Home Assistant, которая может быть соединена с Crestron. Я делал объекты на такой интеграции.


При простое можно выводить любую jpeg картинку размером до 1.2Мб. При перезагрузке вместо надписи WyreStorm можно выводить любую другую картинку.

Многочисленные всякие ребуты и переподключение витой пары - вполне надёжно возвращают картинку.

Проблем с работы по POE замечено не было.


HDMI выход на этих устройствах полностью зеркалит то что на входе в это же устройство.

Звук Audio Out, есть на каждой железке. В этом разъёме тот же звук, что и в HDMI. Там нету DownMix. Если звук идёт 5.1, то в этом разъеме jack_3.5 нету звука центрального канала где все голоса героев. Звук берётся с боковых каналов.

На передатчике NHD-400-Dante есть Audio вход jack_3.5. В настройках можно выставить какой звук передавать с передатчика - или HDMIный или который с jack_3.5. Если 3.5, то этот звук передаётся в HDMI и в Audio Out.


Можно добиться работоспособности даже по 100 мегабитному подключению. Это примерно 1080 30Гц. Оборудование само подстроит качество в режиме "авто". Или самому жестко задать расширение и битрейт.


Коммутатор был Zyxel XGS2210-28HP/


Диденко Александр. +79057323066. vk.com/bagunda, telegram: @bagunda 












суббота, 6 октября 2007 г.

First post

Первое мое сообщение. Привет всем