Схемы управления с модулем 433 мгц. Использование RF-модулей. Выбор режима работы

Схемы управления с модулем 433 мгц. Использование RF-модулей. Выбор режима работы

Рано или поздно, в создаваемых проектах появится необходимость дистанционного управления. Одним из самых бюджетных решений является использование радиоприемника и радиопередатчика. Простейший пример их использования вы найдете в данной статье, а дальше все зависит только от ваших нужд и фантазии.

В первую очередь берем 2 платы Arduino и подключаем к ним приемник и передатчик, как показано на рисунке:

Компоненты для повторения (купить в Китае):

Перед тем как преступить к работе, нужно указать, что для полноценной работы, к модулям необходимо припаять антенну. Рекомендуемая длина антенны для передатчиков с частотой 433 МГц равна 17 см.

Библиотека необходимая для работы с модулем VirtualWire

Её необходимо распаковать и добавить в папку "libraries" в папке с Arduino IDE. Не забывайте перезагрузить среду, если на момент добавления IDEшка была открыта.

Пример программного кода

#include void setup (void ) { vw_set_ptt_inverted(true ); // Необходимо для DR3100 vw_setup(2000); // Устанавливаем скорость передачи (бит/с) } void loop (void ) { int number = 123; char symbol = "c" ; String strMsg = "z " ; strMsg += symbol; strMsg += " " ; strMsg += number; strMsg += " " ; char msg; strMsg.toCharArray(msg, 255); Serial .println (msg); vw_send((uint8_t *)msg, strlen(msg)); vw_wait_tx(); // Ждем пока передача будет окончена delay (200); }

Разберем этот код для полного понимания.

Во первых мы формируем строку strMsg. Используем тип String, т.к. с ним проще работать (можно конкатенировать его с числами, используя оператор "+").

Поскольку все передатчики работают в одном диапазоне частот, то каждый приемник будет принимать информацию с каждого передатчика находящегося в зоне досягаемости. Для того, чтобы отсеять лишние символы в простейшем случае можно просто предварить команды каким-то специальным символом. В нашем случае это символ "z".

После этого преобразовываем тип String к стандартному массиву символов при помощи метода toCharArray и передаем его в команду vw_send .

Наш код будет отправлять строку "z c 123".

Перейдем к коду приемника:

Пример программного кода

// Тестировалось на Arduino IDE 1.0.1 #include void setup () { Serial .begin (9600); vw_set_ptt_inverted(true ); // Необходимо для DR3100 vw_setup(2000); // Задаем скорость приема vw_rx_start(); // Начинаем мониторинг эфира } void loop () { uint8_t buf; // Буфер для сообщения uint8_t buflen = VW_MAX_MESSAGE_LEN; // Длина буфера if (vw_get_message(buf, &buflen)) // Если принято сообщение { // Начинаем разбор int i; // Если сообщение адресовано не нам, выходим if (buf != "z" ) { return ; } char command = buf; // Команда находится на индексе 2 // Числовой параметр начинается с индекса 4 i = 4; int number = 0; // Поскольку передача идет посимвольно, то нужно преобразовать набор символов в число while (buf[i] != " " ) { number *= 10; number += buf[i] - "0" ; i++; } Serial .print (command); Serial .print (" " ); Serial .println (number); } }

Сообщение будет считано в буфер buf, который нужно разобрать.

В первую очередь проверяем наличие служебного символа "z", затем считываем код команды и затем преобразовываем строковое представление параметра в число.

Информация получена и разобрана, что делать дальше зависит от конкретной задачи.

В данной статье рассмотрен простейший вариант общения. В идеале нужно задуматься о кодировании передаваемой информации, т.к. её будут получать не только ваши приемники.

P.S. Работая с данными модулями, мы наткнулись на один не приятный подводный камень, а именно конфликт, невозможность работы с библиотекой "servo.h".

