Радиоканал с обратной связью 433 мгц схема. Использование RF-модулей
Иногда, между устройствами требуется установить беспроводное соединение. В последнее время для этой цели все чаще стали применять Bluetooth и Wi-Fi модули. Но одно дело передавать видео и здоровенные файлы, а другое - управлять машинкой или роботом на 10 команд. С другой стороны радиолюбители часто строят, налаживают и переделывают заново приемники и передатчики для работы с готовыми шифраторами/дешифраторами команд. В обеих случаях можно использовать достаточно дешевые RF-модули. Особенности их работы и использования под катом.
Типы модулей
RF-модули для передачи данных работают в диапазоне УКВ и используют стандартные частоты 433МГц, 868МГц либо 2,4ГГц (реже 315МГц, 450МГц, 490МГц, 915МГц и др.) Чем выше несущая частота, тем с большей скоростью можно передавать информацию.Как правило, выпускаемые RF-модули предназначены для работы с каким-либо протоколом передачи данных. Чаще всего это UART (RS-232) или SPI. Обычно UART модули стоят дешевле, а так же позволяют использовать нестандартные (пользовательские) протоколы передачи. Вначале я думал склепать что-то типа такого , но вспомнив свой горький опыт изготовления аппаратуры радиоуправления выбрал достаточно дешевые HM-T868 и HM-R868 (60грн. = менее $8 комплект). Существуют также модели HM-*315 и HM-*433 отличающиеся от нижеописанных лишь несущей частотой (315МГц и 433МГц соответственно). Кроме того есть множество других модулей аналогичных по способу работы, поэтому информация может быть полезной обладателям и других модулей.
Передатчик
Почти все RF-модули представляют собой небольшую печатную плату с контактами для подключения питания, передчи данных и управляющих сигналов. Рассмотрим передатчик(трансмиттер) HM-T868На нем имеется трехконтактный разъем: GND(общий), DATA(данные), VCC(+питания), а также пятачок для припайки антенны(я использовал огрызок провода МГТФ на 8,5см - 1/4 длинны волны).
Приемник
Ресивер HM-R868, внешне, очень похож на соответствующий ему трансмиттерно на его разъеме есть четвертый контакт - ENABLE, при подаче на него питания приемник начинает работать.
Работа
Судя по документации, рабочим напряжением является 2,5-5В, чем выше напряжение, тем большая дальность работы. По сути дела - это радиоудлинитель: при подаче напряжения на вход DATA передатчика, на выходе DATA приемника так же появится напряжение (при условии что на ENABLE также будет подано напряжение). НО, есть несколько нюансов. Во-первых: частота передачи данных (в нашем случае - это 600-4800 бит/с). Во-вторых: если на входе DATA нету сигнала более чем 70мс, то передатчик переходит в спящий режим(по-сути отключается). В-третьих: если в зоне приема ресивера нету работающего передатчика - на его выходе появляется всякий шум.Проведем небольшой эксперимент: к контактам GND и VCC трансмиттера подключим питание. Вывод DATA соединим с VCC через кнопку или джампер. К контактам GND и VCC ресивера также подключаем питание, ENABLE и VCC замыкаем между собой. К выходу DATA подключаем светодиод (крайне желательно через резистор). В качестве антенн используем любой подходящий провод длинной в 1/4 длинны волны. Должна получиться такая схемка:
Сразу после включения приемника и/или подачи напряжения на ENABLE должен загореться светодиод и гореть непрерывно (ну или почти непрерывно). После нажатии кнопки на передатчике, со светодиодом также ничего не происходит - он продолжает гореть и дальше. При отпускании кнопки светодиод мигнет(погаснет и снова загорится) и продолжает гореть дальше. При повторном нажатии и отпускании кнопки все должно повторится. Что же там происходило? Во время включения приемника, передатчик находился в спящем состоянии, приемник не нашел нормального сигнала и стал принимать всякий шум, соответственно и на выходе появилась всякая бяка. На глаз отличить непрерывный сигнал от шума нереально, и кажется, что светодиод светит непрерывно. После нажатия кнопки трансмиттер выходит из спячки и начинает передачу, на выходе ресивера появляется логическая «1» и светодиод светит уже действительно непрерывно. После отпускания кнопки передатчик передает логический «0», который принимается приемником и на его выходе также возникает «0» - светодиод, наконец, гаснет. Но спустя 70мс передатчик видит что на его входе все тот же «0» и уходит в сон, генератор несущей частоты отключается и приемник начинает принимать всякие шумы, на выходе шум - светодиод опять загорается.
Из вышесказанного следует, что если на входе трансмиттера сигнал будет отсутствовать менее 70мс и находится в правильном диапазоне частот, то модули будут вести себя как обычный провод (на помехи и другие сигналы мы пока не обращаем внимания).
Формат пакета
RF-модули данного типа можно подключить напрямую к аппаратному UART или компьютеру через MAX232, но учитывая особенности их работы я бы посоветовал использовать особые протоколы, описанные программно. Для своих целей я использую пакеты следующего вида: старт-биты, байты с информацией, контрольный байт(или несколько) и стоп-бит. Первый старт-бит желательно сделать более длинным, это даст время чтобы передатчик проснулся, приемник настроился на него, а принимающий микроконтроллер(или что там у Вас) начал прием. Затем что-то типа «01010», если на выходе приемника такое, то это скорее всего не шум. Затем можно поставить байт идентификации - поможет понять какому из устройств адресован пакет и с еще большей вероятностью отбросит шумы. До этого момента информацию желательно считывать и проверять отдельными битами, если хоть один из них неправильный - завершаем прием и начинаем слушать эфир заново. Дальше передаваемую информацию можно считывать сразу по байтам, записывая в соответствующие регистры/переменные. По окончании приема выполняем контрольное выражение, если его результат равен контрольному байту - выполняем требуемые действия с полученной информацией, иначе - снова слушаем эфир. В качестве контрольного выражения можно считать какую-нибудь контрольную сумму, если передаваемой информации немного, либо Вы не сильны в программировании - можно просто посчитать какое-то арифметическое выражение, в котором переменными будут передаваемые байты. Но необходимо учитывать то, что в результате должно получится целое число и оно должно поместится в количество контрольных байт. Поэтому лучше вместо арифметических операций использовать побитовые логические: AND, OR, NOT и, особенно, XOR. Если есть возможность, делать контрольный байт нужно обязательно так как радиоэфир - вещь очень загаженная, особенно сейчас, в мире электронных девайсов. Порой, само устройство может создавать помехи. У меня, например, дорожка на плате с 46кГц ШИМ в 10см от приемника очень сильно мешала приему. И это не говоря о том, что RF-модули используют стандартные частоты, на которых в этот момент могут работать и другие устройства: рации, сигнализации, радиоуправление, телеметрия и пр.На том же Aliexpress нашел недорогие радиомодули. Небольшие платы (не больше 2-3 см) с распаянными на них передатчиком и приемником диапазона 315МГц или 433МГц (указываем при заказе). В пересчете на один модуль цена получается 20-25 рублей. Юго-восточные соседи именуют данные конструкции так: RF wireless receiver module & transmitter module board.
Оказалось - очень интересные и полезные устройства для решения задачи передачи небольшого объема данных на короткие расстояния (в пределах 10-20 метров). Продаются, как правило, комплектами: передатчик + приемник.
Вроде бы радиопередатчик, но согласно «Перечня радиоэлектронных средств, для которых не требуется разрешений на использование», устройства дистанционного управления охранной сигнализации и оповещения в диапазоне 315/433МГц ±0,2% с выходной мощностью до 10 мВт могут эксплуатироваться без специальной регистрации. Радиочастотные модули очень просты в применении - для включения модуля достаточно подать питание, передаваемые данные и подключить антенну.
Такие модули широко распространены в бытовой технике. Они применяются, например в схемах: дистанционного управления люстрой, беспроводного дверного звонка и т.д.
Передатчик
Приемник
Радиомодуль приемника собран на печатной плате несколько большего размера 15х30мм по примерной схеме показанной на рисунке слева (схемка взята отсюда). За совпадение изображенного с оригиналом не ручаюсь, но общий принцип работы из рисунка ясен: есть транзисторный приемник ВЧ сигнала, к выходу которого через ФНЧ подключен компаратор на операционном усилителе. Таким образом, при наличии сигнала на входе приемника в указанном диапазоне, на выходе получаем "единицу", при отсутствии сигнала - "ноль". Приемник, имевшийся в моем распоряжении, несколько отличается от приведенной схемы. В частности, подстройка частоты производится не конденсатором, а индуктивностью (см фото), а выход операционного усилителя прямо подключен к линии DATA.
Примерные параметры устройства (по данным продавца с вышеуказанного сайта):
- Питание (VCC) +5В.
- Потребляемый ток не замерял, обещают - не выше 4мА.
- Чувствительность приемника обещают на уровне 5мкВ...
Подключение модуля: GND - общий провод питания, VCC - питание приемника, DATA - выход приемника - можно трактовать как TTL сигнал и подавать его на вход микроконтроллера. К выводу ANT подключается антенна, в качестве которой можно оспользовать "четверть-волновый штырь" - отрезок провода 17см для диапазона 433МГц (но можно и подлиннее что-нибудь прицепить).
Fun fact! Существуют другие, но совместимые передатчики на 433 МГц, в частности раз и два . Кроме того, есть и альтернативный приемник . Но он не вполне совместим, так как на выходе всегда выдает какой-то сигнал, независимо от того, осуществляется ли реально сейчас передача, или нет.
Для своих экспериментов я также использовал купленный на eBay пульт от гаража с внутренним DIP-переключателем:
При некотором везении такие пульты все еще можно найти как на eBay, так и на AliExpress по запросу вроде «garage door opener 433mhz with dip switch». Но в последнее время их вытесняют «программируемые» пульты, умеющие принимать и копировать сигнал других пультов. Доходит вплоть до того, что продавцы высылают пульты без DIP-переключателя даже в случае, если он явно изображен на представленном ими фото и указан в описании товара. Полагаться на внешнюю схожесть пульта с тем, что использовал я, также не стоит. Впрочем, если вы решите повторить шаги из этой заметки, наличие или отсутствие DIP-переключателя не сыграет большой роли.
Модули крайне просто использовать в своих проектах:
Как приемник, так и передатчик, имеет пины VCC, GND и DATA. У приемника пин DATA повторяется дважды. Питаются модули от 5 В. На фото слева собрана схема, в который светодиод подключен к пину DATA приемника. Справа собрана схема с передатчиком, чей пин DATA подключен к кнопке и подтягивающему резистору. Плюс в обоих схемах используется стабилизатор LM7805. Проще некуда.
Запишем сигнал при помощи Gqrx и откроем получившийся файл в Inspectrum:
Здесь мы видим такие же короткие и длинные сигналы, что нам показал осциллограф. Кстати, такой способ кодирования сигнала называется On-Off Keying . Это, пожалуй, самый простой способ передачи информации при помощи радиоволн, который только можно вообразить.
Запускаем, и на Scope Plot видим:
Практически такой же сигнал, что нам показал осциллограф!
Как видите, копеечные радиомодули на 433 МГц дают нам огромный простор для творчества. Их можно использовать не только друг с другом, но и со многими другими устройствами, работающими на той же частоте. Можно вполне успешно использовать их в чисто аналоговых устройствах без какого-либо микроконтроллера, например, с таймером 555 . Можно реализовывать собственные протоколы с чексуммами, сжатием, шифрованием и так далее, безо всяких ограничений, скажем, на длину пакета, как у NRF24L01 . Наконец, модули прекрасно подходят для broadcast посылки сообщений.
А какие потрясающие применения этим радиомодулям приходят вам на ум?
Дополнение: Также вас могут заинтересовать посты
Простое решение для вашей задачи!
Есть в наличии
Купить оптомТехнические характеристики
Рабочая частота (мГц) | 433 |
Тип питания | постоянный |
Количество входов (шт) | 1 |
Количество выходов (шт) | 1 |
Рекомендованная температура эксплуатации (°С) | -15...+60 |
Напряжение питания приемника (В) | 5 |
Напряжение питания передатчика (В) | 12 |
Вес, не более (г) | 20 |
Ток потребления приемника (мА) | 1,5 |
Ток потребления передатчика (мА) | 10 |
Входная чувствительность (мкВ) | 1,5 |
Дальность действия (м) | 100 |
Длина приемника (мм) | 19 |
Длина передатчика (мм) | 30 |
Выходная мощность передатчика (мВт) | 10 |
Входной уровень данных передатчика (В) | 5 |
Выходной уровень данных приемника (В) | 0,7 |
Ширина передатчика (мм) | 15 |
Высота передатчика (мм) | 10 |
Ширина приемника (мм) | 19 |
Высота приемника (мм) | 10 |
Вес | 22 |
Схемы
Использование комплекта без применения микроконтроллеров.
Комплект поставки
- Плата передатчика - 1 шт.
- Плата приемника - 1 шт.
- Инструкция - 1 шт.
Что потребуется для сборки
- Для подключения понадобится: провод, паяльник, бокорезы.
Условия эксплуатации
- Температура - -15С до +50С шт.
- Относительная влажность - 20-80% без образования конденсата шт.
Меры предосторожности
- Не превышайте максимально допустимое напряжение питания приемника и передатчика.
- Не путайте полярность питания приемника и передатчика.
- Не превышайте максимально допустимый ток выходов приемника.
- Не соблюдение данных требований приведет к выходу устройства из строя.
Вопросы и ответы
- Возможно ли приобрести несколько приемников к одному передатчику?
Если в помещении будут стоять несколько приемников, то будут ли все они срабатывать от одного передатчика?
- 1. Можно. 2. Будет.
- Могу ли я управлять приемником, одним из предлогаемых пультов 433 МГц
- Можно, но что бы не было ложных срабатываний необходимо за приемником установить микроконтроллер и запрограммировать его на купленный дополнительный пульт.
- Доброго времени суток!!!Возможно ли на данном устройстве,уменьшить дальность действия до 30 см?
- До 30 см не пробовали. Но дальность регулируется с помощью уменьшения длинны антенны на приемнике и передатчике.
- Добрый день, подскажите пожалуйста, данный комплект приёмника с передатчиком подлежит программированию, или это аналаговые приборы.
- Это аналоговые приборы. Предназначены для совместной работы с микроконтроллером.
Рано или поздно, в создаваемых проектах появится необходимость дистанционного управления. Одним из самых бюджетных решений является использование радиоприемника и радиопередатчика. Простейший пример их использования вы найдете в данной статье, а дальше все зависит только от ваших нужд и фантазии.
В первую очередь берем 2 платы Arduino и подключаем к ним приемник и передатчик, как показано на рисунке:
Компоненты для повторения (купить в Китае):
Перед тем как преступить к работе, нужно указать, что для полноценной работы, к модулям необходимо припаять антенну. Рекомендуемая длина антенны для передатчиков с частотой 433 МГц равна 17 см.
Библиотека необходимая для работы с модулем VirtualWire
Её необходимо распаковать и добавить в папку "libraries" в папке с Arduino IDE. Не забывайте перезагрузить среду, если на момент добавления IDEшка была открыта.
Пример программного кода
#include
Разберем этот код для полного понимания.
Во первых мы формируем строку strMsg. Используем тип String, т.к. с ним проще работать (можно конкатенировать его с числами, используя оператор "+").
Поскольку все передатчики работают в одном диапазоне частот, то каждый приемник будет принимать информацию с каждого передатчика находящегося в зоне досягаемости. Для того, чтобы отсеять лишние символы в простейшем случае можно просто предварить команды каким-то специальным символом. В нашем случае это символ "z".
После этого преобразовываем тип String к стандартному массиву символов при помощи метода toCharArray и передаем его в команду vw_send .
Наш код будет отправлять строку "z c 123".
Перейдем к коду приемника:
Пример программного кода
// Тестировалось на Arduino IDE 1.0.1
#include
Сообщение будет считано в буфер buf, который нужно разобрать.
В первую очередь проверяем наличие служебного символа "z", затем считываем код команды и затем преобразовываем строковое представление параметра в число.
Информация получена и разобрана, что делать дальше зависит от конкретной задачи.
В данной статье рассмотрен простейший вариант общения. В идеале нужно задуматься о кодировании передаваемой информации, т.к. её будут получать не только ваши приемники.
P.S. Работая с данными модулями, мы наткнулись на один не приятный подводный камень, а именно конфликт, невозможность работы с библиотекой "servo.h".