Всем привет! У меня на работе есть автомобильная парковка. Конечно, цель данной статьи не хвастовство, учитывая тяжелую ситуацию на дорогах с парковочными местами, и не пиар моего руководства о том, что они заботятся о своих сотрудниках (не буду даже упоминать о месте свой работы!), дело совершено не в этом. Суть в том, что мешает любому другому человеку, не имеющему отношения к месту моей работы, припарковаться на этой парковке? А это шлагбаум, ограничивающий въезд и выезд с этой парковки.
И как во многих организациях, вход на мое предприятие осуществляется по обыкновенным пропускам, дабы контролировать меня и всех остальных. Ну и въезд на парковку сделали также, по этим же пропускам. То есть подъезжаешь к парковке, подносишь пропуск к считывателю, он срабатывает, шлагбаум открывается (закрывается автоматически), заезжаешь и все. Так думали они. Но мое увлечение электроникой и природная лень (это ведь каждый раз подъезжать, открывать окно, вытаскивать руку, закрывать окно, а если дождь, а если холодно) пошли против системы.
Итак, ближе к делу. Прежде всего, узнал, что шлагбаум оказался довольно-таки популярной фирмы Nice и начал искать о нем информацию. Однако, несмотря на популярность фирмы производителя, информации о его форматах кодов было очень мало. Выяснилось, что существуют 12-битные и 24-битные форматы кодов. 12-битные более древние, 24-битные – посовременней. Так как я знаю, что шлагбаум на работе стоит давно, решил начать с 12-битных кодов (впоследствии угадал). И так пакет данных состоит из 12 бит. Перед 12-битным кодом идет, так называемый, «пилотный период» и «стартовый импульс». «Пилотный период» состоит из 36 интервалов низкого уровня, «стартовый импульс» состоит из 1 интервала высокого уровня. Один пакет данных состоит из «пилотного периода», за ним «стартовый импульс» и за ним 12-битный код (для каждого шлагбаума свой). Пульты шлагбаумов передают сразу по 4 пакета данных, но я поставил больше, так как очень много устройств работают на данной частоте (в частности автомобильные сигнализации) и возможны помехи. Длительности импульсов для шлагбаумов Nice:
- Логическая «1» – 1400 мкс низкого уровня (два интервала) и 700 мкс высокого (один интервал)
- Логический «0» – это 700 мкс низкого уровня (один интервал) и 1400 мкс высокого (один интервал)
- «Пилотный период» – 25200 мкс (36 интервалов)
- «Стартовый импульс» – 700 мкс (1 интервал)
С помощью чего, вообще, все это можно реализовать? Недавнее мое увлечение платформами Arduino, не дали мне долго размышлять над этим вопросом.
Список компонентов:
1. Arduino Uno,
2. Радиопередатчик 433Мгц, самодельная антенна к нему,
3. Батарейка 9 вольт, в народе «Крона».
Данные радиопередатчики в известных китайских магазинах продаются очень дешево (порядка 50 руб.), совместно с радиоприемниками. Они очень простые, три контакта: питание, земля и сигнальный контакт. Питания от 5 до 12 вольт, чем выше напряжение питания, тем лучше дальнобойность. Собственно по этой причине была выбрана 9 вольтовая батарейка. Рекомендованное напряжения питания Arduino Uno от 7 до 12 вольт (контакт Vin), так что «Крона» вполне подходит. Также дальнобойность радиопередатчика зависит от наличия антенны (без нее дальность будет около 1 метра). Весь комплект обошелся порядка 300 руб.
Вот, собственно, и сам скетч для Arduino Uno:
Int send_code_pin = 13;
//int send_code = 3061; это код определенный методом перебора для моего шлагбаума
void setup()
{
pinMode(send_code_pin, OUTPUT);
}
void loop ()
{
for (int send_code = 0; send_code < 4096; send_code++) // этот цикл после того как код определен необходимо убрать
{
for (int j = 0; j <7; j++) // достаточно 4-х, но из-за помех поставил 7
{
digitalWrite(send_code_pin, HIGH); // стартовый импульс
delayMicroseconds(700);
digitalWrite(send_code_pin, LOW);
for (int i = 12; i > 0; i--)
{
boolean bit_code = bitRead(send_code, i - 1);
if (bit_code)
{
digitalWrite(send_code_pin, LOW); // единица
delayMicroseconds(1400);
digitalWrite(send_code_pin, HIGH);
delayMicroseconds(700);
}
else
{
digitalWrite(send_code_pin, LOW); // ноль
delayMicroseconds(700);
digitalWrite(send_code_pin, HIGH);
delayMicroseconds(1400);
}
}
digitalWrite(send_code_pin, LOW); // пилотный период
delayMicroseconds(25200);
}
}
//delay(10000); после определения кода поставить задержку
}
Перебор всех возможных вариантов занял около 1 недели, с учетом одного выхода в день к шлагбауму. Методика быстрого выбора правильного кода была очень простой. С помощью команды micros()
определил время передачи одного кода. Он составил примерно 0,25 сек. Общее перебора всех вариантов около 17 мин. Перед шлагбаумом запустил Arduino и засек время. Где-то на 12,5 минуте открылся шлагбаум. Исходя из этого, я отбросил сразу первые 2800 вариантов. И так далее. Когда вариантов осталось около 30, после каждой передачи данных ставил задержку в 1 секунду. Так как контакт передачи данных я установил 13-ым (со светодиодом), было видно каждый момент передачи, подсчитал и определил точный код.
Вот и все! В качестве демо - видео вскрытия.
Я уже писал про использование приемников и передатчиков работающих в диапазоне 433 МГц применительно к своим поделкам. В этот раз хотелось бы сравнить их разные вариации и понять есть ли между ними разница, и какие предпочтительней. Под катом конструирование тестового стенда на базе arduino, немного кода, собственно, тесты и выводы. Любителей электронных самоделок приглашаю под кат.
Лежат у меня разные приемники и передатчики данного диапазона, решил обобщить и классифицировать данные устройства. Тем более, что в конструировании устройств без радиоканала обойтись довольно сложно, особенно если поделка не должна находиться в стационарном положении. Кто-то возможно возразит, что сейчас довольно немало решений на wi-fi и стоит использовать их, однако, отмечу что не везде их использование целесообразно, к тому же иногда не хочется мешать себе и соседям занимая столь ценный частотный ресурс.
В общем, это все лирика, перейдем к конкретике, сравнению подлежат следующие устройства:
Самый распространенный и дешевый комплект передатчика и приемника:
Купить можно, например, стоит $0.65 за приемник вместе с передатчиком. В моих прошлых обзорах использовался именно он.
Следующий комплект позиционируется как более качественный:
Продается за $2.48 в комплекте с антеннками пружинками для данного диапазона.
Собственно предмет обзора, продается отдельно в виде приемника:
Следующее устройство участвующее в данном мероприятии является передатчиком:
Где конкретно я его купил - не помню, впрочем, не так важно.
Для того чтобы обеспечить равные условия всем участникам припаяем одинаковые в виде спирали:
Также, я припаял выводы для вставки в макетку.
Для экспериментов потребуются две отладочные платы arduino (я взял Nano), две макетные платы, провода, светодиод и ограничивающий резистор. У меня получилось так:
Для тестов я решил использовать библиотеку , ее нужно распаковать в каталог "libraries" установленной среды arduino IDE. Пишем нехитрый код передатчика, который будет стоять стационарно:
#include
Пин данных передатчиков будем подключать к выходу 10 arduino. Передатчик будет каждые 5 секунд посылать в эфир цифру 5393.
Код приемника немного более сложный, из-за подключения внешнего диода через ограничительный резистор к выводу 7 arduino:
#include
Приемник подключен к выводу 2 arduino Nano (в коде используется mySwitch.enableReceive(0), так как вход 2 соответствует 0-му типу прерывания). Если принята та цифра которая отправлялась, то на секунду мигнем внешним диодом.
Благодаря тому, что все передатчики имеют одинаковую распиновку, в ходе эксперимента их можно будет просто менять:
У приемников ситуация аналогична:
Для обеспечения мобильности приемной части я использовал пауэр банк. Первым делом, собрав схему на столе, убедился, что приемники и передатчики работают в любом сочетании друг с другом. Видео теста:
Как видно, из-за малой нагрузки пауэр банк через некоторое время отключает нагрузку, и приходится нажимать кнопку, это тестам не помешало.
Вначале про передатчики. В ходе эксперимента выявлено, что разницы между ними нет, единственное, безымянный, маленький подопытный работал немного хуже своих конкурентов, вот этот:
При его использовании расстояние уверенного приема сокращалось на 1-2 метра. Остальные передатчики работали абсолютно одинаково.
А вот с приемниками все оказалось сложнее. Почетное 3-е место занял приемник из этого комплекта:
Он начал терять связь уже на 6 метрах в пределах прямой видимости (на 5 метрах - при использовании аутсайдера среди передатчиков)
Второе место занял участник из самого дешевого комплекта:
Уверненно принимал на 8-ми метрах в пределах прямой видимости, 9-ый метр осилить не удалось.
Ну и рекордсменом стал предмет обзора:
Доступный участок прямой видимости (12 метров) оказался для него легкой задачей. И я перешел к приему через стены, итог 4 капитальные бетонные стены, при расстоянии порядка 40 метров - он принимал уже на грани (шаг вперед прием, шаг назад светодиод молчит). Таким образом, предмет обзора однозначно могу рекомендовать к покупке и использованию в поделках. При его использовании можно при равных расстояниях снижать мощность передатчика, либо при равных мощностях увеличивать расстояние уверенного приема.
Согласно рекомендациям, увеличить мощность передачи (а следовательно и расстояние приема) можно повышая напряжение питания передатчика. 12 Вольт позволило увеличить исходное расстояние на 2-3 метра в пределах прямой видимости.
На этом заканчиваю, надеюсь информация окажется кому то полезной.
Планирую купить +125 Добавить в избранное Обзор понравился +121 +225Простое решение для вашей задачи!
Есть в наличии
Купить оптомТехнические характеристики
Рабочая частота (мГц) | 433 |
Тип питания | постоянный |
Количество входов (шт) | 1 |
Количество выходов (шт) | 1 |
Рекомендованная температура эксплуатации (°С) | -15...+60 |
Напряжение питания приемника (В) | 5 |
Напряжение питания передатчика (В) | 12 |
Вес, не более (г) | 20 |
Ток потребления приемника (мА) | 1,5 |
Ток потребления передатчика (мА) | 10 |
Входная чувствительность (мкВ) | 1,5 |
Дальность действия (м) | 100 |
Длина приемника (мм) | 19 |
Длина передатчика (мм) | 30 |
Выходная мощность передатчика (мВт) | 10 |
Входной уровень данных передатчика (В) | 5 |
Выходной уровень данных приемника (В) | 0,7 |
Ширина передатчика (мм) | 15 |
Высота передатчика (мм) | 10 |
Ширина приемника (мм) | 19 |
Высота приемника (мм) | 10 |
Вес | 22 |
Схемы
Использование комплекта без применения микроконтроллеров.
Комплект поставки
- Плата передатчика - 1 шт.
- Плата приемника - 1 шт.
- Инструкция - 1 шт.
Что потребуется для сборки
- Для подключения понадобится: провод, паяльник, бокорезы.
Условия эксплуатации
- Температура - -15С до +50С шт.
- Относительная влажность - 20-80% без образования конденсата шт.
Меры предосторожности
- Не превышайте максимально допустимое напряжение питания приемника и передатчика.
- Не путайте полярность питания приемника и передатчика.
- Не превышайте максимально допустимый ток выходов приемника.
- Не соблюдение данных требований приведет к выходу устройства из строя.
Вопросы и ответы
- Возможно ли приобрести несколько приемников к одному передатчику?
Если в помещении будут стоять несколько приемников, то будут ли все они срабатывать от одного передатчика?
- 1. Можно. 2. Будет.
- Могу ли я управлять приемником, одним из предлогаемых пультов 433 МГц
- Можно, но что бы не было ложных срабатываний необходимо за приемником установить микроконтроллер и запрограммировать его на купленный дополнительный пульт.
- Доброго времени суток!!!Возможно ли на данном устройстве,уменьшить дальность действия до 30 см?
- До 30 см не пробовали. Но дальность регулируется с помощью уменьшения длинны антенны на приемнике и передатчике.
- Добрый день, подскажите пожалуйста, данный комплект приёмника с передатчиком подлежит программированию, или это аналаговые приборы.
- Это аналоговые приборы. Предназначены для совместной работы с микроконтроллером.
Недостатки:
- На частоте 433,920 МГц работают множество других устройств (радио люстры, радио розетки, радио брелки, радио модели и т.д.), которые могут «глушить» передачу данных между радио модулями .
- Отсутствие обратной связи. Модули разделены на приёмник и передатчик . Таким образом, в отличии от модуля nRF24L01+ , приемник не может отправить передатчику , сигнал подтверждения приёма.
- Низкая скорость передачи данных, до 5 кбит/сек.
- Приёмник MX-RM-5V критичен даже к небольшим пульсациям на шине питания. Если Arduino управляет устройствами вносящими даже небольшие, но постоянные, пульсации в шину питания (сервоприводы, LED индикаторы, ШИМ и т.д.), то приёмник расценивает эти пульсации как сигнал и не реагирует на радиоволны передатчика. Влияние пульсаций на приёмник можно снизить одним из способов:
- Использовать, для питания Arduino, внешний источник, а не шину USB. Так как напряжение на выходе многих внешних источников питания контролируется или сглаживается. В отличии от шины USB, где напряжение может существенно «проседать».
- Установить на шине питания приёмника сглаживающий конденсатор.
- Использовать отдельное стабилизированное питание для приёмника.
- Использовать отдельное питание для устройств вносящих пульсации в шину питания.
Нам понадобится:
- Радио модули FS1000A и MX-RM-5V х 1 комплект.
- Trema светодиод (красный , оранжевый , зелёный , синий или белый) x 1шт.
- Набор проводов «мама-мама» для подключения радио модулей х 1 комплект.
Для реализации проекта нам необходимо установить библиотеки:
- Библиотека iarduino_RF433 (для работы с радио модулями FS1000A и MX-RM-5V).
- Библиотека iarduino_4LED , (для работы с Trema четырехразрядным LED индикатором).
О том как устанавливать библиотеки, Вы можете ознакомиться на странице Wiki - Установка библиотек в Arduino IDE .
Антенна:
Первый усилитель любого приёмника и последний усилитель любого передатчика, это антенна. Самая простая антенна - штыревая (отрезок провода определённой длины). Длина антенны (как приёмника, так и передатчика), должна быть кратна четверти длины волны несущей частоты. То есть, штыревые антенны, бывают четвертьволновые (L/4), полуволновые (L/2) и равные длине волны (1L).
Длинна радиоволны вычисляется делением скорости света (299"792"458 м/с) на частоту (в нашем случае 433"920"000 Гц).
L = 299"792"458 / 433"920"000 = 0,6909 м = 691 мм.
Таким образом длина антенн для радио модулей на 433,920 МГц может быть: 691 мм (1L), 345 мм (L/2), или 173 мм (L/4). Антенны припаиваются к контактным площадкам, как показано на схеме подключения.
Видео:
Схема подключения:
Приёмник:
При старте (в коде setup) скетч настраивает работу радиоприёмника , указывая те же параметры что и у передатчика , а также инициирует работу с LED индикатором . После чего, постоянно (в коде loop), проверяет нет ли в буфере данных, принятых радиоприёмником . Если данные есть, то они читаются в массив data, после чего значение 0 элемента (показания Trema слайдера) выводится на LED индикатор , а значение 1 элемента (показания Trema потенциометра) преобразуются и используется для установки яркости светодиода .
Код программы:
Передатчик:
#includeПриемник:
#includeFun fact! Существуют другие, но совместимые передатчики на 433 МГц, в частности раз и два . Кроме того, есть и альтернативный приемник . Но он не вполне совместим, так как на выходе всегда выдает какой-то сигнал, независимо от того, осуществляется ли реально сейчас передача, или нет.
Для своих экспериментов я также использовал купленный на eBay пульт от гаража с внутренним DIP-переключателем:
При некотором везении такие пульты все еще можно найти как на eBay, так и на AliExpress по запросу вроде «garage door opener 433mhz with dip switch». Но в последнее время их вытесняют «программируемые» пульты, умеющие принимать и копировать сигнал других пультов. Доходит вплоть до того, что продавцы высылают пульты без DIP-переключателя даже в случае, если он явно изображен на представленном ими фото и указан в описании товара. Полагаться на внешнюю схожесть пульта с тем, что использовал я, также не стоит. Впрочем, если вы решите повторить шаги из этой заметки, наличие или отсутствие DIP-переключателя не сыграет большой роли.
Модули крайне просто использовать в своих проектах:
Как приемник, так и передатчик, имеет пины VCC, GND и DATA. У приемника пин DATA повторяется дважды. Питаются модули от 5 В. На фото слева собрана схема, в который светодиод подключен к пину DATA приемника. Справа собрана схема с передатчиком, чей пин DATA подключен к кнопке и подтягивающему резистору. Плюс в обоих схемах используется стабилизатор LM7805. Проще некуда.
Запишем сигнал при помощи Gqrx и откроем получившийся файл в Inspectrum:
Здесь мы видим такие же короткие и длинные сигналы, что нам показал осциллограф. Кстати, такой способ кодирования сигнала называется On-Off Keying . Это, пожалуй, самый простой способ передачи информации при помощи радиоволн, который только можно вообразить.
Запускаем, и на Scope Plot видим:
Практически такой же сигнал, что нам показал осциллограф!
Как видите, копеечные радиомодули на 433 МГц дают нам огромный простор для творчества. Их можно использовать не только друг с другом, но и со многими другими устройствами, работающими на той же частоте. Можно вполне успешно использовать их в чисто аналоговых устройствах без какого-либо микроконтроллера, например, с таймером 555 . Можно реализовывать собственные протоколы с чексуммами, сжатием, шифрованием и так далее, безо всяких ограничений, скажем, на длину пакета, как у NRF24L01 . Наконец, модули прекрасно подходят для broadcast посылки сообщений.
А какие потрясающие применения этим радиомодулям приходят вам на ум?
Дополнение: Также вас могут заинтересовать посты