Комплект предназначен для беспроводного управления электроприборами в диапазоне 433 МГц, на дальности до 300/500** метров. Приемник имеет четыре режима работы триггер, переключатель, таймер и кнопка. Приемник из комплекта работает не только с пультами серии MP323TX, а так же MP910, MP324M/передатчик, MP325M/передатчик и MP433/передатчик, как по отдельности, так и в смешанном режиме. Благодаря чему можно построить многоканальную систему управления до 15 каналов с приемниками расположенными как в одной, так и в разных точках. Если требуется подключение неограниченного количества передатчиков используйте пульты MP910 или MP433/передатчик.

С передатчиком MP323TX5 дальность действия приемника увеличивается до 500 метров.

Комплект состоит из передатчика (пульт) / приемника и предназначен для беспроводного управления электроприборами в диапазоне 433 МГц, на дальности до 50/500** метров. Приемник имеет три режима работы кнопка, триггер1 и тригер2. Приемник из комплекта работает не только с пультами серии MP323TX, а так же MP910, MP324M/передатчик, MP325M/передатчик и MP433/передатчик как по отдельности, так и в смешанном режиме. Благодаря чему можно построить многоканальную систему управления до 15 каналов с приемниками расположенными как в одной так и в разных точках. Если требуется подключение неограниченного количества передатчиков используйте пульты MP910 или MP433/передатчик.
Комплект будет незаменим для управления прожекторами, электромоторами, насосами и освещением во дворе дома. Реле приемника способно коммутировать напряжение до 250В и управлять электроприборами мощностью до 2200Вт.
Для увеличения дальности до 500 метров необходимо использовать пульт MP323TX5.

6-канальное радиореле MP3331 представляет собой приемник 433 Мгц с силовыми реле для управления нагрузкой. Это готовый модуль для дистанционного управления вашими электроприборами. Экономит время, силы и деньги на прокладке кабеля к труднодоступным лампам, насосам, обогревателям, вентиляторам, кондиционерам, электрозамкам, шлагбаумам, приводам жалюзи и автоматических ворот… Позволяет быстро перенести выключатели в удобное именно для вас место и при этом бережет дорогостоящий ремонт и интерьер. С MP3331 работает только передатчик MP3329SE.

Требуется одновременное дистанционное телеуправление до 8 каналов?
Подбираете дистанционное управление несколькими устройствами без помех?
Это то что вам нужно!
Предлагаем готовый модуль MP3329 SE — сердце проекта «Удобный выключатель». Это передатчик на частоте 433,92 МГц с частотной модуляцией и обратной связью. Модуль предназначен для одновременного управления минимум одним и максимум 8-ю исполнительными радиореле. Каждый канал работает независимо друг от друга, включение или выключение одного канала не влияет на работу другого. В этом главное отличие от привычных систем ДУ с брелками, у которых одновременное нажатие двух и более кнопок, как правило, приводит к сбою в работе исполнительных устройств. Второе отличие — обратная связь. Если исполнительное реле не прислало подтверждение о приеме команды, передатчик повторит ее еще и еще.
Пульт поддерживает приемники MP3328, MP3330, MP3331.
Благодаря широкому выбору приемников вы можете разместить их в любых точках где установлены электроприборы.

Модуль представляет собой базу управления беспроводными устройствами. Полезен для увеличения дальности или смешанного управления существующих беспроводных систем диапазона 433 МГц. Благодаря наличию дисплея можно увидеть код передаваемый передатчиком. Модуль имеет четыре логических входа, для подключения 4-х кнопок управления или линий контроля и 8 TTL выходов для подключения силовых модулей, например, MP515 или MP220op. Модуль может работать в режиме: дубликатора, репитера, маяка. Радиус работы с беспроводными приемниками достигает до 600 метров (при использовании комплекта MP433PRO). При использовании направленных антенн дальность может быть увеличена до нескольких километров.

