Радиомодуль своими руками

Добавил пользователь Дмитрий К.
Обновлено: 18.09.2024

Анна С → Подставка из CD дисков своими руками → у кого-то получилось сделать такую подставку? 1 месяц 1 неделя назад

Анна С → Подставка из CD дисков своими руками → Антон, здравствуйте! Можно еще фото данной. 1 месяц 1 неделя назад

Славтислав → Приспособления для накачки пластиковых бутылок воздухом (платформа катамарана) → День добрый. Классная и нужная приспоба. Она не. 1 месяц 2 недели назад

ulogin_mailru_8233649739270127860 → Модернизация одноконтурного котла системы КСТГ с целью снижения расхода газа и увеличения КПД своими руками → Вверху в камере стоит пластина.как она должна. 2 месяца 1 неделя назад

ulogin_facebook_2334350409984874 → Настольная лампа → Просто и доступно. Спасибо 2 месяца 2 недели назад

Мы сегодня живем в эпоху доминирования 4G и наступающей эры средств связи 5G, но, тем не менее, простые УКВ радиостанции (еще их называют walkie-talkie) все еще продолжают играть важную роль в тех ситуациях, когда необходимо организовать простую и дешевую радиосвязь на небольшие расстояния. Например, подобные радиостанции очень удобны для строителей/рабочих, строящих какой-нибудь объект, или туристов/рыбаков/охотников, которые находятся в местах, куда не достает привычная нам сотовая связь. Поэтому в данной статье мы рассмотрим создание на основе платы Arduino и радиочастотных модулей nRF24L01 радиостанций большого радиуса действия.

Внешний вид радиостанций на Arduino и модулях nRF24L01

Принцип работы наших радиостанций

Основными компонентами проектируемых нами радиостанций являются платы Arduino и радиочастотные модули nRF24L01, подключение которых к плате Arduino мы рассматривали в этой статье. Для данного проекта радиостанций радиочастотные модули nRF24L01 были выбраны ввиду их следующих преимуществ:

  • они работают в диапазоне ISM 2.4 ГГц (а на западе в этом диапазоне можно работать без получения лицензии);
  • доступные скорости передачи для этих модулей составляют 250 Кбит/с, 1 Мбит/с и 2 Мбит/с;
  • в данных модулях доступно 125 возможных каналов с шагом сетки частот 1 МГц, что позволяет развернуть в одном месте 125 независимо работающих модемов.

Также одним из достоинств наших радиостанций будет то, что их диапазон работы не будет перекрываться с используемыми частотными диапазонами других УКВ радиостанций, тех, которые используют полиция, экстренные службы, рыбаки, охотники и т.д. Одиночный модуль nRF24L01 может одновременно взаимодействовать с 6-ю другими такими же модулями, находящимися в зоне его действия, то есть он будет передавать информацию, а 6 других модулей будут ее принимать. Также к достоинствам модулей nRF24L01 относится их низкое энергопотребление.

Существуют два типа модулей nRF24L01: NRF24L01+ и NRF24L01+PA+LNA (показанный на рисунке ниже) со встроенной и внешней антеннами.

Внешний вид модуля NRF24L01+PA+LNA

