Программирование брелка 433 мгц

О работе пультов и радиомодулей на 433 МГц

18 сентября 2017 года.

В Интернете можно найти множество примеров использования радиоприемника 433 МГц в сочетании с Arduino. Обычно эти примеры ограничиваются чем-то вроде «давайте подключим библиотеку VirtualWire, используем несколько процедур из нее и бум, все волшебным образом работает». Очевидно, что такое положение дел меня не устраивает, поскольку я хотел бы знать, как именно эти модули общаются с Arduino и что именно они передают по воздуху. Давайте разберемся во всем!

Так выглядят классические радиомодули 433 МГц:

На рисунке слева — передатчик, справа — приемник. Эти модули используются для односторонней связи. Для двусторонней связи необходимы два приемника и два передатчика. На AliExpress набор из двух передатчиков и двух приемников обойдется вам примерно в 2 доллара с доставкой или даже дешевле.

Удивительно, но в пределах одной комнаты модули вполне сносно общаются без каких-либо антенн. Однако для лучшей работы лучше припаять к ним антенну. В качестве антенны можно использовать медный провод длиной 1/4 волны, что в нашем случае составляет около 17 сантиметров. Это будет так называемая штыревая антенна. В качестве альтернативы можно использовать цилиндрические спиральные антенны. Они намного короче стержневых антенн (4-15% длины волны), но имеют меньший радиус действия. Как вы можете видеть на фотографии, я выбрал стержневые антенны. Штыревая антенна и цилиндрическая спиральная антенна являются частными случаями монополя.

Забавный факт! Существуют и другие, но совместимые передатчики для 433 МГц, особенно первый и второй. Кроме того, существует альтернативный приемник. Но это не совсем совместимо, потому что он всегда выдает какой-то сигнал, независимо от того, происходит ли сейчас передача на самом деле или нет.

Для своих экспериментов я также использовал купленный на eBay пульт дистанционного управления для гаража с внутренним DIP-переключателем:

Если вам повезет, вы все еще можете найти такие пульты на eBay и AliExpress по запросу «garage door opener 433mhz with dip switch». Однако в последнее время им на смену пришли «программируемые» пульты, которые могут принимать и копировать сигналы других пультов. Доходит до того, что продавцы присылают пульты без DIP-переключателя, даже если это четко указано на фотографии и в описании товара. Также не стоит полагаться на то, что пульт похож на тот, которым пользовался я. Однако если вы решите повторить шаги из этой статьи, наличие или отсутствие DIP-переключателя не имеет значения.

Модули очень легко использовать в своих проектах:

И приемник, и передатчик имеют выводы VCC, GND и DATA. В приемнике вывод DATA повторяется дважды. Питание модулей осуществляется от напряжения 5 В. На рисунке слева показана схема, в которой светодиод подключен к контакту DATA приемника. Справа показана схема с передатчиком, вывод DATA которого подключен к кнопке и подтягивающему резистору. Для этого в обеих схемах используется стабилизатор LM7805. Это не может быть проще.

Забавный факт! Один из способов угона автомобилей или кражи ценностей из них — заглушить передатчик 433 МГц системы сигнализации, пока водитель устанавливает автомобильную сигнализацию. В спешке водитель может не заметить, что автомобиль не моргнул фарами, и оставить его без сигнализации. Приведенная выше схема с приемником и светодиодом на самом деле является достаточно полным устройством, определяющим, глушит ли кто-то соответствующие частоты.

При нажатии кнопки загорается светодиод. Если вы посмотрите на сигнал, создаваемый приемником, с помощью осциллографа, он будет выглядеть примерно так:

Вскоре после того, как вы отпустите кнопку, на мгновение появляется шум, а затем исчезает. Честно говоря, этот эффект мне не совсем понятен. Это может быть результатом дребезга контактов, или просто модули не рассчитаны на постоянную передачу сигнала.

Если вы пытаетесь нажать кнопки на пульте дистанционного управления, светодиод мигает. Форма волны примерно следующая:

Вы можете видеть четкое соответствие между полученным сигналом и положением DIP-переключателей на пульте дистанционного управления в сочетании с нажатой кнопкой. Это соответствие проиллюстрировано в таблице ниже, где точка представляет короткий сигнал на осциллограмме, а тире — длинный сигнал:

Как видно, каждый бит информации передается дважды. К сожалению, на данном этапе невозможно с уверенностью сказать, является ли это особенностью приемника или пилот действительно передает данные таким образом, например, для борьбы с помехами. Программно-определяемое радио может помочь нам понять, что на самом деле происходит в эфире. Я лично использовал LimeSDR, но в данном случае, я думаю, подойдет любое радио, включая RTL-SDR. Ранее SDR подробно рассматривался в статье «Начало работы с LimeSDR, Gqrx и GNU Radio».