Дополнительный четырехкнопочный передатчик (брелок) диапазона 433 МГц.
Предназначен для совместной работы с беспроводными системами дистанционного управления диапазона 433 МГц с ASK модуляцией. Поддерживает большое количество встраиваемых систем управления освещением и розеток с фиксированным и обучающим кодом. Например, таких как WOKEE и TELEIMPEX и им подобных. А так же систем построенных на микросхемах SC5262 / SC5272, HX2262 / HX2272, PT2262 / PT2272, EV1527, RT1527, FP1527, HS1527, SC5211, HS2260, SC1527, SC2262. Например, из каталога Мастер Кит MP911, MP912, MP913, MP426, MP324M, MP325M, MP326M, MA3484BM, MA3686B, MA0353A, MA8182, MA8183, MA8184, MA9801E27, MA9802E27, MA9803E27, MA9938G1, MA9938G2, MA9938G3, MA3171E, MA3272B, MA3373E, Came Top-434Na.
Количество подключаемых пультов к той или иной системе может быть не ограничено. Для подключения к беспроводной системе необходим мастер пульт.

Универсальный радиомодуль предназначен для DIY моделирования и экспериментов в области беспроводной радиосвязи на частоте 433МГц или 2.4 ГГц. Модуль построен на мощном, в масштабах Ардуино, микроконтроллере ATMEL MEGA328P и снабжен OLED экраном, что упрощает отладку программ и обеспечивает наглядность процессов. Через установленные разъемы к модулю можно легко подключить либо очень бюджетные радиомодули, работающие на частоте 433 МГц (приемник и передатчик), либо популярный модуль nRF24L01, работающий на частоте 2,4 ГГц. Несколько свободных выходов микроконтроллера выведены на контакты платы для подключения внешних устройств. Встроенная баттарея для автономных решений. Три кнопки для организации меню. Проект является открытым, его автор: http://rayshobby.net/rftoy/ На этом сайте можно найти дополнительные материалы, примеры и библиотеки, которые позволят легко стартовать свои собственные эксперименты.

Устройства дистанционного управления (ДУ) давно и прочно вошли в нашу жизнь. Это и инфракрасные пульты для управления бытовыми приборами, и беспроводные звонки, и автомобильные сигнализации и т.д. Отчасти их созданию послужила лень, отчасти технические ограничения, но теперь все мы пользуемся такими устройствами весьма широко.

Есть особый класс устройств дистанционного управления по радиоканалу на одной из нелицензируемых частот в полосе от 433,075 до 433,790 МГц - их можно свободно использовать для любых нужд, правда, с некоторыми ограничениями по мощности излучаемого сигнала.

Именно эти устройства получили, пожалуй, наибольшее распространение в системах дистанционного управления по радиоканалу. Они недорого стоят, просты в установке и обслуживании, имеют небольшие габариты и не требуют специальных антенн - достаточно куска провода.

С помощью таких устройств можно на расстоянии включить освещение на садовом участке, открыть калитку или автоматические ворота, включить электродвигатель или нагреватель.

Ограничения, накладываемые на мощность передатчика, сказываются на дальности действия. Стандартное значение дальности не превышает 100 метров на открытом пространстве. В помещении дальность существенно зависит от свойств материалов, через которые распространяется электромагнитное излучение передатчика и геометрии самого помещения. В этом случае только натурный эксперимент может помочь определить дальность.

Следует отметить, что и в этом классе устройств дистанционного управления есть специальные модели с повышенной дальностью работы. Также дальность можно повысить, если применить направленные антенны на стороне передатчика и/или приемника.

В предлагаемом обзоре мы рассмотрим устройства дистанционного управления для DIY-проектов, завоевавшие популярность пользователей продукции компании Мастер Кит. Все эти устройства прошли испытания реальной эксплуатацией в течение заметного времени, надежны и просты в использовании.

Для удобства мы свели описания устройств ДУ в таблицу, расположенную в конце обзора. Таблица поможет выбрать самые подходящие из них для ваших проектов.

Предлагаемые устройства можно разделить, прежде всего, на две категории:

комплекты ДУ, включающие в себя пару передатчик-приемник (кнопочный пульт-передатчик в виде брелка или печатной платы с контактами; приемник в виде платы с контактами или исполнительными элементами); при этом приемник уже настроен на прием сигналов именно от того передатчика, который входит в комплект;