Модуль NRF24L01+ имеет только встроенную в плату антенну, поэтому диапазон его действия составляет около 100 метров, что подходит для его применения внутри помещений, но является явно недостаточным для связи на большие расстояния на открытом воздухе. Модуль NRF24L01+PA+LNA с внешней антенной имеет в своем составе параметрический усилитель (PA), который усиливает уровень сигнала перед его передачей в антенну. Также этот модуль содержит малошумящий усилитель (LNA - Low Noise Amplifier), который с минимальными шумами усиливает слабые сигналы и тем самым значительно улучшает чувствительность модуля. Таким образом, с внешней антенной (с коэффициентом усиления 2 дБ) и двумя дополнительными усилителями дальность действия модуля NRF24L01+PA+LNA составляет примерно 1000 метров, что вполне подходит для проектируемых нами радиостанций.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress) или другие типы плат Arduino – 2 шт.
  2. Радиочастотный модуль NRF24L01+PA+LNA с внешней антенной с КУ 2 дБ – 2 шт. (купить на AliExpress).
  3. Усилитель звуковой частоты – 2 шт. (купить на AliExpress).
  4. Цепь микрофона – вы можете сделать ее сами (рассмотрено далее в статье) или купить модуль датчика звука.
  5. Преобразователь (step-up booster module) DC to DC – 2 шт. (купить на AliExpress).
  6. Модуль регулятора напряжения (voltage regulator module) 3.3V AMS1117 (купить на AliExpress).
  7. Светодиод для индикации мощности – 2 шт. (купить на AliExpress).
  8. Резистор 470 Ом – 2 шт. (купить на AliExpress).
  9. 4-й дюймовый громкоговоритель (динамик) – 2 шт.
  10. Кнопка PTT (Push-to-Talk - "нажал - говори") – 2 шт.
  11. Конденсатор 104 пФ для кнопки PTT – 2 шт. (купить на AliExpress).
  12. Конденсатор 100 нФ для модуля NRF24L01 – 2 шт. (купить на AliExpress).
  13. Резистор 1 кОм для кнопки PTT – 2 шт. (купить на AliExpress).
  14. Два комплекта литий-ионных батарей.
  15. Модуль заряда и защиты литий-ионных батарей – 2 шт. (купить на AliExpress).
  16. Соединительные провода и джамперы.

Схема радиостанции

Схема радиостанции на основе платы Arduino и модуля nRF24L01 представлена на следующем рисунке.

Схема радиостанции на основе платы Arduino и модуля nRF24L01

Важно : питающее напряжение для модуля NRF24L01 составляет от 1.9 В до 3.6 В максимум. Для повышения стабильности питающего напряжения мы подключили конденсатор 100 нФ между контактами +VCC и –GND модуля, остальные контакты модуля NRF24L01 могут выдерживать напряжение до 5 В.

Изготовление радиостанций

Шаг 1 . Мы начали изготовление радиостанций с того, что сделали самодельную печатную плату для них как показано на рисунке ниже. Мы подключили микросхему Atmega328p к программатору и загрузили в нее код программы. Затем мы подключили кварцевый генератор на 16 МГц к контактам 9 и 10 микросхемы Atmega328p.

Размещение микросхемы Atmega328p на самодельной печатной плате

Шаг 2 . Далее мы произвели подключение модуля NRF24L01 в соответствии с ранее представленной схемой радиостанции: CE – к контакту 7, CSN – к контакту 8, SCK – к контакту 13, MOSI – к контакту 11, MISO – к контакту 12, IRQ – к контакту 2.

Подключение модуля NRF24L01

Для того, чтобы запитать модуль NRF24L01, нам необходимо понизить напряжение с 5 до 3,3 В, для этого мы использовали регулятор напряжения MS1117 на 3,3 В, который достаточно компактный и поэтому существенно не повысит габариты нашей радиостанции. Также для повышения стабильности питающего напряжения мы подключили конденсатор на 100 нФ к контакту земли и контакту VCC модуля.

Регулятор напряжения на основе микросхемы LM317

Если вы хотите сделать эту плату регулятора напряжения сами, вам необходимо купить микросхему регулятора напряжения на 3,3 В и добавить к ней необходимые резисторы и конденсаторы. Также подобный регулятор напряжения можно сделать на основе микросхемы LM317.

Шаг 3 . Вы можете купить датчик звука (акустический датчик) или сделать простую микрофонную цепь своими руками как показано на следующих рисунках. Эта цепь будет содержать NPN транзистор 2n3904.

Самодельная микрофонная цепь для нашей радиостанции

Также мы перерисовали схему радиостанции в другом виде – возможно, он кому то покажется более удобным чем ранее представленная схема на основе макетной платы.

Схема нашего проекта радиостанции в другом виде

Шаг 4 . Для усиления звука с выхода платы Arduino (контакты 9 и 10) мы использовали стерео усилитель звуковой частоты PAM8403, поскольку звук с выхода контактов платы Arduino достаточно слабый для того, чтобы подавать его на громкоговоритель (максимум его можно подавать на головные телефоны). С модуля PAM8403 сигнал можно подавать на два громкоговорителя, и при этом модуль достаточно дешево стоит. Модуль PAM8403 содержит достаточно мощный усилитель звуковой частоты в SMD исполнении и занимает очень мало места. Его внешний вид показан на рисунке ниже.

