Ранее я уже писал про использование радиоканала в своих дачных поделках. В этот раз, обзор интересного модуля, способного обеспечить прозрачную связь между различными устройствами по радиоканалу в частотном диапазоне 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 контроллера. Один оставим стационарно, а со вторым будем исследовать расстояния и прочее.
Собираем тестовые схемы. Это стационарный элемент:
Пишем нехитрый код для этого устройства (эхо сервер):
#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);
}
}
Модуль принимает число и посылает его обратно.
Вторая часть немного более сложная:
Я для отладки использовал панельку светодиодов и макетную плату. Питаться конструкция будет от аккумулятора. И код для нее:
В коде посылаются числа в цикле от 1 до 7, принимается ответ, и если переданное число совпадает с принятым, то мигает один тестовый диод, если приходит другое число (искажение в процессе передачи) то мигают все тестовые светодиоды, если ничего принять не удалось — то мигают нечетные светодиоды. Попутно для отладки я вывел посылаемую и принимаемую цифру в сериал-порт. Получилась довольно удобная схема отладки не требующая компьютера и позволяющая мобильно тестировать свойства модулей.
Видео работы такого комбайна:
Ну и самое интересное — результаты тестов:
5 кирпичных стен сигнал проходит вполне уверенно — на расстоянии 40 метров (вышел в подъезд), 6 стена дает 50% ошибок. 7 стен радиосигнал не преодолел.
На открытой местности уверенный прием был на расстоянии 250-300 метров, что в большинстве случаев вполне достаточно. Возможно в поле, без посторонних шумов прием будет и на большем расстоянии.
Потребляемый ток всей конструкции:
В целом модули мне понравились: компактные, работать с ними легко, дальнобойность вполне нормальная, не требуют доп библиотек (а это минимизация расхода памяти). Вполне подойдут мне для дачных поделок. К недостаткам я бы отнес отсутствие дополнительного пина, управляемого спец командой — чтобы сбрасывать контроллер — тогда можно было бы загружать программы в контроллер без каких либо иных средств — удаленно.
На этом заканчиваю, надеюсь информация окажется кому то полезной.
Товар предоставлен для написания обзора магазином. Обзор опубликован в соответствии с п.18 Правил сайта.
Планирую купить+91Добавить в избранноеОбзор понравился+53
+88
Скучное видео. Мигание светодиодов — это как «Hello, World!»
Надо хотя бы кнопки "+" и "-" на одном устройстве, и циферки показывать на индикаторе на другом…
Да речь не про обучение, а про наглядность видео, и оценку достоверности полученных посылок.
Но главное — они работают.
Хотя сейчас столько чипов с радио и готовых модулей на их основе…
эти модемы цепляют к «мозгам» квадрокоптеров для телеметрии, например. Либо вовсе делают управление. На небольших производствах можно делать автоматизированную ферму данных контроллеров и управлять с одного компа (контроллера) и так же давать управляющие сигналы и снимать показания.
тут да, один на один, но что мешает «ведущему», переключаться между «ведомыми» в заданном порядке и проверять их работоспособность, задав в программе каждому «ведомому» свой ID. Думается мне с этим нет никаких принципиальных проблем.
Видимо вы просто на занимаетесь этим, очень часто необходимо подключать датчики на большой територии. Тем более 1000 это цифры для визуализации мощности, не будут же они в бетонных стенах писать
Видимо вы просто не знаете об ограничения накладываемых государственными органами на использование радиодиапазона. На 433 это 10mW. А у данного экземпляра 100 и это китаец, значит что он там гонит в эфир и какой реальный спектр хрен поймешь. Кстати на LPD433 МЧС плотно сидит можно нарваться на сурьезную неприятность где нибудь в городе.
Это понятно. UHF я подразумеваю за вычетом LDP и PMR.
Именно для этого выделяют гражданские диапазоны — чтобы не мешать соответствующим службам работать.
Если взять какой-нибудь Баофенг, прости господи, за 20 баксов, и послушать эфир в 136-174, и 400-480, то там будут и МЧС, и МВД, и пожарные и черт в ступе. Но сидеть в PMR и LDP они не станут. Во-первых, потому что у них доступны свои частоты. Во-вторых, потому что в гражданке и на минимальной мощности весь эфир загажен.
В Киеве и не только, ГСО понаставила радиоконсоли, срущие в ЛПД не-лпд мощностями. Страдал даже бывший репитер Авто.ЮА. У меня есть скрины водопадов от RTLSDR
433 — гражданская полоса. Точно такая же, как и сиби. Было бы смешно там нарваться на сурьезную неприятность. Я думал здесь одна praesent подобной херней страдает (страшилки выдумывает). Оказывается, нет, других выдумщиков хватает…
Будет каша. Но там 100 каналов — за глаза хватит.
Если вы имеете ввиду, что кто-то другой поставит этот же модуль на этом же канале в зоне приёма — вероятность этого равна вероятности гибели от метеорита.
В общем принципе он работает в режиме точка точка.
А есть ли возможность принимать данные 1 приемником от нескольких передатчиков?(не зря же в лоте 5 модулей).
Я в этом не виноват ;)
PS. Уже обсуждалось ранее. Так продавцы количество заказов/отзывов набивают. Как вариант, формируйте несколько заказов и просите отправить одной посылкой.
если добавить хотя бы 1 модуль — доставка платная становится
Что мешает отправить пять пакетов по одному, раз уж китайцу так хочется на почту ходить?)))Опять же вероятность потери почтой всех пяти гораздо ниже)))
Вот прямо сейчас идет акция по собиранию халявных поинтов.
Дополнительно каждый день можно получать 20 поинтов за репост.
А 5 шт и мне не надо. Есть в наличии и поштучно.
самое забавное, когда предложили на обзор — я написал что мне 2 штуки надо — так как радиосвязь… выслали 2 партии по 5 — за что им конечно большое спасибо :)
на этих отдельных модулях есть еще 2 входа — разрешение приемника (RE) и разрешения передатчика (DE). Ими надо управлять. Получается надо ставить дополнительно МК (допустим ту-же ардуину), т.е. городить «огород»
опасаюсь вызвать гнев продвинутой в этом вопросе публики, но истину узнать дороже :)
Вопрос: а как по расстоянию работают модули NRF24L01 +? Я понимаю, что там не UART интерфейсы, и применение им явно другое. Но, предположим если какой-нить ардуиной конвертнуть ISCP в UART, либо наоборот (в общем привести т.ск. к общему знаменателю), то что выгодней, эти модули или NRF24L01 +?
на 433 хоть ширина полосы по не 20мгц
у меня на 300м в прямой видимости все работало с пультами на 12в батарейке
у нрф же ширина полосы при 250кбит соответствующая, при выходной мощности сравнимой с пультами 433 интегральная плотности мощности будет одинакова, а вот уровень куда ниже
Хороший обзор, нужно будет заказать для опытов. Но дальнобойные это вот эти…
XBee Pro s3b 900hp RPSMA ebay.com/itm/321151292240
Цена конечно тоже «дальнобойная»…
по моему, все ключевые особенности и простой пример работы я описал
конечно доп обзор не будет лишним, отличие только в том, что там температуру передают, а я просто цифру — зато у меня есть знания о том что я должен получить — соответственно искажения будут распознаваться
Не понимаю, как его подключить к компьютерному разъему RS-232. Вывода SET на нем нету. Как тогда подать АТ команду?
А так удобно связать через них комп и ККМ, когда они в разных помещениях.
Сформулируем по-другому. Если SET прижать к земле, то модуль будет транслировать в воздух то, что получает с пинов Tx/Rx, включая AT. Если SET подтянуть к единице, то модуль строки AT в воздух не транслирует, а сам отвечает на AT команды.
С компом соединять через любой UART TTL.
В чём проблема? Перемычкой подтянули к единице, один раз из Путти ручками модуль настроили, перемычку перекинули на землю.
А зачем UART TTL? Я полагал, что это переходник с USB на UART (COM). У меня на компе есть стандартный СОМ. Достаточно лишь соединить одноименные выводы?
Нет, не достаточно. Данным модулям нужен именно уровень TTL.
Протокол тот же, но уровни другие.
В COM-порте логические «1» и «0» — это уровни -12V и +12V.
У TTL это ≥+2.4V и ≤+0.4V.
Так что либо сопрягайте уровни с ком-порта (самодельным) переходником COM -> UART TTL, либо покупайте сразу USB ->UART TTL.
PS: Для самодельного сопрягания уровней есть MAX232 или ключами из транзисторов и резисторов.
Вообще, сейчас проще не городить огород с 232м, а купить нечто типа этого. Во-первых дёшево, во-вторых можно на любом компе/ноутбуке использовать, а не только там, где есть COM
Спасибо за обзор, добавил под заказ, а то все датчики погодные приходилось тянуть ещё две линии и плюс питание, теперь хватит одного питающего провода!
Приведите хоть один реальный пример за чем это надо? Веть по факту то:
1. мощность излучения низкая (максимально разрешенная);
2. дальность излучения (учитывая, если я правильно понял, что антенна направленная) неочень;
3. учитывая низкую полосу пропускания дальность должна быть выше, а она так себе;
4. сама по себе полоса пропускания низкая, по ней гонять только служебный трафик какой-нить ардуины да и только
В реальности модульки позволяют связать два устройства: например датчик или исполнительное устройство (например устройство управляющие шаровым краном) и сервер в пределах дачного (или иного) участка. Это дает немало возможностей и делается очень быстро без доп затрат.
1 — на дачный участок ее вполне достаточно
2 — см 1 (антенна не направленная, но можно поставить свою в тяжелых случаях)
3 — 300 метров в городских условиях вполне достаточно для обмена служебными данными (температура, команды и прочее)
4 — так для этого устройство и предназначено (видеопотоки конечно никто не собирается этим устройством гонять)
Крутяк) но думаю мне и с 2.0 покатит=) но вот есть задумка прокинуть из usb модема виртуальный ком порт модема… роутеры всякие на линуксе их видят… но вот не задача, надо как то адаптеру рассказать какое устройство вытаскивать… Вдруг сталкивались с таким)?
Если вдруг и правда дальнобойные нужны, то делают в Австралии. RFD900 store.rfdesign.com.au/rfd-900p-modem/. 1 ватт модули на 900 MHz, со стоковыми антеннами вроде на 40 миль получалось связаться. Я лично проверял на 18 км дальности (правда не на максимуме мощности), работали бы и дальше, но я тогда не сумел улететь дальше на своем самолете, меня радиоуправление с мощностью 0.5 ватта не отпустило.
да, это понятно. Но у RFD900 еще и дивесити встроенное есть :) Ну и 90 км на RFM23BP это явно с направленными антеннами. А тут как раз речь про обычные диполи.
Для чего оно ему? Понятно что это готовый модем, но цена показалось слегка завышенной. В случае с RFM с обоих сторон были обычные штырьки (1/4 с одной стороны, 3/4 с другой), с круговой диаграммой. Фишка в том, что между модулями была прямая видимость. Может ещё и с погодой повезло, пока что не удалось стационарно установить передатчик, чтобы можно было постоянно мониторить прохождение.
Если один из модемов подвижен (например стоит на ЛА), то удобно на один вход повесить направленную антенну, на другой диполь. Или повесить два диполя под углом 90 градусов, что бы при повороте связь не терять.
Да, и все же давайте говорить не про прохождение (я прекрасно знаю возможности RFM23BP), а про устойчивую связь для передачи данных. Для «прохождения» у меня RFM22 + усилок на 7 ватт (для РУ, где нужен канал только в одну сторону).
Ага, понятно. Устойчивая связь была на протяжении примерно двух часов в цифре, GFSK, толи 2, толи 4кб/с, после чего прямая видимость была потеряна (спустился с горы). Про погоду сказал потому, что интересно было бы посмотреть как на такой мощности получилось бы вещать во время дождя.
Если в программу добавить кодирование помехоустойчивым кодом (например, с коррекцией ошибок), то дальность связи можно увеличить. Правда, скорость упадет. Но, для телеметрии, например, будет не критично.
Вопрос по радиомодулям для ардуины в целом (и для этих в частности), давно хотел заказать что-нибудь для связи м/у ардуиными или чем либо еще, выбирал между блютусами, зигби, вифи ну и радио (вообще заказал ЕСПху, но это ладно). Вопрос такой, можно ли данными радиомодулями подключать больше двух устройств, для общего обмена данными с разделением команд что-кому программно, или они только спариваются один к другому и держут канал? или скажем если поставить 3 ардуины с 3мя модулями, программно переключать соединение?
Только что настроил свои модули. Жаль в этом обзоре написано для продвинутых пользователей… пришлось гуглить/читать по ссылке на документацию как подключать и вводить в режим команд.
Первым пунктом, я бы для новичков и незнаек типа меня написал бы не только:
«SET — управляющий вывод, низкий уровень на нем позволяет прозрачно передавать другому устройству AT — команды»
а еще бы добавил, что для начала ввода АТ команд, надо провод с пина СЕТ кинуть на массу. При быстром поиске «как подключить» на такие термины как «низкий/высокий» уровень не обращаешь внимания. Только когда не получается, начинаем «читать инструкцию» :)
Ура! Я выяснил главное, что интересовало меня в этих модулях с момента прочтения обзора.
А именно: как поведут себя >2 модулей на одном канале.
В комментариях выше уже поднимался этот вопрос, но там лишь предположения.
Я наконец-то проверил практически.
Решил отписаться сюда, вдруг кто-то с поисковика придёт.
Так вот. Модули не мешают друг другу. А совершенно добросовестно принимают и отправляют то, что идёт в данном канале.
Если один модуль что-то передаёт, все другие спокойно примут этот поток, не мешая друг другу.
Если передают сразу два, то в принимаемом потоке никаких битовых коллизий не возникает. Передаваемые обоими передатчиками символы лишь перемежаются друг с другом в общий поток, новых символов и мусора не возникает. Точнее, у меня не получилось добиться мусора. Т.е. при использовании нужного алгоритма, вполне реально разбирать этот поток без ошибок по двум источникам.
Надо хотя бы кнопки "+" и "-" на одном устройстве, и циферки показывать на индикаторе на другом…
Но главное — они работают.
Хотя сейчас столько чипов с радио и готовых модулей на их основе…
У автора было четкое представление куда он потом их применит.
А для показа работы соединения этого примера — за глаза.
Критики и придирок слишком много от Вас — не находите? Причем не по делу.
а микроволновка никак не сказывается
Именно для этого выделяют гражданские диапазоны — чтобы не мешать соответствующим службам работать.
Если взять какой-нибудь Баофенг, прости господи, за 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.