Давайте запишем сигнал с помощью Gqrx и откроем полученный файл в Inspectrum:

Здесь мы видим те же короткие и длинные сигналы, которые нам показывал осциллограф. Кстати, такой способ кодирования сигнала называется On-Off Keying. Это, вероятно, самый простой способ передачи информации с помощью радиоволн, который только можно себе представить.

Используя GNU Radio, мы можем пойти немного дальше и построить график зависимости амплитуды сигнала от времени. Корреспондентский проект (исходные тексты на GitHub):

Запустите его, и на Scope Plot мы увидим:

Почти тот же сигнал, что и на осциллографе!

Как видите, копеечные радиомодули на частоте 433 МГц дают нам огромный простор для творчества. Они могут использоваться не только друг с другом, но и со многими другими устройствами, работающими на той же частоте. Они могут успешно использоваться в чисто аналоговых устройствах без микроконтроллера, например, с таймером 555. Вы можете реализовать собственные протоколы с контрольными суммами, сжатием, шифрованием и так далее, без ограничений, например, по длине пакета, как в случае с NRF24L01. Наконец, модули отлично подходят для отправки сообщений.

А какие замечательные применения для этих радиостанций приходят на ум?

Введение

Начну с того, что брелоки GSN бывают с динамическими и статическими кодами.
Их можно отличить по цвету корпуса.

  • Черные — это динамический код. Эта статья о них.
  • Серые — это статический код.

Брелоки GSN с динамическим (черный) и статическим (серый) кодами.

Описание брелка GSN TxRC09 с переменным кодом

Брелоки GSN TxRC09 выпускаются в черном цвете с динамическим кодом.

  • Совместим с приемниками ACS-101R, ACS-102R, ACS-112R, ACS-114R, ACS-124R, ACS-126R, ACS-144R, ACS-146R.
  • Пластиковый корпус.
  • Кодирование — переменная.
  • Частота 433,92 МГц.
  • Аккумулятор 23A, 12В.
  • Вес 26 грамм. С карабином.
  • Размер 50*38*14 мм. Без карабина.
  • Два канала. (TxRC10 — 4 канала).
  • Сделано в Израиле.
  • Дальность действия в прямой видимости до 500 метров.

Программирование оригинального брелока GSN TxRC09

Приемник ACS 114R

Запись для 101R, 102R будет другой.
Это устаревшие модели. Они не имеют кнопки SW2.
На всех остальных приемниках он аналогичен 114R.

Приемник GSN ACS114R работает с переменным кодированием. Совместим с пультами дистанционного управления TXRC09, TXRC10.

Сначала вам нужен доступ к приемнику, который представляет собой белую коробку размером 85*40*20 мм.
Из коробки выходит 19-сантиметровая проволочная антенна.
Вам необходимо снять крышку и получить доступ к кнопке SW2. Справа внизу на фотографии.

Инструкция по настройке

  1. Нажмите кнопку SW2 один раз. Светодиод, расположенный справа внизу на рисунке, выключается.
  2. Нажмите любую кнопку на пульте дистанционного управления один раз.
  3. Светодиод приемника мигает 1 раз.
  4. Вот оно. Назначены обе кнопки.

Не держите пульт дистанционного управления рядом с антенной. Сигнал сильный, а команда не проходит.
Желательно расстояние более 20 см.

Копирование брелоков TXRC09 (TXRC10)

Китайские дубликаторы

Недорогой и надежный. Легко настраивается.

Универсальные пульты дистанционного управления для копирования статического кода 433,92 МГц.

Записывает статический код на частоте 433,92 МГц.
Квартиры могут быть разными. См. фото.

Запись на универсальный пульт

Положение защелки при копировании брелока GSN на универсальный пульт дистанционного управления.

Инструкция

  1. Одновременно нажмите кнопки 1 и 2. Светодиод мигнет 3 раза.
  2. Удерживая одну из них, отпустите другую и нажмите 2 раза. Светодиод будет мигать.
  3. Отпустите кнопки. Все они готовы к записи.
  4. Выровняйте пульты.
  5. Нажмите и удерживайте кнопку, на которую вы хотите скопировать. Индикатор мигает один раз, а затем гаснет.
  6. Нажмите и удерживайте кнопку копирования.
  7. Когда индикатор нового устройства загорится ровным светом, запись будет завершена.
  8. Отпустите все кнопки.

Особенности использования скопированных брелков

Каждый ключ действительного оригинального GSN должен быть скопирован один раз.
Новый брелок, все его копии и любой другой будут работать безупречно.
Одно условие.
Запрещается использовать брелок GSN, с которого был взят код.
Если вы используете его один раз, дубликаты перестанут работать.
Вам придется программировать с самого начала.