Внешний вид усилителя звуковой частоты на основе микросхемы PAM8403

Шаг 5 . Далее мы изготовили тангенту (PTT кнопку) в виде обычной кнопки. Мы подключили к контактам этой кнопки конденсатор емкостью 0.1 мкФ для уменьшения эффекта дребезга контактов и появления непредсказуемых сигналов при нажатии кнопки.

PTT кнопка для нашей радиостанции

В режиме передачи модуль NRF24L01+PA+LNA потребляет значительно больше электроэнергии, чем во время приема, поэтому во время нажатия кнопки PTT, которая включает режим передачи, значительно увеличивается потребляемый модулем ток. Чтобы сгладить эффект от этого резкого увеличения потребления тока мы использовали конденсатор емкостью 100 нФ, подключенный к контактам +vcc и Ground.

При нажатии кнопки PTT на контакт 3 планы Arduino подается сигнал прерывания – мы далее в программе конфигурируем этот контакт как контакт для обработки прерывания и мы будем отслеживать на нем уровень напряжения. Если на этот контакт поступает напряжение низкого уровня (low), то наша радиостанция продолжает оставаться в режим приема (режим по умолчанию). Если же на контакте 3 будет напряжение высокого уровня (high), то мы будем переключать радиостанцию в режим передачи, в котором мы сможем передавать по радиоканалу сигнал, поступающий с выхода микрофона, естественно, после преобразования его в радиосигнал – то есть первичный электрический сигнал с выхода микрофона модулируется, переносится на рабочую частоту 2,4 ГГц, усиливается и излучается с помощью антенны в окружающее пространство.

Шаг 6 . Для питания всех компонентов нашей схемы (платы Arduino, модуля NRF24L01+PA+LNA, усилителя звуковой частоты и цепи микрофона) мы использовали комплект из 2-х литий-ионных батарей (Li-ion battery) как показано на следующем рисунке.

Комплект из 2-х литий-ионных батарей

Хорошая литий-ионная батарея обеспечивает уровень напряжения от 3.8 до 4.2 В и заряжается напряжением от 4 до 4.2 В (ранее на нашем сайте мы рассматривали двухрежимное зарядное устройство литий-ионных батарей на основе платы Arduino). Литий-ионные батареи в настоящее время находят широкое применение в портативных устройствах и электромобилях. Но литий-ионные батареи не так надежны и устойчивы в работе как другие типы батарей, поэтому им нужна защита от излишней зарядки и слишком быстрой разрядки – то есть напряжение и ток заряжания/разряжания для них должны поддерживаться в безопасных для них режимах. Поэтому в нашем проекте для защиты этих батарей мы использовали один из самых распространенных модулей заряжания для них - TP4056.

Шаг 7 . Также в нашем проекте мы использовали преобразователь постоянного тока на 2А чтобы поднять уровень напряжения с выхода литий-ионной батареи, который составляет от 3.7V до 4.2V, до уровня 5 Вольт, который необходим для питания основных компонентов схемы нашей радиостанции. На нашем сайте мы уже рассматривали подобный, но только понижающий преобразователь постоянного тока на основе платы Arduino, так называемый Buck converter.

Преобразователь постоянного тока на 2А

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

Размещение компонентов радиостанции в пластмассовом корпусе (вид сбоку)

Размещение компонентов радиостанции в пластмассовом корпусе (вид сверху)

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Первым делом в программе нам необходимо подключить используемые библиотеки, которые можно скачать по следующим ссылкам:

В программе мы производим подключение заголовочных файлов этих библиотек.

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

Основные параметры

Цена: 1$/шт

Купить на Aliexpress

Что это такое?

Это приемопередатчик (может как передавать, так и принимать информацию) через УАПП (Универсальный Асинхронный Приёмопередатчик), то есть с помощью него можно обмениваться данными через UART без проводов на расстояние до 120 м (далее проверка дальности) между двумя такими штуками.