отдельные передатчики и приемники, требующие настройки для работы в паре.

Передатчики, в свою очередь, могут быть специализированными и предназначенными для работы с определенным видом приемников, и универсальными. Это необходимо учитывать, если вы приобретаете устройства по отдельности, или предполагаете использовать несколько брелков-передатчиков с одним приемником, а также несколько приемников с одним брелком.

Следует отметить, что с целью уменьшения возможных ложных срабатываний исполнительное устройство приемника, как правило, включается через приблизительно одну секунду после нажатия кнопки или подачи управляющего сигнала на передатчик.

Несколько слов о терминологии основных режимов работы исполнительных устройств (как правило, реле) модулей ДУ:

  • в режиме «кнопка» исполнительное реле приемника срабатывает в момент нажатия кнопки или подачи управляющего сигнала на передатчик, и удерживается в этом состоянии, пока кнопка нажата; при отпускании кнопки реле также отпускает;
  • в режиме «триггер» однократное нажатие кнопки включает реле, вторичное нажатие - выключает.

При разработке проектов на предлагаемых устройствах ДУ необходимо учитывать, что они не обеспечивают обратную связь, поэтому контроль срабатывания исполнительных систем остается отдельной задачей.

Рассмотрим кратко особенности некоторых модулей дистанционного управления.

Простую и надежную одноканальную систему ДУ можно собрать на модуле MK333 с дополнительными брелками-передатчиками MK336 . Миниатюрный приемник с прилагаемым корпусом можно питать как переменным напряжением 220 В, так и постоянным 12 В при подключении последнего за встроенным блоком питания от переменного напряжения. Система может работать только в триггерном режиме - одна кнопка передатчика включает реле приемника, вторая - выключает. Посмотрите видео , размещенное в конце описания, из которого можно узнать, как заменить выключатель торшера на дистанционный с помощью модуля MK333 .

Широкие возможности для собственных проектов предоставляет комплект MP324M с четырехкнопочным пультом и четырехканальным приемником с выходами уровня TTL (транзисторно-транзисторной логики). Используя дополнительные модули, можно реализовать несколько режимов исполнительных систем с помощью одного приемника.

Если для вашего проекта необходимы два мощных канала управления, обратите внимание на устройство MP325M , имеющее на борту два реле по 2 кВт и работающее в режимах «кнопка» и «триггер», устанавливаемые для каждого канала отдельно с помощью перемычек (джамперов) на плате. Прочтите статьи, посвященные применению этого устройства:

  1. «Дистанционное управление распашными воротами своими руками »
  2. «Беспроводной реверс автомобильной лебедки или электродвигателя постоянного тока »

Модуль ДУ MP326M дает возможность управлять четырьмя каналами с настраиваемыми режимами «кнопка» и «триггер» для каждого канала.

Устройство MP426 SE также имеет четыре канала, но, в отличие от предыдущего, работает в трех режимах - «кнопка», «триггер» и «перебор каналов».

Для реализации проектов с применением микроконтроллеров подойдут комплекты приемник-передатчик MP433 и MP433PRO . Эти пары являются аналоговыми устройствами, не осуществляющими кодировку передаваемого сигнала. Вы сами можете сформировать уникальные кодирующие последовательности, затрудняющие их несанкционированную дешифровку. С помощью микроконтроллера, например, широко распространенной платформы Ардуино, на основе предлагаемых модулей можно реализовать многоканальное управление радиоуправляемыми моделями.

Устройство MP433PRO отличается увеличенным расстоянием - до 600 м в свободном пространстве и расширенным диапазоном температур, позволяющим использовать его вне помещений.

Универсальный пульт дистанционного управления MP433/передатчик является поистине находкой для пользователей систем ДУ! Он предназначен для совместной работы с беспроводными системами диапазона 433 МГц с ASK модуляцией и поддерживает большое количество встраиваемых систем управления освещением и розеток с фиксированным и обучающим кодом, например, таких как WOKEE и TELEIMPEX и им подобные. Также пульт поддерживает системы, построенные на микросхемах SC5262 / SC5272, HX2262 / HX2272, PT2262 / PT2272, EV1527, RT1527, FP1527, HS1527, SC5211, HS2260, SC1527, SC2262.

