Arduino
Содержание:
- Обзор оборудования
- Приёмник WL101-341
- Диполь или симметричная вибраторная антенна
- Схема подключения передатчика и приемника 433 МГц к Arduino UNO
- Увеличение дальности радиочастотных модулей 433 МГц
- Сравнительная таблица популярных устройств дистанционного управления на частоте 433 МГц
- Скетч Arduino для радиочастотного передатчика 433 МГц
- Использование полученных данных
- ASK — Amplitude Shift Keying
- RadioHead Library — универсальная библиотека для беспроводных модулей
- Распиновка передатчика и приемника 433 МГц
Обзор оборудования
Давайте подробнее рассмотрим модули передатчика и приемника 433 МГц.
Этот маленький модуль является передатчиком. Сердцем модуля является резонатор SAW, настроенный на работу в диапазоне 433.xx МГц. Есть переключающий транзистор и несколько пассивных компонентов, вот и все.
Когда на вход DATA поступает логическая 1, генератор начинает работать, генерируя постоянную РЧ несущую волну на частоте 433.xx МГц, а когда на входе DATA устанавливается логический 0, генератор останавливается. Этот метод известен как Amplitude Shift Keying, о котором мы вскоре поговорим подробнее.
Это приемный модуль. Хотя все выглядит сложным, но он так же просто, как модуль передатчика. Он состоит из радиочастотной схемы и пары операционных усилителей для усиления принимаемой несущей от передатчика. Усиленный сигнал подается на ФАПЧ (фазовая автоподстройка частоты), которая позволяет декодеру «выделить» поток цифровых битов, что обеспечивает лучшее декодирование и помехоустойчивость.
Приёмник WL101-341
Приёмник WL101-341 имеет высокую чувствительность (-108dBm) и производительность с низким энергопотреблением. Наряду с расширенным динамическим диапазоном (более 60dB). Модуль использует встроенный интерфейсных малошумящий усилитель, фильтры, и резонатор частоты схемы. Пределы напряжения питания составляют 3.0-3.6 В, потребление 6.5 мА.
Технические характеристики WL101-341
- Поддержка ASK/ООК модуляции: чувствительность приемника -108 dBm;
- Частота: 433.92 МГц, полосы пропускания около ±150 КГц;
- Диаппазрон входного напряжения: от 3.0 В до 3.6 В;
- Ток потребления: 6.5 mA;
- Ток покоя: 1 uA;
- Не требуется внешний фильтр;
- Несколько скоростей передачи данных: общий модуль для 2 КГц, до 10 КГц;
- Температурный диапазон: от -40 до +85 ° C
- Размер: 30 × 9 × 1 (мм)
- Разем под внешнюю антену.
Распиновка приёмника WL101-341
Модуль приемника WL101-341 имеет четыре вывода: VIN и GND — линии питания, остальные два вывода DO соединены между собой и представляют собой выход демодулированных данных.
Вывод/Пин | Описание |
---|---|
GND | Земля (Ground) |
DO | Линия данных (Data Output) |
DO | Линия данных (Data Output) |
VIN | Питание (Voltage Input) |
ANT | Антенна |
Диполь или симметричная вибраторная антенна
Диполь представляет собой полуволновую структуру из проволоки, трубки, печатной платы (PCB) или другого проводящего материала. Он разделен на две равные четверти длины волны и подпитывается линией передачи.
Линии показывают распределение электрических и магнитных полей. Одна длина волны (λ) равна:
λ = 984/fMHz
половина волны:
λ/2 = 492/fMHz
Фактическая длина обычно сокращается в зависимости от размера антенных проводов. Лучшее приближение к электрической длине:
λ/2 = 492 K/fMHz
где K — коэффициент, связывающий диаметр проводника с его длиной. Это 0,95 для проводных антенн с частотой 30 МГц или менее. Или:
λ/2 = 468/fMHz
Длина в дюймах:
λ/2 = 5904 K/fMHz
Значение K меньше для элементов большего диаметра. Для трубки диаметром в полдюйма K составляет 0,945. Дипольный канал для 165 МГц должен иметь длину:
λ/2 = 5904(0.945)/165 = 33.81 дюйма
или два 16,9-дюймовых сегмента.
Длина важна, потому что антенна является резонансным устройством. Для максимальной эффективности излучения он должен быть настроен на рабочую частоту. Однако антенна работает достаточно хорошо на узком диапазоне частот, как резонансный фильтр.
Полоса пропускания диполя является функцией его структуры. Обычно он определяется как диапазон, в котором отношение коэффициента стоячей волны антенны (КСВ) меньше 2:1. КСВ определяется величиной отраженного сигнала от устройства назад по линии передачи, подающей на него. Это функция импеданса антенны с отношением к импедансу линии передачи.
Фактическое сопротивление антенны в ее центральной точке зависит от ее частоты и высоты антенны. При резонансе и полуволне над землей импеданс антенны составляет приблизительно 73 Ом. Паразитный резонанс, импеданс антенны будет включать либо индуктивный, либо емкостный компонент реактивного сопротивления.
Идеальной линией передачи является сбалансированная проводящая пара с сопротивлением 75 Ом. Также можно использовать коаксиальный кабель с характеристическим импедансом 75 Ом (Zo). Коаксиальный кабель с характеристическим импедансом 50 Ом также может использоваться, так как он хорошо соответствует антенне, если он меньше половины длины волны над землей.
Коаксиальный кабель является несбалансированной линией, так как радиочастотный ток будет протекать снаружи коаксиального экрана, создавая некоторые нежелательные индуцированные помехи в соседних устройствах, хотя антенна будет работать достаточно хорошо. Лучший метод подачи — использовать симметрирующий трансформатор в точке подачи с коаксиальным кабелем. Симметрирующий трансформатор — это трансформаторное устройство, которое преобразует сбалансированные сигналы в несбалансированные сигналы или наоборот.
Диполь может быть установлен горизонтально или вертикально в зависимости от желаемой поляризации. Линия подачи идеально должна проходить перпендикулярно к излучающим элементам, чтобы избежать искажения излучения, поэтому диполь наиболее часто ориентирован горизонтально.
Диаграмма излучения сигнала антенны зависит от ее структуры и монтажа. Физическое излучение является трехмерным, но обычно оно представлено как горизонтальными, так и вертикальными диаграммами направленности.
Горизонтальная диаграмма направленности диполя представляет собой цифру восемь (рисунок 3). Максимальный сигнал появляется на антенне. На рисунке 4 показана вертикальная диаграмма направленности. Это идеальные образцы, которые легко искажаются землей и любыми соседними объектами.
Усиление антенны связано с направленностью. Коэффициент усиления обычно выражается в децибелах (дБ) с учетом некоторого «эталона», такого как изотропная антенна, которая является точечным источником радиочастотной энергии, излучающая сигнал во всех направлениях. Подумайте о точечном источнике света, освещающем внутреннюю часть расширяющейся сферы. Изотропная антенна имеет коэффициент усиления 1 или 0 дБ.
Если передатчик формирует или фокусирует диаграмму излучения и делает ее более направленной, он имеет усиление по изотропной антенне. Диполь имеет коэффициент усиления 2,16 дБи по изотропному источнику. В некоторых случаях коэффициент усиления выражается в зависимости от дипольного задания в дБд.
Схема подключения передатчика и приемника 433 МГц к Arduino UNO
Теперь, когда мы знаем все о модулях, пришло время использовать их!
Поскольку мы будем передавать данные между двумя платами Arduino, нам, конечно, понадобятся две платы Arduino, две макетные платы и пара соединительных проводов.
Схема для передатчика довольно проста. У него всего три соединения. Подключите контакт VCC к контакту 5 В и минус к Arduino. Контакт Data-In должен быть подключен к цифровому контакту Arduino № 12. Вы должны использовать контакт 12, так как по умолчанию библиотека, которую мы будем использовать в нашем скетче, использует этот контакт для ввода данных.
На следующем рисунке показана схема соединения.
После подключения передатчика вы можете перейти к приемнику. Подключение приемника так же просто, как и передатчика.
Так же нужно сделать только три соединения. Подключите контакт VCC к контакту 5 В и минус на Arduino. Любой из двух средних выводов Data-Out должен быть подключен к цифровому выводу № 11 на Arduino.
Вот так должна выглядеть схема соединения для приемника.
Теперь, когда передатчик и приемник подключены, нам нужно написать код и отправить его на соответствующие платы Arduino. Поскольку у вас, вероятно, только один компьютер, мы начнем с передатчика. Как только код будет загружен, мы перейдем к приемнику. Arduino, к которому подключен передатчик, может питаться от источника питания или батареи.
Увеличение дальности радиочастотных модулей 433 МГц
Антенна, которую вы используете как для передатчика, так и для приемника, может реально повлиять на дальность передачи, которую вы сможете получить с помощью этих радиочастотных модулей. На самом деле без антенны вы сможете общаться на расстоянии не более метра.
При правильной конструкции антенны вы сможете общаться на расстоянии до 50 метров. Конечно, это на открытом пространстве. Ваш диапазон в помещении, особенно через стены, будет слегка ослаблен.
Антенна не должна быть сложной. Простой кусок одножильного провода может послужить отличной антеной для передатчика и приемника. Диаметр антенны вряд ли имеет какое-либо значение, если длина антенны правильная.
Самая эффективная антенна имеет ту же длину, что и длина волны, для которой она используется. Для практических целей достаточно половины или четверти этой длины.
Длина волны частоты рассчитывается как:
Длина волны = скорость распространения (v) / частота (f)
В воздухе скорость передачи равна скорости света, которая, если быть точным, составляет 299 792 458 м/с. Итак, для частоты 433 МГц длина волны равна:
Длина волны = 299 792 458 м/с / 433 000 000 Гц = 0,6924 м
Полноволновая антенна длиной 69,24 см довольно длинная, ее использование не очень удобно. Вот почему мы выберем четвертьволновую антенну, длина которой составляет 17,3 см.
На всякий случай, если вы экспериментируете с другими радиопередатчиками, которые используют разные частоты, вы можете использовать ту же формулу для расчета необходимой длины антенны. Довольно просто, верно?
Сравнительная таблица популярных устройств дистанционного управления на частоте 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м | Кнопка, триггер, перебор каналов |
• три режима работы; • неограниченное число дополнительных брелков MP324M/передатчик. |
MP433 | Комплект передатчик приемник на печатных платах |
=5 В (приемник) =12 В (передатчик) |
— | Маломощный, TTL-уровни |
— | 100 м | — | • аналоговые модули без кодирования для использования в проектах с микроконтроллерами и другими кодерами и декодерами; • миниатюрное исполнение; • низкое энергопотребление. |
MP433/ передатчик |
Брелок- передатчик- дубликатор |
Бат.12 В | 4 | — | — | 100 м | — | • дублирование передатчиков; • поддержка до 4-х разных приемников; • работа с большим числом беспроводных систем с фиксированными и обучающими кодами. |
MP433PRO | Комплект передатчик+ приемник на печатных платах |
=5 В (приемник) =3-12 В (передатчик) |
— | Маломощный, TTL-уровни |
— | 600 м | — | • расстояние до 600 м; • рабочая температура от -40 до +60º; • аналоговые модули без кодирования для использования в проектах с микроконтроллерами и другими кодерами и декодерами; • миниатюрное исполнение; • низкое энергопотребление. |
MP910 | Брелок-передатчик | Бат.12 В | 2 | — | — | 100 м | — | • передатчик для MP911, MP912 и MP913 |
MP911 | Приемник | 12 В | 1 | ~2000 Вт (10 А) | MP910 | 100 м | Кнопка | • питание переменным или постоянным напряжением 12 В; • возможно построение системы с несколькими приемниками с использованием MP433/передатчик; • изменение кодировки перемычками. |
MP912 | Приемник | 12 В | 1 | ~2000 Вт (10 А) | MP910 | 100 м | Триггер | • питание переменным или постоянным напряжением 12 В; • возможно построение системы с несколькими приемниками с использованием MP433/передатчик; • изменение кодировки перемычками. |
MP913 | Приемник | 12 В | 2 | ~2000 Вт (10 А) | MP910 | 100 м | Кнопка | • питание переменным или постоянным напряжением 12 В; • возможно построение системы с несколькими приемниками с использованием MP433/передатчик; • изменение кодировки перемычками. |
MP8036mhz | Сканер, дубликатор, ретранслятор, маяк |
=9-14 В | 4 входных 8 выходных |
Маломощный, TTL-уровни |
— | До 600 м | — | • многофункциональный модуль управления беспроводными устройствами; • входные и выходные линии TTL-уровней для подключения кнопок и силовых модулей; • дисплей, пользовательское меню; • поддержка большого количества беспроводных систем диапазона 433 МГц. |
Скетч Arduino для радиочастотного передатчика 433 МГц
В нашем эксперименте мы отправим простое текстовое сообщение от передатчика к получателю. Будет полезно понять, как использовать модули, и это может послужить основой для более практических экспериментов и проектов.
Вот скетч, который мы будем использовать для нашего передатчика:
// Подключаем библиотеку RadioHead Amplitude Shift Keying #include <RH_ASK.h> // Подключаем библиотеку SPI Library #include <SPI.h> // Создаем объект управления смещением амплитуды RH_ASK rf_driver; void setup() { // Инициализируем объект ASK rf_driver.init(); } void loop() { const char *msg = "Hello World"; rf_driver.send((uint8_t *)msg, strlen(msg)); rf_driver.waitPacketSent(); delay(1000); }
Это довольно короткий набросок, но это все, что вам нужно для передачи сигнала.
Код начинается с подключением библиотеки RadioHead ASK. Мы также должны подключить библиотеку SPI Arduino, так как от нее зависит библиотека RadioHead.
#include <RH_ASK.h> #include <SPI.h>
Далее нам нужно создать объект ASK, чтобы получить доступ к специальным функциям, связанным с библиотекой RadioHead ASK.
// Создаем объект управления смещением амплитуды RH_ASK rf_driver;
В функции setup() нам нужно инициализировать объект ASK.
// Инициализируем объект ASK rf_driver.init();
В функции loop() мы начинаем с подготовку сообщения. Это простая текстовая строка, которая хранится в char с именем msg. Знайте, что ваше сообщение может быть любым, но не должно превышать 27 символов для лучшей производительности. И обязательно посчитайте количество символов в нем, так как вам понадобится это количество в коде получателя. В нашем случае у нас 11 символов.
// Готовим сообщение const char *msg = "Hello World";
Затем сообщение передается с использованием функции send(). Он имеет два параметра: первый — это массив данных, а второй — количество байтов (длина данных), подлежащих отправке. За send() функцией обычно следует waitPacketSent() функция, которая ожидает завершения передачи любого предыдущего передаваемого пакета. После этого код ждет секунду, чтобы дать нашему приемнику время разобраться во всем.
rf_driver.send((uint8_t *)msg, strlen(msg)); rf_driver.waitPacketSent(); delay(1000);
Использование полученных данных
Теперь вам необходимо использовать данные, которые вы получили, на практике. Антенна 144-433 МГц может делаться различными способами, однако практическое применение теоретических сведений должно всегда быть одинаковым. О чем идет речь? Во-первых, вам необходимо всегда брать проволоку на несколько сантиметров длиннее, чем желаемая длина антенны. Почему? Дело в том, что в теории все получается довольно точно, однако на практике работать все будет далеко не всегда так, как вы планируете. Поэтому вам стоит всегда иметь некоторый запас на тот случай, если что-то пойдет не так или сигнал не будет ловиться на той частоте, на которой вы хотели. Всегда можно легко откусить проволоку в конкретном месте, когда вы определите необходимую длину. Во-вторых, вам стоит всегда помнить, что длина отсчитывается от того места, где проволока выходит из основания. Таким образом, полученные 17 сантиметров должны отсчитываться от основания вашей антенны. Чаще всего вам придется использовать немного более длинную проволоку, так как вам нужно будет запаять вашу антенну. Антенна 433 МГц штыревая тем лучше будет работать, чем больше вы штырей используете, поэтому вам стоит позаботиться о том, чтобы каждый из них был одинаковой длины.
ASK — Amplitude Shift Keying
Как обсуждалось выше, для отправки цифровых данных по радиоканалу, эти модули используют технику, называемую Amplitude Shift Keying или ASK (амплитудная модуляция). Это когда амплитуда (то есть уровень) несущей волны (в нашем случае это сигнал 433 МГц) изменяется в ответ на входящий сигнал данных.
Это очень похоже на аналоговую технику амплитудной модуляции, с которой вы, возможно, знакомы, если вы собирали AM-радио. Иногда это называется двоичной амплитудной манипуляцией, потому что нам необходимо только два уровня. Вы можете представить это как переключатель ВКЛ / ВЫКЛ.
- Для лог. 1 — несущая в полную силу
- Для лог. 0 — несущая отключена
Амплитудная модуляция имеет преимущество в том, что она очень проста в реализации. На ее основе довольно просто спроектировать схему декодера. Также для ASK требуется меньшая полоса пропускания, чем другим методам модуляции, таким как FSK (частотная модуляция). Это одна из причин того дешевизны модулей.
Однако недостатком является то, что амплитудная модуляция подвержена помехам от других радиоустройств и фоновому шуму. Но пока вы обеспечиваете передачу данных на относительно медленной скорости, она может надежно работать в большинстве сред.
RadioHead Library — универсальная библиотека для беспроводных модулей
Прежде чем мы начнем программировать, установим библиотеку RadioHead в Arduino IDE.
RadioHead — это библиотека, которая позволяет легко передавать данные между платами Arduino. Она настолько универсальна, что ее можно использовать для управления всеми видами устройств радиосвязи, включая наши модули на 433 МГц.
Библиотека RadioHead собирает наши данные, инкапсулирует их в пакет данных, который включает в себя CRC (проверку циклически избыточного кода), а затем отправляет его с необходимой преамбулой и заголовком на другую Arduino. Если данные получены правильно, принимающая плата Arduino проинформирует о наличии доступных данных и приступит к их декодированию и выполнению.
Пакет RadioHead формируется следующим образом: 36-битный поток из пар «1» и «0», называемый «обучающей преамбулой», отправляется в начале каждой передачи. Эти биты необходимы приемнику для регулировки его усиления до получения фактических данных. Затем следует 12-битный «Начальный символ», а затем фактические данные (полезная нагрузка).
Последовательность проверки или CRC добавляется в конец пакета, который пересчитывается RadioHead на стороне приемника, и если проверка CRC верна, приемное устройство получает предупреждение. Если проверка CRC не пройдена, пакет отбрасывается.
Весь пакет выглядит примерно так:
Распиновка передатчика и приемника 433 МГц
Давайте посмотрим на распиновку модулей передатчика и приемника RF 433 МГц.
DATA — принимает цифровые данные для передачи.
VCC — обеспечивает питание передатчика. Это может быть любое положительное постоянное напряжение от 3,5 до 12 В. Обратите внимание, что РЧ-выход пропорционален напряжению питания, т.е. чем выше напряжение, тем больше будет дальность.
GND — минус питания.
Антенна — это разъем для внешней антенны. Как обсуждалось ранее, вам понадобится припаять кусок проволоки длинной 17,3 см к этому контакту для улучшения дальности.
- DATA — выводит полученные цифровые данные. Два центральных штифта внутренне связаны между собой, поэтому вы можете использовать любой из них для вывода данных.
- VCC — обеспечивает питание приемника. В отличие от передатчика, напряжение питания для приемника должно быть 5 В.
- GND — минус питания.
- Антенна — это разъем для внешней антенны, который часто не обозначен. Это накладка в левом нижнем углу модуля, рядом с маленькой катушкой. Опять же, можно припаять кусок провода длинной 17,3 см к этому контакту для улучшения дальности.