Бонусом к этому идет возможность настройки на режим управления нагрузками (восемь штук), ну то есть одна плата будет передатчиком с кнопками, а вторая приемником с нагрузками (светодиоды, двигатели, нагреватели, разбрызгиватели).

Элементная база

МК: BK2461

ЭСППЗУ: 24C02B

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

Модуль JDY-40 с микроконтроллером BK2461 и памятью 24C02B

Как подключить

Питать от ОТДЕЛЬНОГО источника 3.3В, а не от преобразователя!

Наиболее просто пока что не использовать МК, а просто подключить один модуль в качестве приемника к ПК/телефону через преобразователь и проверить АТ-команды.


Рекомендуемое программное обеспечение

  • Для компьютера: YAT
  • Для телефона: Serial USB Terminal

Настройки ПО

Скорость: 9600 бод/с
Данные: 8 бит
Парность нет
Стоп-бит 1
Также включить
при передаче
CR+LF (Перевод каретки + Возврат строки)



После успешного присоединения отправляем команду и получаем ответ . Можно что-то изменить, но пока что не нужно.


AT+BAUD
+BAUD=4
Скорость обмена 1: 1200 бод/с
2: 2400 бод/с
3: 4800 бод/с
4: 9600 бод/с
5: 14400 бод/с
6: 19200 бод/с
AT+RFID
+RFID=8899
Идентификатор сети (0000-FFFF)
(0-65535)
AT+DVID
+DVID=1122
Идентификатор устройства (0000-FFFF)
(0-65535)
AT+RFC
+TFC=001
Канал (1-128)
AT+POWE
+POWE=9
Мощность 0: - 25 дБ
1: -15 дБ
2: -5 дБ
3: 0 дБ
4: +3 дБ
5: +6 дБ
6: +9 дБ
7: +10 дБ
8: +10 дБ
9: + 12 дБ
AT+CLSS
+CLSS=A0
Режим работы A0: Передача данных через УАПП между модулями
C0: Управление (со светодиодной индикацией)
C1: Управление (без светодиодной индикацией)
C2: При нажатии кнопки создается импульс длительностью 30 мс (переход от низкого уровня в высокий)
C3: При нажатии кнопки создается импульс длительностью 30 мс (переход из высокого уровня в низкий)
C4: Высокий уровень при нажатой кнопке, низкий при отпущенной
C5: Переключение уровня при нажатия

Кстати, если отключить вывод CS от минуса, то модуль переходит в спящий режим (пониженное энергопотребление), а когда просыпается, то отправляет слово:

Wake



Некоторые версии могут присылать START:


Всё прекрасно, модуль послушно отвечает. Менять пока что ничего не будем.

Передача данных между двумя модулями

Теперь можно задействовать и второй экземпляр, на его входы возможно кидать данные с МК или опять же через переходник с телефона/ПК из-под программы-терминала.

Подключение для работы в качестве передатчика естественно немного отличается.

Питать от ОТДЕЛЬНОГО источника 3.3В, а не от преобразователя!

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

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


Передача данных с МК


Также дополнительно по-быстрому осуществлена передача данных (температура с датчика HTU21D по I2C) от STM32 и отображена в видео графика (ПО: SerialPrint ):


В целом все ништяк, но всё же находясь даже на близком расстоянии маленькая часть данных умудряется теряться/искажаться, при увеличении же расстояния потери еще больше.

А вот еще данные, полученные через этот модуль, записанные в текстовый файл и потом построенные в Гугл Таблицы (при сжатии пальцами микродатчика быстренько температура растет, далее держу и отпускаю микросхемку - температура постепенно падает):

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

Дистанционное управление нагрузками

Для проверки выбран самый нужный режим, когда кнопка нажата на соответствующем выходе высокий уровень, когда не нажата - низкий. Работает очень хорошо и стабильно, можно найти много применений.



Попытка передать сигнал

Есть восемь выводов, то есть по сути восемь каналов. Можно ли их использовать для передачи ШИМ-сигнала? Подаем на вход пульта сигнал f = 100 Гц, D = 50%


