Arduino – передача данных по радиоканалу на частоте 433.920 МГц

Arduino – передача данных по радиоканалу на частоте 433.920 МГц

В этой статье я постараюсь подробно описать процесс организации передачи данных между контролерами Arduino по радиоканалу с использованием передатчика MX-F01 и приемника MX-RM-5V.

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

Для начала, давайте познакомимся с железом.

Технические характеристики передатчик MX-F01

  • Напряжение питания: 3-12 В
  • Ток потребления в режиме ожидания: 0 мА
  • Ток потребления в режиме передачи: 20-28 мА
  • Рабочая частота: 433.920 МГц (Есть на частоту 315 МГц)
  • Выходная мощность передатчика: 40 мВт
  • Дальность передачи: до 500 м в зоне прямой видимости с дополнительной антенной длинной 17,5, 35 или 70 см
  • Тип модуляции: амплитудная
  • Температурный диапазон: –10…+70 °C
  • Размеры: 19х19х8 мм
Назначение выводов передатчика MX-F01
  • ATAD - данные
  • VCC - питание "+"
  • GND - питание "-"
  • ANT - антенна

Технические характеристики приемника MX-RM-5V

  • Напряжение питания: 5 В
  • Ток потребления: 4 мА
  • Рабочая частота: 433.920 МГц (Есть на частоту 315 МГц)
  • Размеры: 30х14х7 мм
Назначение выводов приемника MX-RM-5V
  • GND - питание "-"
  • DATA - данные
  • VCC - питание "+"
  • ANT - антенна

Базовую информацию получили – пора приступать к практической части.

Подключение передатчика MX-F01 к Arduino

Для управления передатчиком MX-F01 я буду использовать Arduino Mega 2560.

Приступим к подключению:

  • ATAD на MX-F01 подключаем к 12 дискретному выводу Arduino Mega 2560
  • VCC на MX-F01 подключаем к +5V Arduino Mega 2560
  • GND на MX-F01 подключаем к GND Arduino Mega 2560
  • ANT на MX-F01 к антенне в виде куска провода длинной 17,5, 35 или 70 см (я пока антенну не припаивал)

Подключение приемника MX-RM-5V к Arduino

Для управления приемником я буду использовать Arduino Nano ATmega328.

  • DATA на MX-RM-5V подключаем к 12 дискретному выводу Arduino Nano ATmega328
  • VCC на MX-RM-5Vподключаем к +5V Arduino Nano ATmega328
  • GND на MX-RM-5V подключаем к GND Arduino Nano ATmega328
  • ANT на MX-RM-5V к антенне в виде куска провода длинной 17,5, 35 или 70 см (я пока антенну не припаивал)

Библиотека VirtualWire

Чтобы упростить написания кода для работы с радиомодулями, была создана библиотека: VirtualWire.

VirtualWire.rar (17,3 KiB, 5 529 hits)

Распакуйте содержимое архива в папку /libraries/, которая находится в каталоге среды разработки Arduino.

Примеры кода для работы с передатчиком MX-F01 с использованием библиотеки VirtualWire

Пример 1

Данный скетч будет отправлять раз в секунду сообщение "Hello World". Для наглядности, в начале передачи будет загораться светодиод, а после окончания – гаснуть.

#include <VirtualWire.h>

const int led_pin = 13; // Пин светодиода const int transmit_pin = 12; // Пин подключения передатчика

void setup()

void loop()

Пример 2

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

#include <VirtualWire.h>

const int led_pin = 13; // Пин светодиода const int transmit_pin = 12; // Пин подключения передатчика

void setup()

void loop()

Пример кода для работы с приемником MX-RM-5V с использованием библиотеки VirtualWire

#include <VirtualWire.h>

byte message[VW_MAX_MESSAGE_LEN]; // Буфер для хранения принимаемых данных byte messageLength = VW_MAX_MESSAGE_LEN; // Размер сообщения

const int led_pin = 13; // Пин светодиода const int receiver_pin = 12; // Пин подключения приемника

void setup() void loop()

Результат работы

Для “Пример 1” кода передатчика Для “Пример 2” кода передатчика

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

На этом пока все.

Частота 433.920 МГц выделена для работы маломощных цифровых передатчиков таких как: радиобрелки автосигнализаций, брелки управления шлагбаумами на стоянках и другие подобные системы.

📎📎📎📎📎📎📎📎📎📎