433 мгц передатчик

Урок 26.6 Соединяем две arduino по радиоканалу 433 МГц

При создании некоторых проектов, требуется разделить выполняемые задачи между несколькими arduino.

В этом уроке мы научимся соединять две Arduino по радиоканалу, на частоте 433,920 МГц, используя радио модули FS1000A и MX-RM-5V, на расстоянии до 100 м. Данное расстояние можно увеличить, припаяв антенны к передатчику (FS1000A) и приёмнику (MX-RM-5V), см. схему подключения.

Преимущества:

  • Отсутствие проводов между Arduino.
  • Простота подключения. Рассматриваемые модули, в отличии от nRF24L01+, питаются от напряжения 5 В.
  • Доступность. Радио модули выпускаются множеством производителей, в различном исполнении и являются взаимозаменяемыми.

Недостатки:

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

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

  • Радио модули FS1000A и MX-RM-5V х 1 комплект.
  • Arduino х 2шт.
  • Trema Shield х 2шт.
  • Trema Slider х 1шт.
  • Trema потенциометр х 1шт.
  • Trema четырехразрядный LED индикатор х 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). Антенны припаиваются к контактным площадкам, как показано на схеме подключения.

Видео:

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

Радиопередатчик подключён к выводу D12 (можно подключить к любому выводу Arduino). Радиоприёмник подключён к выводу D2 (при работе с библиотекой iarduino_RF433, его можно подключить только к выводам использующим внешние прерывания). Trema четырехразрядный LED индикатор подключён к цифровым выводам D6 и D7 (можно подключить к любым выводам Arduino). Светодиод подключён к цифровому выводу D11 (для изменения яркости нужны выводы, которые используют ШИМ). Trema потенциометр и слайдер подключены к аналоговым входам A1 и A0 (можно подключить к любым аналоговым входам).

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

Приёмник MX-RM-5V критичен даже к небольшим пульсациям на шине питания (см. раздел недостатки).
Для питания Arduino, используйте внешний источник питания, а не шину USB.

Библиотека iarduino_RF433 (а также библиотеки RemoteSwitch и RCSwitch), в отличии от библиотеки VirtualWire, использует не аппаратный таймер, а внешнее прерывание. Это даёт возможность использовать другие библиотеки использующие первый аппаратный таймер и использовать любые выводы ШИМ, но радиоприёмник можно подключить только к тем выводам, которые используют внешнее прерывание:

Плата Arduino Выводы использующие внешнее прерывание
Uno, ProMini, Nano, Ethernet 2, 3
Leonadro, Micro 2, 3, 0, 1, 7
Mega 2560 2, 3, 18, 19, 20, 21
Due Любые выводы

Алгоритм работы:

Передатчик:

При старте (в коде setup) скетч настраивает работу радиопередатчика, указывая скорость передачи данных и номер трубы. После чего, постоянно (в коде loop), считывает показания с Trema потенциометра и Trema слайдера, сохраняя их в массив data, и отправляет его радиопередатчику.

Приёмник:

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

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

#include <iarduino_RF433_Transmitter.h> // Подключаем библиотеку для работы с передатчиком 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 <iarduino_RF433_Receiver.h> // Подключаем библиотеку для работы с приёмником MX-RM-5V #include <iarduino_4LED.h> // Подключаем библиотеку для работы с четырёхразрядным 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) }

Проверка модулей:

Работоспособность приёмника и передатчика можно проверить на одной плате Arduino. Для этого подключите приёмник к выводу D3, а передатчик к выводу D4 и загрузите скетч «check» из примеров библиотеки iarduino_RF433.

Ссылки:

  • Код программы передатчика.
  • Код программы приёмника.
  • Библиотека iarduino_RF433.
  • Библиотека iarduino_4LED.
  • Wiki — Установка библиотек в Arduino IDE.
  • Wiki — Четырёхразрядный индикатор (Trema-модуль).
  • Wiki — Trema Shield.

Прошивка или перепрошивка модуля связи (радиомодуля)

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

Например, известнейший производитель Lenovo ориентирован на два различных рынка сбыта. Первый направлен на европейского потребителя, поэтому смартфоны производятся в Европе, а второй вид смартфонов «рождается» на китайском пространстве.

Если вы отмечаете проблемы с покрытием — возможно, дело в радиомодуле

Безусловно, ожидать одинакового качества от таких двух разных моделей нельзя. Если вам удалось приобрести Андроид, который стал часто преподносить «сюрпризы» в виде отсутствия связи, значит, вы умудрились приобрести китайский вариант.

К сожалению, «китаец» очень часто отказывается ловить сигнал сети 3G на частоте GSM 900.

Столкнувшись с такой проблемой, придётся вам вникнуть в некоторые технические параметры, чтобы понять, как прошить модуль связи Андроид.

Это не будет слишком сложно, если вы внимательно ознакомитесь со всеми этапами, постигнете важные секреты, разберётесь в том, что такое прошивка модуля связи.