А на приемники получаем сигнальчик с частотой 7-8 Гц, так что идея с управлением сервоприовдами (нужна f = 50 Гц) и безщеточными двигателями (нужна f = 400 Гц) провалилась (скорее всего из-за программы подавления влияния дребезга контактов) .


Потребляемая мощность

Режим A0

Ток при передачи: 26 мА
Ток при приеме: 22 мА
Ток покоя (спящий режим): 9-12 мкА

*режим A0; напряжение питания 3.3В

Режим C1 (пульт управления)

Ток в режиме ожидания:1.66 мА
Ток в режиме управления (один канал):4.8 мА
Спящий режим:отсутствует

Режим C4 (приемник команд)

Ток в режиме ожидания:24.7 мА
Ток во время приема команды (один канал, с учетом СИДа):25.7 мА
Спящий режим:отсутствует

Видеообзор

Модель

Запили по-бырому модельку :




Проверка дальности передачи данных (без внешней антены)

В довольно непростых условиях (кругом здания) получились неплохие результаты:

15 м уверенный прием, незначительные потери
20 м уверенный прием, незначительные потери
80 м плохой прием, много потерь (здесь были небольшие заграждения)
113 м прием неплохой (нашел хорошее положение)
150 м также прием есть, но зависимость от положение огромная

*температура от датчика (число с плавающей точкой) преобразовывалась в строку и передавалось в УАПП каждые 250 мс

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

На этом уроке мы решим задачу по передаче радиосигнала между двумя контроллерами Ардуино с помощью популярного приемопередатчика с частотой 433МГц.

На самом деле, устройство по передаче данных состоит из двух модулей: приемника и передатчика. Данные можно передавать только в одном направлении. Это важно понимать при использовании этих модулей.

Радиомодуль на 433 МГц

Например, можно сделать дистанционное управление любым электронным устройством, будь то мобильный робот или, например, телевизор. В этом случае данные будут передаваться от пульта управления к устройству. Другой вариант — передача сигналов с беспроводных датчиков на систему сбора данных. Здесь уже маршрут меняется, теперь передатчик стоит на стороне датчика, а приемник на стороне системы сбора.

Модули могут иметь разные названия: MX-05V, XD-RF-5V, XY-FST, XY-MK-5V, и т.п., но все они имеют примерно одинаковый внешний вид и нумерацию контактов. Также, распространены две частоты радиомодулей: 433 МГц и 315 МГц.

Подключение

Передатчик имеет всего три вывода: Gnd, Vcc и Data.

Распиновка передатчика 433МГц

Подключаем их к первой плате Ардуино по схеме:

Передатчик MX-05V 433МГцGNDVCCData
Ардуино Уно №1GND+5V2

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

Распиновка приемника 433МГц

Схема подключения ко второй плате Ардуино идентична первой:

Приемник XD-RF-5V 433МГцGNDVCCData
Ардуино Уно №2GND+5V2

Собираем оба устройства на макетной плате и приступаем к написанию программ.

Подключение Ардуино к приемнику и передатчику 433 МГц

Программа для передатчика

Разберем программу. Первое что мы сделали — объявили объект для работы с передатчиком и назвали его mySwitch.

Затем, внутри стандартной функции setup включили передатчик и указали вывод, к которому он подключен:

Также send умеет принимать двоичные строки:

Программа для приемника

Теперь напишем программу для приемника. Для демонстрации факта передачи мы будем зажигать светодиод, подключенный к выводу №3 на плате Ардуино. Если приемник поймал код B1000 — включим светодиод, а если B0100 — выключим.

Функция available возвращает истину, если передатчик принял хоть какие-то данные:

Функция getReceivedValue извлекает из потока данных одну пачку и декодирует её в число. В программе мы присваиваем полученное число переменной value:

Задания

Теперь можно попробовать потренироваться и сделать разные полезные устройства. Вот несколько идей.

  1. Пульт для светильника. На стороне приемника модуль реле, включенный в цепь питания светильника (осторожно, 220 Вольт!). На стороне передатчика: тактовая кнопка. Написать программы для приемника и передатчика, которые по нажатию кнопки будут включать удаленное реле. При повторном нажатии кнопки реле будет выключаться.
  2. Уличный термометр с радиоканалом. На стороне передатчика разместить датчик температуры. Предусмотреть автономное питание от батареек. На стороне приемника: символьный ЖК дисплей. Написать программы для приемника и передатчика, которые позволят выводить показания температуры с удаленного датчика на дисплее.

