====== Комплект беспроводной RF 315MHz ======
===== Описание =====

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

==== Технические характеристики ====
  * Напряжение питания приемника: 5В
  * Напряжение питания передатчика: 3-12В
  * Потребляемый ток: до 15мА
  * Мощность передатчика: 10мВт
  * Скорость передачи данных: 4Кб/с
  * Чувствительность приемника: -105ДБм
  * Рабочая частота: 315МГц
  * Радиус действия в прямой видимости: 100м

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

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

==== Минусы использования ====
  * Нет шифрования данных (все передаваемые данные доступны и для других)
  * Невысокая дальность

==== Библиотека для работы с модулем ====
  * [[http://files.smartelements.ru/know_libs/virtualwire_master.zip|Скачать (virtualwire)]]
  
Для увеличения дальности требуется припаять антенну (около 20-30 см)

===== Примеры подключения и использования =====
В примере тестируется отправка данных о количестве секунд с момента запуска контроллера. И прием вторым устройством отправленных данных. (Для тестирования примеров использовались [[http://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|контроллеры Smart UNO]])
^ Что нужно                                                                                                                                 ^ Кол-во, шт  ^
| [[http://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер                      ]]                        | 2           |
| [[http://smartelements.ru/collection/svyaz/product/komplekt-priemnikperedatchik-besprovodnoy-rf-315mhz|Комплект беспроводной RF 315MHz]]  | 1           |
| [[http://smartelements.ru/collection/provoda-i-kabeli/product/nabor-provodov-20-sht-20sm-papa-mama|Провода папа-мама]]                    | 6           |

==== Передатчик ====
**Подключение:**

{{ :главная:связь:peredatchik_ru.jpg |}}

**Скетч для Передатчика:**
<file Arduino>
#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 секунда 
}
</file>

==== Приёмник ====
**Подключение:**
{{ :главная:связь:prijomnik_ru.jpg |}}

**Скетч для приёмника:**
<file Arduino>
#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(); //Вывести набранную строку
  } 
}
</file>