Необходимость в прошивке

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

Кирпич — так называют смартфон, утративший свою функциональность

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

Причины смены прошивки

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

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

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

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

Перед покупкой устройства обратите внимание на надписи под крышкой

Если же вам китайское устройство подарили, придётся его самостоятельно усовершенствовать, «заставить» работать корректно и быстро, но для этого потребуется разобраться, какая прошивка радиомодуля является максимально эффективной.

Прошивка радиомодуля

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

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

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

Алгоритм прошивки

В самом начале столь ответственных действий важно получить Root-права на ваш Андроид. Далее закачайте TWRP-recovery и сохраните её на SD-карте.

Теперь понадобится закачать с Плей Маркета специальное программное обеспечение, которое поможет обновить Recovery. Отличным помощником при осуществлении таких действий может выступать утилита Mobileuncle MTK Tools.

Установите эту программу, запустите её и найдите пункт «Обновление Recovery». После того как вы кликните по этому пункту, система запросит место, куда был помещён файл Recovery. Безусловно, следует указать SD-карту.

Далее программа совершит автоматически несложные действия и успешно завершит обновление Recovery, после чего можно перейти к установке прошивки радиомодуля.

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

Далее запустите Recovery, в основном меню найдите подпункт «Install», кликните по нему. Теперь на экране вновь появится окно, в котором необходимо указать путь к сохранённой версии прошивки радиомодуля.

После завершения процесса остаётся почистить кэш, удалив из смартфона все ненужные файлы. Для этого найдите пункт «Wipe cache/dev link», кликните и дождитесь завершения очистки. Теперь просто перезагрузите мобильный аппарат, после чего можете приступать к его использованию.

Очистите кэш устройства, нажав Wipe cache

Для прошивки радиомодуля можно воспользоваться и другим способом. Для этого первоначально придётся закачать и сохранить желаемую версию прошивки, а также файл android-info.txt.

Прошивку распаковать, найти файл Radio.img, переместить его в новую папку, куда также забросить и файл android-info.txt.

Теперь эту папку назвать PC10IMG, а затем заархивировать в формате zip. Этот созданный архив переместить на SD-карту.

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

В этом случае на экране появится программный запрос «Do you want to start update», на который должен последовать позитивный ответ, а именно — нажатие клавиши «громкость вверх».

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

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

Что такое радиомодуль в телефоне

Статьи и ЛайфхакиВопрос, что такое радиомодуль в телефоне, стали задавать себе пользователи после того, как возникла необходимость и желание использовать две сим-карты одновременно. До этого момента вопросом о радиомодуле в телефоне интересовались лишь любители ковыряться в мобильных аппаратах, а также мастера по ремонту мобильных телефонов.
Что даёт радиомодуль в телефоне
Радиомодуль в телефоне позволяет принимать и передавать сигналы сети, а это значит, что:
— вы можете звонить;
— вам могут звонить;
— приём и отправка текстовых и мультимедийных сообщений;
— и наконец – возможность пользоваться мобильным интернетом для посещения любимых социальных сетей и для работы!
Радиомодуль в телефоне – это небольшой участок на материнской плате, который принимает радиосигналы. Отвал радиомодуля или его неправильная установка, установка неподходящего плате радиомодуля, наличие рядом с ним металлических деталей, ведёт к снижению качества и силы сигнала вплоть до появления сообщения на экране «Сеть не найдена/Поиск сети».
Именно использование различных радиомодулей, различие в их установке производителями и говорит о том, что один телефон будет ловить в подземном переходе, второй телефон будет сбоить, а третий просто не будет показывать сигнал сети.
Помимо самой электроники, радиомодулем в телефоне нужно считать и специализированное программное обеспечение. Это библиотеки драйверов, которые заставляют работать и «общаться» между собой все аппаратные части телефона. Существует большое количество телефонов китайского производства, у которых сим-карты «вылетают» и требуют установки дополнительных патчей сим-карт, чтобы всё работало нормально. Бывает и так, что при обновлении операционной системы смартфона (прошивки) пропадает сигнал сети – тогда нужна версия драйверов и патчей по свежее.
Радиомодуль в телефоне и две сим-карты
Программисты и инженеры научились заставлять работать один радиомодуль с двумя (и даже с тремя!) сим-картами, а именно с двумя различными сетями и телефонными номерами. Но при активной работе с одной сетью, вторая сеть (вторая сим-карта) становится недоступной. Эту проблему решает использование двух радиомодулей. Обе сети доступны в любое время и в любом месте, где есть покрытие сетей, но одновременная работа двух радиомодулей сильно сокращает автономное время жизни телефона.
В заключении напишем один тезис-определение. Что такое радиомодуль в телефоне? Это электронная часть в смартфоне, связанная с остальным «железом» с помощью драйверов, позволяющая работать с сетью оператора мобильной связи.