Заключение

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

На основе приемопередатчиков с частотой 433 МГц и 315 МГц работает большинство радиоканальных пультов управления. Имея Ардуино и приемник, мы можем декодировать сигналы управления и повторить их. Подробнее о том, как это сделать мы напишем в одном из следующих уроков!

Чтобы передавать много данных с большой скоростью и на большие расстояния рекомендуем использовать цифровые приемопередатчики: nrf24l01, тот же bluetooth, wi-fi или LoraWAN.

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

Обзор оборудования

Давайте подробнее рассмотрим модули передатчика и приемника 433 МГц.

передатчик 433 МГц

Этот маленький модуль является передатчиком. Сердцем модуля является резонатор SAW, настроенный на работу в диапазоне 433.xx МГц. Есть переключающий транзистор и несколько пассивных компонентов, вот и все.

Когда на вход DATA поступает логическая 1, генератор начинает работать, генерируя постоянную РЧ несущую волну на частоте 433.xx МГц, а когда на входе DATA устанавливается логический 0, генератор останавливается. Этот метод известен как Amplitude Shift Keying, о котором мы вскоре поговорим подробнее.

ASK — Amplitude Shift Keying

Как обсуждалось выше, для отправки цифровых данных по радиоканалу, эти модули используют технику, называемую Amplitude Shift Keying или ASK (амплитудная модуляция). Это когда амплитуда (то есть уровень) несущей волны (в нашем случае это сигнал 433 МГц) изменяется в ответ на входящий сигнал данных.

Это очень похоже на аналоговую технику амплитудной модуляции, с которой вы, возможно, знакомы, если вы собирали AM-радио. Иногда это называется двоичной амплитудной манипуляцией, потому что нам необходимо только два уровня. Вы можете представить это как переключатель ВКЛ / ВЫКЛ.

  • Для лог. 1 — несущая в полную силу
  • Для лог. 0 — несущая отключена

амплитудная модуляция

Амплитудная модуляция имеет преимущество в том, что она очень проста в реализации. На ее основе довольно просто спроектировать схему декодера. Также для ASK требуется меньшая полоса пропускания, чем другим методам модуляции, таким как FSK (частотная модуляция). Это одна из причин того дешевизны модулей.

Однако недостатком является то, что амплитудная модуляция подвержена помехам от других радиоустройств и фоновому шуму. Но пока вы обеспечиваете передачу данных на относительно медленной скорости, она может надежно работать в большинстве сред.

Распиновка передатчика и приемника 433 МГц

Давайте посмотрим на распиновку модулей передатчика и приемника RF 433 МГц.

Распиновка передатчика 433 МГц

  • DATA — принимает цифровые данные для передачи.
  • VCC — обеспечивает питание передатчика. Это может быть любое положительное постоянное напряжение от 3,5 до 12 В. Обратите внимание, что РЧ-выход пропорционален напряжению питания, т.е. чем выше напряжение, тем больше будет дальность.
  • GND — минус питания.
  • Антенна — это разъем для внешней антенны. Как обсуждалось ранее, вам понадобится припаять кусок проволоки длинной 17,3 см к этому контакту для улучшения дальности.

Распиновка приемника 433 МГц

  • DATA — выводит полученные цифровые данные. Два центральных штифта внутренне связаны между собой, поэтому вы можете использовать любой из них для вывода данных.
  • VCC — обеспечивает питание приемника. В отличие от передатчика, напряжение питания для приемника должно быть 5 В.
  • GND — минус питания.
  • Антенна — это разъем для внешней антенны, который часто не обозначен. Это накладка в левом нижнем углу модуля, рядом с маленькой катушкой. Опять же, можно припаять кусок провода длинной 17,3 см к этому контакту для улучшения дальности.

Схема подключения передатчика и приемника 433 МГц к Arduino UNO

