Комплект беспроводной RF 433MHz

Описание

Комплект односторонней беспроводной связи. В комплекте 1 приемник и 1 передатчик. Оба настроены на частоту 433МГц. Является самым дешевым вариантом для беспроводной связи, в том числе и в системах «умный дом». Однако следует помнить, что частота 433МГц является очень загруженной в крупных городах, следовательно, работа устройства может быть затруднена. Отличительной особенностью приемника и передатчика является возможность начала работы сразу после подачи напряжения.

Технические характеристики

  • напряжение питания приемника: 5В
  • напряжение питания передатчика: 3-12В
  • потребляемый ток: до 15мА
  • мощность передатчика: 10мВт
  • скорость передачи данных: 4Кб/с
  • чувствительность приемника: -105ДБм
  • рабочая частота: 433МГц
  • радиус действия в прямой видимости: 100м

Физические размеры

  • Передатчик (Д х Ш х В): 1,9 х 1,9 х 0,9 см
  • Приемник (Д х Ш х В): 3,1 х 1,3 х 0,9 см

Плюсы использования данных датчиков для связи

  • Просты в использовании
  • Просты в подключении

Минусы использования

  • Нет шифрования данных (все передаваемые данные доступны и для других)
  • Невысокая дальность
  • Для увеличения дальности требуется припаять антенну (около 20-30 см)

Библиотека для работы с модулем

Примеры подключения и использования

В примере тестируется отправка данных о количестве секунд с момента запуска контроллера. И прием вторым устройством отправленных данных. (Для тестирования примеров использовались контроллеры Smart UNO)

Передатчик

Подключение:

Скетч для передатчика:

#include  <VirtualWire.h> // Подключение библиотеки VirtualWire.h
 
const int led = 13; // Пин светодиода 
const int transmit = 12; // Пин передатчика
 
void setup() 
{ 
  vw_set_tx_pin(transmit); // Установка пина передачи данных
  vw_setup(2000);       // Скорость передачи (Бит в секунду) 
  pinMode(led, OUTPUT); 
}
 
void loop() 
{ 
 
  digitalWrite(led, HIGH); // Зажечь светодиод перед передачей
  int seconds = (millis() / 1000); // Получение количества прошедших секунд
  String secondsresult = String(seconds); // Присвоить полученное значение строковой переменной 
  char msg[14]; 
  secondsresult.toCharArray(msg, 14); //Скопировать символы строки в буфер.
 
  vw_send((uint8_t *)msg, strlen(msg)); // Отправить сообщение 
  vw_wait_tx(); // Подождать до окончания отправки
  digitalWrite(led, LOW); // Сообщение отправлено - погасить светодиод
  delay(1000); // Задержка 1 секунда 
}

Приёмник

Подключение:

Скетч для приемника:

#include <VirtualWire.h> //Подключение библиотеки VirtualWire.h
 
byte message[VW_MAX_MESSAGE_LEN]; // Буфер хранения данных 
byte messageLength = VW_MAX_MESSAGE_LEN; // Размер сообщения
 
const int receiver = 11; // Пин для приемника
 
void setup() 
{ 
  Serial.begin(9600); // Для тестирования принятых сообщений
  Serial.println("Receiver is waiting for messages"); //Вывод сообщения
  vw_set_rx_pin(receiver); // Установка пина для приема
 
  vw_setup(2000); // Скорость передачи данных (бит в секунду)
  vw_rx_start(); // Инициализация приемника
} 
 
void loop() 
{ 
  messageLength = VW_MAX_MESSAGE_LEN; //Определение длины сообщения
  if (vw_get_message(message, &messageLength)) // Если данные получены 
  { 
    for (int i = 0; i < messageLength; i++) //В цикле
    { 
      Serial.write(message[i]); // вывод их посимвольно в строку 
    } 
    Serial.write(" seconds from start"); //завершить сообщение
    Serial.println(); //Вывести набранную строку
  } 
}