Чтение с модуля Rf-считывателя 315 МГц / 433 МГц с Raspberry Pi GPIO

Итак, у меня есть 3-контактный модуль радиочастотного считывателя 315/433 МГц, который я подключил к своему Raspberry Pi 2. 2 контакта предназначены для напряжения и заземления, а третий - для контакта GPIO, настроенного в качестве входа.

Я действительно заставил все это работать просто отлично. Я могу читать данные вручную с вывода GPIO, просто получая доступ к файлу

/sys/class/gpio/gpio23/value

Я даже могу поставить автомобильную клавишу рядом с приемником, нажать кнопку и увидеть, как значения меняются от 0 до 1.

Проблема в том, что я не могу понять, как читать часы, поэтому я не могу понять, должно ли быть несколько единиц или нулей в строке в данных, которые они читают. Кажется, я не могу найти отметку времени, чтобы увидеть, когда было прочитано последнее значение.

Как я могу правильно прочитать данные, которые получает модуль?

2 ответа

Есть два распространенных протокола, используемых любителями радиовещания на частоте 315/434 МГц (о которых я знаю).

Устройства дистанционного управления типа брелока имеют тенденцию использовать Манчестерское Кодирование.

Общая передача данных с использованием протокола Virtual Wire (популярно у Arduinos).

В моей библиотеке pigpio есть реализация Python Virtual Wire и пример манчестерского кодирования C/ Python keyfob (для получения и передачи).

Ваш RF-ридер должен выводить последовательные данные с некоторой известной скоростью передачи (проверьте руководство?), предполагая, что вы не подключили их к выделенным последовательным выводам, на которые вы могли бы смотреть, используя библиотеку pigpio, в частности, для последовательных команд битовой синхронизации здесь Python или здесь для C/C++ или здесь для каналов

Это позволяет использовать любой вывод GPIO для чтения последовательных данных, а библиотека имеет привязки для нескольких методов использования, как показано в ссылках выше.

Другие вопросы по тегам