Теперь, когда мы знаем все о модулях, пришло время использовать их!

Поскольку мы будем передавать данные между двумя платами Arduino, нам, конечно, понадобятся две платы Arduino, две макетные платы и пара соединительных проводов.

Схема для передатчика довольно проста. У него всего три соединения. Подключите контакт VCC к контакту 5 В и минус к Arduino. Контакт Data-In должен быть подключен к цифровому контакту Arduino № 12. Вы должны использовать контакт 12, так как по умолчанию библиотека, которую мы будем использовать в нашем скетче, использует этот контакт для ввода данных.

На следующем рисунке показана схема соединения.

Схема соединения передатчика с ардуино

После подключения передатчика вы можете перейти к приемнику. Подключение приемника так же просто, как и передатчика.

Так же нужно сделать только три соединения. Подключите контакт VCC к контакту 5 В и минус на Arduino. Любой из двух средних выводов Data-Out должен быть подключен к цифровому выводу № 11 на Arduino.

Вот так должна выглядеть схема соединения для приемника.

Схема соединения приемника с ардуино

RadioHead Library — универсальная библиотека для беспроводных модулей

Прежде чем мы начнем программировать, установим библиотеку RadioHead в Arduino IDE.

RadioHead — это библиотека, которая позволяет легко передавать данные между платами Arduino. Она настолько универсальна, что ее можно использовать для управления всеми видами устройств радиосвязи, включая наши модули на 433 МГц.

Библиотека RadioHead собирает наши данные, инкапсулирует их в пакет данных, который включает в себя CRC (проверку циклически избыточного кода), а затем отправляет его с необходимой преамбулой и заголовком на другую Arduino. Если данные получены правильно, принимающая плата Arduino проинформирует о наличии доступных данных и приступит к их декодированию и выполнению.

Последовательность проверки или CRC добавляется в конец пакета, который пересчитывается RadioHead на стороне приемника, и если проверка CRC верна, приемное устройство получает предупреждение. Если проверка CRC не пройдена, пакет отбрасывается.

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


Скетч Arduino для радиочастотного передатчика 433 МГц

Вот скетч, который мы будем использовать для нашего передатчика:

Это довольно короткий набросок, но это все, что вам нужно для передачи сигнала.

Код начинается с подключения библиотеки RadioHead ASK. Мы также должны подключить библиотеку SPI Arduino, так как от нее зависит библиотека RadioHead.

Далее нам нужно создать объект ASK, чтобы получить доступ к специальным функциям, связанным с библиотекой RadioHead ASK.

В функции setup() нам нужно инициализировать объект ASK.

Скетч Arduino для радиочастотного приемника 433 МГц

Подключите приемник Arduino к компьютеру и загрузите следующий код:

Как и код передатчика, код приемника начинается с подключения библиотек RadioHead и SPI и создания объекта ASK.

Затем мы возвращаемся к началу цикла и делаем все заново.


Увеличение дальности радиочастотных модулей 433 МГц

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

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

Антенна не должна быть сложной. Простой кусок одножильного провода может послужить отличной антеной для передатчика и приемника. Диаметр антенны вряд ли имеет какое-либо значение, если длина антенны правильная.

Самая эффективная антенна имеет ту же длину, что и длина волны, для которой она используется. Для практических целей достаточно половины или четверти этой длины.

Длина волны частоты рассчитывается как:

Длина волны = скорость распространения (v) / частота (f)

В воздухе скорость передачи равна скорости света, которая, если быть точным, составляет 299 792 458 м/с. Итак, для частоты 433 МГц длина волны равна:

Длина волны = 299 792 458 м/с / 433 000 000 Гц = 0,6924 м

Полноволновая антенна длиной 69,24 см довольно длинная, ее использование не очень удобно. Вот почему мы выберем четвертьволновую антенну, длина которой составляет 17,3 см.

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

Даже 17,3 см антенна может показаться неудобной в вашем крошечном проекте Arduino. Но НЕ соблазняйтесь наматывать антенну, чтобы сделать ее более компактной, так как это серьезно повлияет на дальность действия. Прямая антенна всегда лучше!

Читайте также: