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 мм
- ATAD - данные
- VCC - питание "+"
- GND - питание "-"
- ANT - антенна
Технические характеристики приемника MX-RM-5V
- Напряжение питания: 5 В
- Ток потребления: 4 мА
- Рабочая частота: 433.920 МГц (Есть на частоту 315 МГц)
- Размеры: 30х14х7 мм
- 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 МГц выделена для работы маломощных цифровых передатчиков таких как: радиобрелки автосигнализаций, брелки управления шлагбаумами на стоянках и другие подобные системы.