Приемники MP911 , MP912 и MP913 управляются от предлагаемого отдельно пульта-передатчика MP913 и отличаются режимами работы и числом каналов. Первый из этих приемников реализует одноканальный режим «кнопка», второй - одноканальный «триггер», третий - двухканальная «кнопка».

В этом обзоре мы упомянем стоящий особняком модуль MP8036mhz , который является настоящей базой для управления беспроводными устройствами в диапазоне 433 МГц. Этот модуль может работать в режимах сканера, дубликатора, репитера, маяка. В режиме сканера, благодаря наличию дисплея, можно увидеть код, передаваемый сканируемым передатчиком. Модуль имеет четыре логических входа для подключения четырех кнопок управления или линий контроля и восемь TTL-выходов для подключения силовых модулей. Дальность работы с беспроводными приемниками достигает 600 метров (при использовании комплекта MP433PRO). При использовании направленных антенн дальность может быть увеличена до нескольких километров.

Несколько слов в заключение.

Прежде чем добавлять или «обучать» передатчики, внимательно прочтите описания этих процедур на сайте. Производимые действия отличаются для разных устройств!

Обращаем ваше внимание на имеющиеся в описаниях устройств ДУ комплекты с дополняющими их модулями. Например, вместе с парой передатчик-приемник MP324M можно приобрести силовое реле MP146 и источник питания PW1245 , что обойдется вам дешевле, чем покупка этих устройств по отдельности. Комплектом (MP324M + MP146 + PW1245) - дешевле!

Сравнительная таблица популярных устройств дистанционного управления на частоте 433 МГц

