Skip to contentSkip to main navigation Skip to footer

Arduino и радио модули 433 МГц

Описание


Радио модули с частотой 433 MHz – самый простой способ связать две Ардуины по беспроводному каналу. Чем они лучше радио 2.4 GHz, например nRF24?

  • Неприхотливы к питанию
  • Потребляют небольшой ток
  • Занимают один пин МК
  • В два раза дешевле
  • Выше дальность связи при той же мощности
  • Более высокая проникающая способность

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

Модулей данного типа на китайских площадках существует несколько, продаются они парой (передатчик TX и приёмник RX), либо по отдельности.

Наборы GyverKIT до 2 партии комплектовались парой модулей как по центру на картинке выше (модель SYNxxx), со второй партии в наборах идут модули FS1000A и MX-RM-5V (слева на картинке) как более удобные для подключения и более стабильные в работе. Правые модули, несмотря на самый высокий ценник, работают хуже всех и к покупке не рекомендуются.

Ток потребления модулей:

  • FS1000A [5V]: передача 12 мА, холостой 10 мкА
  • MX-RM-5V [5V]: 3.7 мА
  • SYN115 [3.3V]: передача 14 мА, холостой 0.5 мкА
  • SYN480R [5V]: 4.5 мА

Для лучшего качества связи к модулям в пин ANT нужно припаять антенну длиной 17.3 см (четверть волны) в виде одножильного провода, при желании можно свернуть в спираль:

Подключение


Модули подключаются к питанию и data – на любой цифровой пин. “Зелёные” модули к Arduino подключаются напрямую, а синий передатчик – через делитель напряжения трёх 10к резисторах (есть в наборе). Для подключения к esp8266 делитель не нужен, там и так 3.3V на пине.

На всех схемах передатчик слева, приёмник справа.

Библиотеки


Для данных модулей предлагается использовать библиотеку VirtualWire или RadioHead. Библиотеки очень сложные и тяжёлые по весу, и лично у меня китайские модули с ними не заработали. Причём со средними и правыми модулями с картинки из самого начала этого урока данные библиотеки в принципе не будут работать, так как у них слишком долгая синхронизация. Я написал свою библиотеку, Gyver433, которая работает даже в самых плохих условиях и выжимает максимум из этих модулей.

Библиотека идёт в архиве к набору GyverKIT, а свежую версию всегда можно установить/обновить из встроенного менеджера библиотек Arduino по названию Gyver433. Краткая документация находится по ссылке выше, базовые примеры есть в самой библиотеке.

Примеры


Рассмотрим тестовый пример, который отправляет строку Hello from #<счётчик>:

Отправка

#include <Gyver433.h>
Gyver433_TX<2> tx;  // указали пин

void setup() {
}

char data[] = "Hello from #xx"; // строка для отправки
byte count = 0;                 // счётчик для отправки

void loop() {
  // добавляем счётчик в строку
  data[12] = (count / 10) + '0';
  data[13] = (count % 10) + '0';
  if (++count >= 100) count = 0;
  tx.sendData(data);
  delay(100);
}

Приём

#include <Gyver433.h>
Gyver433_RX<2, 20> rx;  // указали пин и размер буфера

void setup() {
  Serial.begin(9600);  
  attachInterrupt(0, isr, CHANGE);  // прерывание пина радио по CHANGE
}

// спец. тикер вызывается в прерывании
void isr() {
  rx.tickISR();
}

void loop() {
  if (rx.gotData()) {                   // если успешно принято больше 0
    Serial.write(rx.buffer, rx.size);   // выводим
    Serial.println();
  }
}

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

Домашнее задание


  • Изучить остальные примеры к библиотеке Gyver433

Полезный пример?

Похожие примеры
12 Комментариев
  • Вам не кажется, что самый востребованный пример был бы отправки числа типа int? Как это сделать из примеров не понятно.

  • Подскажите, я правильно понимаю, что для организации двунаправленного обмена данными, к одному контроллеру нужно подключать и приёмник и передатчик и работать с ними отдельно?

  • Добрый день, а модули SYN115 [3.3V]: передача 14 мА, холостой 0.5 мкА
    SYN480R [5V]: 4.5 мА
    Можно использовать в формате 10 передатчков в разное время и один приемник? И если ли функция приема RSSI? Чтобы знать можность сигнала

  • Доброго времени суток. У меня почему то на отрез отказывается собираться эта библиотека для Digispark и просто для Attiny85. На esp32 все работает без вопросов.
    Как исправить?

  • Собрал приемник и передатчик. включил. Почему то тишина полнейшая. Приемник не видит отправки данных. Расстояние между устройствами 5 см. Даже не знаю откуда начать ковырять. Больше то устройств на 433 у меня нету

  • Докладываю. Попробовал другую библиотеку – заработало. Использовал – RCSwitch

  • Почему-то у меня очень низкая дальность действия. Осциллографом проверял антенну, на выходе импульсы амплитудой примерно 0.5 вольт. Как исправить?

  • странно, у меня как раз не заработала RCSwitch и я написал свою библиотеку. Какая версия Gyver433 использовалась для теста и какие конкретно модели радио?

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *