RSS блога
Подписка
Дальнобойные радиомодули с Serial UART интерфейсом
- Цена: 22.69 $ за 5 штук
- Перейти в магазин
Ранее я уже писал про использование радиоканала в своих дачных поделках. В этот раз, обзор интересного модуля, способного обеспечить прозрачную связь между различными устройствами по радиоканалу в частотном диапазоне 433 MHz. Особенностью устройства является возможность подключения к Serial разъемам контроллера, компьютера, роутера и т.д., то есть не требуется дополнительных библиотек и разъемов. Второй особенностью является заявленная большая дальность связи. Под катом тестирование и описание
Пришли модули за 2 недели, под общей пупыркой лежали модульки, каждый в индивидуальной упаковке:
Чтобы сразу понять назначение модулей приведу две схемки. На первой классическое соединение двух устройств по Serial проводками, многие читающие так делали:
А если добавитьгрязи устройство из обзора то будет так:
Проводки заменены этими радиомодулями, при этом, работоспособность первой схемы сохранилась. Интересно? Читаем далее.
Заявлены следующие характеристики:
— дальность передачи 1000 метров на открытом пространстве (скорость 5000 бит в секунду)
— рабочий диапазон частот 433.4-473.0MHz (в этом диапазоне доступно 100 независимых каналов)
— мощность передатчика 100mW (20dBm)
— размеры устройства 27.8mm × 14.4mm × 4mm
— возможность подключения через разъем внешней антенны, либо пайка прилагаемой к модулю
— напряжение питания 3.2V~5.5V
— потребляемый ток: в спящем режиме 80 мкА, в режиме приема 3.6mA an 16mA, максимально в режиме передачи 100 mA.
Рассмотрим модуль поближе:
Обратная сторона:
Назначение выводов:
SET — управляющий вывод, низкий уровень на нем позволяет прозрачно передавать другому устройству AT — команды
TXD — вывод передачи
RXD — вывод приема
GND — земля
VCC — питание
ANT- отверстие для припаивания прилагаемой или любой другой антенны
Схематичное расположение элементов и размеры:
Модули очень маленькие.
Припаяем антенну и гребенку контактов, а также подключим проводки. Все это нам потребуется для исследования модуля:
Паяется все хорошо, антенна равнодушна к магниту:
Модуль имеет достаточно большое количество настроек, которые задаются AT командами.
1) AT тестовая команда, если все хорошо ответ будет “OK”.
2) AT+Bxxxx меняет скорость передачи (1,200bps, 2,400bps, 4,800bps, 9,600bps, 19,200bps, 38,400bps, 57,600bps, 115,200bps) По умолчанию — 9,600bps.
Пример: “AT+B57600”.
Следует заметить, что чем выше скорость тем меньше дальность передачи.
3) AT+Cxxxx изменяет канал взаимодействия (естественно на приемной и передающей стороне одного соединения должны быть одинаковые каналы), возможные значения: от 001 до 100. По умолчанию используется первый канал.
4) AT+Px задает режим мощности передатчика от 1 до 8, что соответствует мощности в dBm: -1 2 5 8 11 14 17 20. По умолчанию модуль работает на максимальной мощности.
5) AT+Ry позволяет получить информацию о параметрах модуля, где y — может принимать значения: B, C, F и P (скорость, канал, режим энергосбережения и мощность передатчика). Например, “AT+RP” вернет по умолчанию: “OK+RP: +20dBm”.
6) AT+RX вернет построчно все параметры из пункта 5.
7) AT+V выдает текущую версию ПО.
8) AT+SLEEP отправляет или выводит модуль из спящего режима.
9) AT+DEFAULT установка всех параметров в значения по умолчанию.
10) AT+UPDATE перевод модуля в режим обновления прошивки.
Вроде все что нужно для практического использования написал, если нужна более подробная информация — вот документация по модулям.
Ну а теперь самое интересное — устройства в работе. Для тестов нам потребуется 2 модуля и 2 контроллера. Один оставим стационарно, а со вторым будем исследовать расстояния и прочее.
Собираем тестовые схемы. Это стационарный элемент:
Пишем нехитрый код для этого устройства (эхо сервер):
Модуль принимает число и посылает его обратно.
Вторая часть немного более сложная:
Я для отладки использовал панельку светодиодов и макетную плату. Питаться конструкция будет от аккумулятора. И код для нее:
В коде посылаются числа в цикле от 1 до 7, принимается ответ, и если переданное число совпадает с принятым, то мигает один тестовый диод, если приходит другое число (искажение в процессе передачи) то мигают все тестовые светодиоды, если ничего принять не удалось — то мигают нечетные светодиоды. Попутно для отладки я вывел посылаемую и принимаемую цифру в сериал-порт. Получилась довольно удобная схема отладки не требующая компьютера и позволяющая мобильно тестировать свойства модулей.
Видео работы такого комбайна:
Ну и самое интересное — результаты тестов:
5 кирпичных стен сигнал проходит вполне уверенно — на расстоянии 40 метров (вышел в подъезд), 6 стена дает 50% ошибок. 7 стен радиосигнал не преодолел.
На открытой местности уверенный прием был на расстоянии 250-300 метров, что в большинстве случаев вполне достаточно. Возможно в поле, без посторонних шумов прием будет и на большем расстоянии.
Потребляемый ток всей конструкции:
В целом модули мне понравились: компактные, работать с ними легко, дальнобойность вполне нормальная, не требуют доп библиотек (а это минимизация расхода памяти). Вполне подойдут мне для дачных поделок. К недостаткам я бы отнес отсутствие дополнительного пина, управляемого спец командой — чтобы сбрасывать контроллер — тогда можно было бы загружать программы в контроллер без каких либо иных средств — удаленно.
На этом заканчиваю, надеюсь информация окажется кому то полезной.
Пришли модули за 2 недели, под общей пупыркой лежали модульки, каждый в индивидуальной упаковке:
Чтобы сразу понять назначение модулей приведу две схемки. На первой классическое соединение двух устройств по Serial проводками, многие читающие так делали:
А если добавить
Проводки заменены этими радиомодулями, при этом, работоспособность первой схемы сохранилась. Интересно? Читаем далее.
Заявлены следующие характеристики:
— дальность передачи 1000 метров на открытом пространстве (скорость 5000 бит в секунду)
— рабочий диапазон частот 433.4-473.0MHz (в этом диапазоне доступно 100 независимых каналов)
— мощность передатчика 100mW (20dBm)
— размеры устройства 27.8mm × 14.4mm × 4mm
— возможность подключения через разъем внешней антенны, либо пайка прилагаемой к модулю
— напряжение питания 3.2V~5.5V
— потребляемый ток: в спящем режиме 80 мкА, в режиме приема 3.6mA an 16mA, максимально в режиме передачи 100 mA.
Рассмотрим модуль поближе:
Обратная сторона:
Назначение выводов:
SET — управляющий вывод, низкий уровень на нем позволяет прозрачно передавать другому устройству AT — команды
TXD — вывод передачи
RXD — вывод приема
GND — земля
VCC — питание
ANT- отверстие для припаивания прилагаемой или любой другой антенны
Схематичное расположение элементов и размеры:
Модули очень маленькие.
Припаяем антенну и гребенку контактов, а также подключим проводки. Все это нам потребуется для исследования модуля:
Паяется все хорошо, антенна равнодушна к магниту:
Модуль имеет достаточно большое количество настроек, которые задаются AT командами.
1) AT тестовая команда, если все хорошо ответ будет “OK”.
2) AT+Bxxxx меняет скорость передачи (1,200bps, 2,400bps, 4,800bps, 9,600bps, 19,200bps, 38,400bps, 57,600bps, 115,200bps) По умолчанию — 9,600bps.
Пример: “AT+B57600”.
Следует заметить, что чем выше скорость тем меньше дальность передачи.
3) AT+Cxxxx изменяет канал взаимодействия (естественно на приемной и передающей стороне одного соединения должны быть одинаковые каналы), возможные значения: от 001 до 100. По умолчанию используется первый канал.
4) AT+Px задает режим мощности передатчика от 1 до 8, что соответствует мощности в dBm: -1 2 5 8 11 14 17 20. По умолчанию модуль работает на максимальной мощности.
5) AT+Ry позволяет получить информацию о параметрах модуля, где y — может принимать значения: B, C, F и P (скорость, канал, режим энергосбережения и мощность передатчика). Например, “AT+RP” вернет по умолчанию: “OK+RP: +20dBm”.
6) AT+RX вернет построчно все параметры из пункта 5.
7) AT+V выдает текущую версию ПО.
8) AT+SLEEP отправляет или выводит модуль из спящего режима.
9) AT+DEFAULT установка всех параметров в значения по умолчанию.
10) AT+UPDATE перевод модуля в режим обновления прошивки.
Вроде все что нужно для практического использования написал, если нужна более подробная информация — вот документация по модулям.
Ну а теперь самое интересное — устройства в работе. Для тестов нам потребуется 2 модуля и 2 контроллера. Один оставим стационарно, а со вторым будем исследовать расстояния и прочее.
Собираем тестовые схемы. Это стационарный элемент:
Пишем нехитрый код для этого устройства (эхо сервер):
#include <SoftwareSerial.h>
byte rx_data = 0; //variable to store receive data
SoftwareSerial mySerial(11, 10); // RX = pin D2, TX = pin D3
byte i = 1;
int LED = 13; //LED on Arduino board
void setup() {
pinMode(LED, OUTPUT);
pinMode(12,OUTPUT);
digitalWrite(12,HIGH);
mySerial.begin(9600);
Serial.begin(9600);
}
void loop(){
if(mySerial.available()) // check if UART receive data
{
rx_data = mySerial.read(); //store data received
digitalWrite(LED, HIGH);
mySerial.write(rx_data);
Serial.print("rcv:");
Serial.print(rx_data);
Serial.println();
digitalWrite(LED, LOW);
}
}
Модуль принимает число и посылает его обратно.
Вторая часть немного более сложная:
Я для отладки использовал панельку светодиодов и макетную плату. Питаться конструкция будет от аккумулятора. И код для нее:
#include <SoftwareSerial.h>
byte rx_data = 0; //variable to store receive data
SoftwareSerial mySerial(11, 10); // RX = pin D2, TX = pin D3
byte i = 1;
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(15, OUTPUT);
pinMode(12,OUTPUT);
digitalWrite(12,HIGH);
mySerial.begin(9600);
Serial.begin(9600);
}
void loop(){
Serial.print("send:");
Serial.print(i);
Serial.println();
mySerial.write(i);
delay(100);
if(mySerial.available()) // check if UART receive data
{
rx_data = mySerial.read(); //store data received
Serial.print("rcv:");
Serial.print(rx_data);
Serial.println();
if(rx_data == i){
digitalWrite(2, HIGH);
}else{
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
}
}else{
digitalWrite(3, HIGH);
digitalWrite(5, HIGH);
digitalWrite(7, HIGH);
}
delay(500);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
i++;
if (i>7) i=1;
}
В коде посылаются числа в цикле от 1 до 7, принимается ответ, и если переданное число совпадает с принятым, то мигает один тестовый диод, если приходит другое число (искажение в процессе передачи) то мигают все тестовые светодиоды, если ничего принять не удалось — то мигают нечетные светодиоды. Попутно для отладки я вывел посылаемую и принимаемую цифру в сериал-порт. Получилась довольно удобная схема отладки не требующая компьютера и позволяющая мобильно тестировать свойства модулей.
Видео работы такого комбайна:
Ну и самое интересное — результаты тестов:
5 кирпичных стен сигнал проходит вполне уверенно — на расстоянии 40 метров (вышел в подъезд), 6 стена дает 50% ошибок. 7 стен радиосигнал не преодолел.
На открытой местности уверенный прием был на расстоянии 250-300 метров, что в большинстве случаев вполне достаточно. Возможно в поле, без посторонних шумов прием будет и на большем расстоянии.
Потребляемый ток всей конструкции:
В целом модули мне понравились: компактные, работать с ними легко, дальнобойность вполне нормальная, не требуют доп библиотек (а это минимизация расхода памяти). Вполне подойдут мне для дачных поделок. К недостаткам я бы отнес отсутствие дополнительного пина, управляемого спец командой — чтобы сбрасывать контроллер — тогда можно было бы загружать программы в контроллер без каких либо иных средств — удаленно.
На этом заканчиваю, надеюсь информация окажется кому то полезной.
Самые обсуждаемые обзоры
+69 |
3258
133
|
+50 |
3501
65
|
+28 |
2457
45
|
+37 |
2771
40
|
+55 |
2022
37
|
Надо хотя бы кнопки "+" и "-" на одном устройстве, и циферки показывать на индикаторе на другом…
Но главное — они работают.
Хотя сейчас столько чипов с радио и готовых модулей на их основе…
У автора было четкое представление куда он потом их применит.
А для показа работы соединения этого примера — за глаза.
Критики и придирок слишком много от Вас — не находите? Причем не по делу.
а микроволновка никак не сказывается
Именно для этого выделяют гражданские диапазоны — чтобы не мешать соответствующим службам работать.
Если взять какой-нибудь Баофенг, прости господи, за 20 баксов, и послушать эфир в 136-174, и 400-480, то там будут и МЧС, и МВД, и пожарные и черт в ступе. Но сидеть в PMR и LDP они не станут. Во-первых, потому что у них доступны свои частоты. Во-вторых, потому что в гражданке и на минимальной мощности весь эфир загажен.
Если вы имеете ввиду, что кто-то другой поставит этот же модуль на этом же канале в зоне приёма — вероятность этого равна вероятности гибели от метеорита.
А есть ли возможность принимать данные 1 приемником от нескольких передатчиков?(не зря же в лоте 5 модулей).
или $4.07 с беспл. доставкой в Россию и Украину, в Беларусь платно.
PS. Уже обсуждалось ранее. Так продавцы количество заказов/отзывов набивают. Как вариант, формируйте несколько заказов и просите отправить одной посылкой.
И тогда будет 2 модуля по цене 1го.
Да и не всем нужны сразу пять модулей.
Дополнительно каждый день можно получать 20 поинтов за репост.
А 5 шт и мне не надо. Есть в наличии и поштучно.
Но, да, как минимум, одного DTR очень не хватает. А лучше бы сразу полный набор, с DSR/RTS/CTS.
Ещё нашёл такую, но цена тоже не радует…
Вопрос: а как по расстоянию работают модули NRF24L01 +? Я понимаю, что там не UART интерфейсы, и применение им явно другое. Но, предположим если какой-нить ардуиной конвертнуть ISCP в UART, либо наоборот (в общем привести т.ск. к общему знаменателю), то что выгодней, эти модули или NRF24L01 +?
2.4ггц засран
И портативки с мощностью 5-7 Вт — это выдумки :)
Кстати, 433МГц может тоже не работать на столе просто потому, что рядом коллекторный моторчик работает, а вот на 2,4ГГц помех от моторчиков уже нету.
у меня на 300м в прямой видимости все работало с пультами на 12в батарейке
у нрф же ширина полосы при 250кбит соответствующая, при выходной мощности сравнимой с пультами 433 интегральная плотности мощности будет одинакова, а вот уровень куда ниже
XBee Pro s3b 900hp RPSMA
ebay.com/itm/321151292240
Цена конечно тоже «дальнобойная»…
>>>
Здесь немного лучше обзор
tutorial.cytron.com.my/2014/05/15/wireless-uart-with-arduino-and-433mhz-or-434mhz-module/
конечно доп обзор не будет лишним, отличие только в том, что там температуру передают, а я просто цифру — зато у меня есть знания о том что я должен получить — соответственно искажения будут распознаваться
А так удобно связать через них комп и ККМ, когда они в разных помещениях.
С компом соединять через любой UART TTL.
В чём проблема? Перемычкой подтянули к единице, один раз из Путти ручками модуль настроили, перемычку перекинули на землю.
Протокол тот же, но уровни другие.
В COM-порте логические «1» и «0» — это уровни -12V и +12V.
У TTL это ≥+2.4V и ≤+0.4V.
Так что либо сопрягайте уровни с ком-порта (самодельным) переходником COM -> UART TTL, либо покупайте сразу USB ->UART TTL.
PS: Для самодельного сопрягания уровней есть MAX232 или ключами из транзисторов и резисторов.
Вроде как есть такой в природе, а на китацских рынках не попадался
паразитное питание дает те еще неожиданности
1. мощность излучения низкая (максимально разрешенная);
2. дальность излучения (учитывая, если я правильно понял, что антенна направленная) неочень;
3. учитывая низкую полосу пропускания дальность должна быть выше, а она так себе;
4. сама по себе полоса пропускания низкая, по ней гонять только служебный трафик какой-нить ардуины да и только
1 — на дачный участок ее вполне достаточно
2 — см 1 (антенна не направленная, но можно поставить свою в тяжелых случаях)
3 — 300 метров в городских условиях вполне достаточно для обмена служебными данными (температура, команды и прочее)
4 — так для этого устройство и предназначено (видеопотоки конечно никто не собирается этим устройством гонять)
в ожидании обзора их реальной/разумной/полезной реализации в недалёком будущем ;)
И за одно какой штуки чтобы вывести usb com port, просто в com port?
Да, и все же давайте говорить не про прохождение (я прекрасно знаю возможности RFM23BP), а про устойчивую связь для передачи данных. Для «прохождения» у меня RFM22 + усилок на 7 ватт (для РУ, где нужен канал только в одну сторону).
Первым пунктом, я бы для новичков и незнаек типа меня написал бы не только:
«SET — управляющий вывод, низкий уровень на нем позволяет прозрачно передавать другому устройству AT — команды»
а еще бы добавил, что для начала ввода АТ команд, надо провод с пина СЕТ кинуть на массу. При быстром поиске «как подключить» на такие термины как «низкий/высокий» уровень не обращаешь внимания. Только когда не получается, начинаем «читать инструкцию» :)
А именно: как поведут себя >2 модулей на одном канале.
В комментариях выше уже поднимался этот вопрос, но там лишь предположения.
Я наконец-то проверил практически.
Решил отписаться сюда, вдруг кто-то с поисковика придёт.
Так вот. Модули не мешают друг другу. А совершенно добросовестно принимают и отправляют то, что идёт в данном канале.
Если один модуль что-то передаёт, все другие спокойно примут этот поток, не мешая друг другу.
Если передают сразу два, то в принимаемом потоке никаких битовых коллизий не возникает. Передаваемые обоими передатчиками символы лишь перемежаются друг с другом в общий поток, новых символов и мусора не возникает. Точнее, у меня не получилось добиться мусора. Т.е. при использовании нужного алгоритма, вполне реально разбирать этот поток без ошибок по двум источникам.
Все эксперименты проводил на дефолтных 9600kbps.