Запись и воспроизведение произвольного сигнала 433Mhz

Здравствуйте

Подскажите можно ли записать, а затем воспроизвести сигнал китайских пультов на 433Mhz?

Пока нет.

Технически да. Выход D2 радиомодуля подключен к GPIO. Вопрос в том, чтобы кто-то взялся прикрутить к WB библиотеки типа RCSwitch. Планирую этим заняться, но позже (если никто меня не опередит :wink: )

Грабли могут оказаться в недостаточной производительности WB.

С производительностью проблем быть не должно, у нас есть ядерная поддержка (бывший lirc rpi) для этого. По крайней мере в своих тестах с обычными RC-сигналами ~1000бит/c проблем я не видел. Теоретически можно предположить, что бывает что-то чувствительное к таймингам, но обычно это не так.

А если попробовать прямо lirc и прикрутить? Скриптом правильно инициализируем радиомодуль и вперед? Для всяких китайских пультов с OOK модуляцией должно работать идеально?

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

Не знаю, должно, попробуйте. Я правда сам проверял только приём через DIO2.

Ух ты, если получится было бы супер.

Я, возможно, туплю, но одного модуля lirc_dev похоже мало. Это вроде базовый драйвер, а еще нужно платформозависимый, правильно работающий с соотв чипсетом.

Для той же Raspberri есть lirc_rpi.

Означает ли это, что нужно искать соотв модуль для IMX287 или портировать тот же lirc_rpi?

Мы портировали уже lirc_rpi, инструкции тут: И снова Oregon Scientiic

Я правильно понимаю, что для WB5 нужен другой dtb ?
В образе лежат imx23-wirenboard32-rfm69-raw.dtb и imx23-wirenboard41-rfm69-raw.dtb

для WB5 должно быть по-умолчанию включено кажется.

/dev/lirc0 отсутствует

Устройства lirc0, lirc1 появились. irrecord их видит, но как команды не воспринимает.

cat /dev/lirc0 показывает некий “мусор” при нажатии на пульт.

Так что на уровне оборудования в первом приближении все работает. Нужно думать что делать с софтом.

попробуйте команду mode2, irrecord это кажется не то.
Вот отсюда можно взять пример: http://contactless.ru/wiki/index.php/Consumer_IR

радио - это lirc0

Я очень давно последний раз настраивал lirc, но вывод mode2
space 5795021
pulse 12510
space 238730
pulse 156850
space 241778
pulse 12245
space 241696
pulse 8491
При нажатии кнопки мне кажется подозрительно коротким

ещё надо радиомодуль в особый режим перевести. Посмотрите скрипты по ссылке на форум, которую я выше давал.

Точно, про это я забыл.
Теперь с данными в lirc0 все отлично, но lirc не хочет их распознавать через irrecord. mode2 отлично показывает принимаемый сигнал.

Похоже самый быстрый путь прикрутить что-то типа rcSwitch. Для него есть декодеры для тучи китайских устройств. У меня есть пара пультов Livolo и библиотека для Arduino, которая их понимает. Попробую их приклеить к /dev/lirc0

UPDATE: Простые пульты реально привязать к lirc. Например, датчик движения X10 MS14A после некоторых ухищрений распознается Lirc’ом. Основная проблема в сильной замусоренности эфира. Вы пытаетесь кнопку пульта записать, а у соседа датчик от метеостанции решит температуру передать…

есть ещё pilight, оно даже умеет с lirc уже работать.
Там правда навешана куча всякой ненужной ерунды, так что его даже собрать нетривиально.

pilight это очередной home automation монстр :wink:

прикручивать его ради распознавания радиопультов - неочевидная идея
я разобрался как с /dev/lirc0 “снимать показания”
постараюсь в выходные скрестить какой-нибудь “комплект декодеров” с данными с /dev/lirc0
Дальше конструкция выглядит очень простой: мы правильно инициализируем rfm69, драйверу lirc-gpio говорим отдавать все в сыром виде и работаем примерно также, как сейчас работает текущий сервис, но с сигналом сильно лучшего качества.

На питоне кстати уже есть поддержка mode2 lirc, которую делали для прикручивания к нашему драйверу. Лежит в исходниках.