Артикул Функцио-
нальное
назначение
Питание Число
каналов
управления
Максимальная
мощность
одного
канала
управления
Дополни-
тельный
брелок-
передатчик
Дальность Режимы
работы
Особенности
MK333 Комплект
брелок-
передатчик+
приемник
~220 В 1 ~1000 Вт (7 А) MK336 40 м Только триггер . самый миниатюрный приемник;
. корпус для приемника в комплекте;
. до 20 дополнительных брелков.
MK336 Брелок-передатчик Бат.12 В 40 м . дополнительный брелок для MK333
MP324M Комплект
брелок-
передатчик+
приемник
=5 В
(приемник)
Бат.12 В
(передатчик)
4 Маломощный,
TTL-уровни
MP433/
передатчик
MP325M/
передатчик
MP324M/
передатчик
100 м Кнопка . для реализации режимов «триггер»
и «импульс» используется MP146 ;
. диапазон рабочих температур
приемника от -40 до +80 градусов;
. при использовании брелка MP433/
передатчик число подключаемых брелков
неограниченно.
MP324M/
передатчик
Брелок-
передатчик
Бат.12В 4 100 м . подходит для MP324M , MP326M
. 4 кнопки;
. можно заменить на MP433/
передатчик.
MP325M Комплект
брелок-
передатчик+
приемник
=12 В
(приемник)
Бат.12 В
(передатчик
2 ~2000 Вт (10 А) MP433/
передатчик
MP325M/
передатчик
MP324M/
передатчик
100 м Кнопка, триггер

При использовании брелка MP433/
передатчик число подключаемых
брелков неограниченно;
. светодиодная индикация состояний реле;
. входы типа «триггер» для сброса реле.

MP325M/
передатчик
Брелок-
передатчик
Бат.12В 2 100 м . дополнительный брелок для MP325M
MP326M Комплект
брелок-
передатчик+
приемник
=12 В
(приемник)
Бат.12 В
(передатчик
4 ~2000 Вт (10 А) MP325M/
передатчик
MP324M/
передатчик
100 м Кнопка, триггер . светодиодная индикация состояний реле;
. сброс реле в режиме «триггер»;

брелков MP324M/ передатчик.
MP426 SE Комплект
брелок-
передатчик+
приемник
=12 В
(приемник)
Бат.12 В
(передатчик
4 ~1000 Вт (5 А) MP433/
передатчик
100м Кнопка, триггер,
перебор каналов
. три режима работы;
. неограниченное число дополнительных
брелков
  • Простота подключения. Рассматриваемые модули , в отличии от nRF24L01+ , питаются от напряжения 5 В.
  • Доступность. Радио модули выпускаются множеством производителей, в различном исполнении и являются взаимозаменяемыми.
  • Недостатки:

    • На частоте 433,920 МГц работают множество других устройств (радио люстры, радио розетки, радио брелки, радио модели и т.д.), которые могут «глушить» передачу данных между радио модулями .
    • Отсутствие обратной связи. Модули разделены на приёмник и передатчик . Таким образом, в отличии от модуля nRF24L01+ , приемник не может отправить передатчику , сигнал подтверждения приёма.
    • Низкая скорость передачи данных, до 5 кбит/сек.
    • Приёмник MX-RM-5V критичен даже к небольшим пульсациям на шине питания. Если Arduino управляет устройствами вносящими даже небольшие, но постоянные, пульсации в шину питания (сервоприводы, LED индикаторы, ШИМ и т.д.), то приёмник расценивает эти пульсации как сигнал и не реагирует на радиоволны передатчика. Влияние пульсаций на приёмник можно снизить одним из способов:
      • Использовать, для питания Arduino, внешний источник, а не шину USB. Так как напряжение на выходе многих внешних источников питания контролируется или сглаживается. В отличии от шины USB, где напряжение может существенно «проседать».
      • Установить на шине питания приёмника сглаживающий конденсатор.
      • Использовать отдельное стабилизированное питание для приёмника.
      • Использовать отдельное питание для устройств вносящих пульсации в шину питания.

    Нам понадобится:

    • Радио модули FS1000A и MX-RM-5V х 1 комплект.
    • Trema светодиод (красный , оранжевый , зелёный , синий или белый) x 1шт.
    • Набор проводов «мама-мама» для подключения радио модулей х 1 комплект.

    Для реализации проекта нам необходимо установить библиотеки:

    • Библиотека iarduino_RF433 (для работы с радио модулями FS1000A и MX-RM-5V).
    • Библиотека iarduino_4LED , (для работы с Trema четырехразрядным LED индикатором).

    О том как устанавливать библиотеки, Вы можете ознакомиться на странице Wiki - Установка библиотек в Arduino IDE .

    Антенна:

    Первый усилитель любого приёмника и последний усилитель любого передатчика, это антенна. Самая простая антенна - штыревая (отрезок провода определённой длины). Длина антенны (как приёмника, так и передатчика), должна быть кратна четверти длины волны несущей частоты. То есть, штыревые антенны, бывают четвертьволновые (L/4), полуволновые (L/2) и равные длине волны (1L).

    Длинна радиоволны вычисляется делением скорости света (299"792"458 м/с) на частоту (в нашем случае 433"920"000 Гц).

    L = 299"792"458 / 433"920"000 = 0,6909 м = 691 мм.

    Таким образом длина антенн для радио модулей на 433,920 МГц может быть: 691 мм (1L), 345 мм (L/2), или 173 мм (L/4). Антенны припаиваются к контактным площадкам, как показано на схеме подключения.

    Видео:

    Схема подключения:

    Приёмник:

    При старте (в коде setup) скетч настраивает работу радиоприёмника , указывая те же параметры что и у передатчика , а также инициирует работу с LED индикатором . После чего, постоянно (в коде loop), проверяет нет ли в буфере данных, принятых радиоприёмником . Если данные есть, то они читаются в массив data, после чего значение 0 элемента (показания Trema слайдера) выводится на LED индикатор , а значение 1 элемента (показания Trema потенциометра) преобразуются и используется для установки яркости светодиода .

    Код программы:

    Передатчик:
    #include // Подключаем библиотеку для работы с передатчиком FS1000A iarduino_RF433_Transmitter radio(12); // Создаём объект radio для работы с библиотекой iarduino_RF433, указывая номер вывода к которому подключён передатчик int data; // Создаём массив для передачи данных void setup(){ radio.begin(); // Инициируем работу передатчика FS1000A (в качестве параметра можно указать скорость ЧИСЛО бит/сек, тогда можно не вызывать функцию setDataRate) radio.setDataRate (i433_1KBPS); // Указываем скорость передачи данных (i433_5KBPS, i433_4KBPS, i433_3KBPS, i433_2KBPS, i433_1KBPS, i433_500BPS, i433_100BPS), i433_1KBPS - 1кбит/сек radio.openWritingPipe (5); // Открываем 5 трубу для передачи данных (передатчик может передавать данные только по одной из труб: 0...7) } // Если повторно вызвать функцию openWritingPipe указав другой номер трубы, то передатчик начнёт передавать данные по вновь указанной трубе void loop(){ data = analogRead(A1); // считываем показания Trema слайдера с вывода A1 и записываем их в 0 элемент массива data data = analogRead(A2); // считываем показания Trema потенциометра с вывода A2 и записываем их в 1 элемент массива data radio.write(&data, sizeof(data)); // отправляем данные из массива data указывая сколько байт массива мы хотим отправить delay(10); // пауза между пакетами }
    Приемник:
    #include // Подключаем библиотеку для работы с приёмником MX-RM-5V #include // Подключаем библиотеку для работы с четырёхразрядным LED индикатором iarduino_RF433_Receiver radio(2); // Создаём объект radio для работы с библиотекой iarduino_RF433, указывая номер вывода к которому подключён приёмник (можно подключать только к выводам использующим внешние прерывания) iarduino_4LED dispLED(6,7); // Создаём объект dispLED для работы с функциями библиотеки iarduino_4LED, с указанием выводов дисплея (CLK , DIO) int data; // Создаём массив для приёма данных const uint8_t pinLED=11; // Создаём константу с указанием вывода ШИМ к которому подключён светодиод void setup(){ dispLED.begin(); // Инициируем работу LED индикатора radio.begin(); // Инициируем работу приёмника MX-RM-5V (в качестве параметра можно указать скорость ЧИСЛО бит/сек, тогда можно не вызывать функцию setDataRate) radio.setDataRate (i433_1KBPS); // Указываем скорость приёма данных (i433_5KBPS, i433_4KBPS, i433_3KBPS, i433_2KBPS, i433_1KBPS, i433_500BPS, i433_100BPS), i433_1KBPS - 1кбит/сек radio.openReadingPipe (5); // Открываем 5 трубу для приема данных (если вызвать функцию без параметра, то будут открыты все трубы сразу, от 0 до 7) // radio.openReadingPipe (2); // Открываем 2 трубу для приёма данных (таким образом можно прослушивать сразу несколько труб) // radio.closeReadingPipe(2); // Закрываем 2 трубу от приёма данных (если вызвать функцию без параметра, то будут закрыты все трубы сразу, от 0 до 7) radio.startListening (); // Включаем приемник, начинаем прослушивать открытую трубу // radio.stopListening (); // Выключаем приёмник, если потребуется } void loop(){ if(radio.available()){ // Если в буфере имеются принятые данные radio.read(&data, sizeof(data)); // Читаем данные в массив data и указываем сколько байт читать dispLED.print(data); // Выводим показания Trema слайдера на индикатор analogWrite(pinLED, map(data,0,1023,0,255)); // Устанавливаем яркость свечения светодиода в соответствии с углом поворота Trema потенциометра } // Если вызвать функцию available с параметром в виде ссылки на переменную типа uint8_t, то мы получим номер трубы, по которой пришли данные (см. урок 26.5) }

    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 посылки сообщений.

    А какие потрясающие применения этим радиомодулям приходят вам на ум?

    Дополнение: Также вас могут заинтересовать посты