Пример

Вам нужны 3 новых пульта дистанционного управления.
Купите 4 универсальных пульта дистанционного управления.
Создайте 1 рабочую копию GSN.
С этой копии вы пишете остальные 3 универсальные единицы.
В итоге вы получаете 4 рабочих дубликата.
Брелок GSN, с которого взят код, здесь не должен использоваться.

Видео инструкция

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

Привет всем, у меня на работе есть парковка. Конечно, цель этой статьи — не хвастовство, учитывая сложную ситуацию на дорогах с парковочными местами, не пиар моего руководства о том, как они заботятся о своих сотрудниках (я даже не буду упоминать свое рабочее место!), дело совсем не в этом. Дело в том, что мешает кому-то другому, не связанному с моим рабочим местом, припарковаться на этой парковке? И именно этот барьер ограничивает въезд и выезд с этой парковки.

И, как во многих организациях, вход в мою компанию осуществляется через простой пропуск, чтобы контролировать меня и всех остальных. Для въезда на парковку используются те же жетоны. То есть, вы подъезжаете к парковке, прикладываете пропуск к считывателю, пропуск срабатывает, шлагбаум открывается (закрывается автоматически), вы въезжаете и все. Они так и думали. Но мое увлечение электроникой и природная лень (надо что-то подтянуть, открыть окно, протянуть руку, закрыть окно, а если идет дождь, то холодный) пошли против зерен системы.

Итак, переходим к сути вопроса. Прежде всего, он выяснил, что барьером является довольно популярная компания Nice, и начал искать информацию о ней. Однако, несмотря на популярность компании-производителя, информации о форматах ее кодов было очень мало. Я узнал, что существуют 12-битные и 24-битные форматы. 12-битные — более древние, а 24-битные — более современные. Поскольку я знаю, что барьер для работы длинный, я решил начать с 12-битных кодов (догадался позже). Таким образом, пакет данных состоит из 12 битов. Перед 12-битным кодом имеется так называемый «пилотный период» и «стартовый импульс». «Пилотный период» состоит из 36 интервалов низкого уровня, «стартовый импульс» состоит из 1 интервала высокого уровня. Один пакет данных состоит из «пилотного периода», за которым следует «стартовый импульс», а затем 12-битный код (разный для каждого барьера). Барьеры передают 4 пакета данных за раз, но я ставлю больше, потому что многие устройства (особенно автомобильные сигнализации) работают на этой частоте и возможны помехи. Ширина импульса для барьеров Nice:

  • Логическая «1» — 1400 мкс низкий уровень (два интервала) и 700 мкс высокий уровень (один интервал)
  • Логический «0» — низкое состояние 700 мкс (один интервал) и высокое состояние 1400 мкс (один интервал)
  • «Период пилотирования» составляет 25200 мкс (36 интервалов)
  • «Стартовый импульс» — 700 мкс (один интервал)

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

С помощью чего, в любом случае, все это может быть реализовано? Мое недавнее увлечение платформами Arduino не дало мне много времени для размышлений над этим вопросом.

2. радиопередатчик 433 МГц и самодельная антенна для него,

3. батарейка 9 В, известная в народе как «Крона».

Эти радиопередатчики в известных китайских магазинах продаются очень дешево (около 50 рублей), вместе с радиоприемниками. Они очень просты, три контакта: питание, земля и сигнальный контакт. Они подают напряжение от 5 до 12 вольт, чем выше напряжение, тем лучше диапазон. По этой причине была выбрана батарейка 9 В. Рекомендуемое напряжение питания для Arduino Uno составляет от 7 до 12 В (вывод Vin), поэтому «Крона» подойдет. Кроме того, дальность действия радиопередатчика зависит от наличия антенны (без нее дальность действия составит около 1 метра). Весь комплект стоил около 300 рублей.

Вот, собственно, скетч для Arduino Uno:

Перебор всех вариантов занял около 1 недели, включая одну поездку в день к барьеру. Методология быстрого выбора нужного кода была очень простой. Используя команду micros(), я определил время передачи одного кода. Это длилось примерно 0,25 секунды. Общее время работы всех вариантов составило около 17 мин. Перед барьером я запустил Arduino и замерил время. Примерно на 12,5 минуте открылся шлагбаум. Исходя из этого, я сразу же отклонил первые 2800 опционов. И так далее. Когда осталось около 30 вариантов, я ввел задержку в 1 секунду после каждой передачи данных. Так как я установил контакт передачи данных 13 (с диодом), он был виден в каждый момент передачи, считал и определял точный код.

Вот и все! В качестве демонстрации — видео вскрытия:

Оцените статью
Добавить комментарий