Комплект беспроводной 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)
Что нужно | Кол-во, шт |
---|---|
Контроллер | 2 |
Комплект беспроводной RF 433MHz | 1 |
Провода папа-мама | 6 |
Передатчик
Подключение:
Скетч для передатчика:
#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(); //Вывести набранную строку } }