Радіомодулі 433МГц підключення до Arduino

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

Насамперед беремо 2 плати Arduino і підключаємо до них приймач і передавач, як показано на малюнку:

підключення

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

Перед початком роботи, потрібно вказати, що для повноцінної роботи, до модулів необхідно припаяти антену. Рекомендована довжина антени для передавачів із частотою 433 МГц дорівнює 17 см.

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

Її необхідно розпакувати та додати до папки "libraries" у папці з Arduino IDE. Не забувайте перезавантажити середовище, якщо на момент додавання IDEшка була відкрита.

Далі підключаємо плату з передавачем і заливаємо наступний код:

Розберемо цей код для повного розуміння.

По-перше, ми формуємо рядок strMsg. Використовуємо тип String, т.к. з ним простіше працювати (можна конкатенувати його з числами, використовуючи оператор +).

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

Далі передамо символ 'c', який може означати виконання якоїсь команди та число 123 як параметр до цієї команди. На практиці зручно працювати саме в такий спосіб.

Після цього перетворюємо тип String до стандартного масиву символів за допомогоюметоду toCharArray і передаємо його в команду vw_send.

Наш код відправлятиме рядок 'z c 123'.

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

Повідомлення буде раховано в буфері buf, який потрібно розібрати.

Насамперед перевіряємо наявність службового символу 'z', потім зчитуємо код команди і потім перетворюємо рядкове представлення параметра до числа.

Інформація отримана та розібрана, що робити далі залежить від конкретного завдання.

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

P.S. Працюючи з даними модулями, ми натрапили на один не приємний підводний камінь, а саме конфлікт, неможливість роботи з бібліотекою "servo.h".

Для вирішення цієї проблеми необхідно використовувати бібліотеку ServoTimer2 єдиною відмінністю якої від стандартноїServo.h є те, що в функцію write необхідно передавати кількість мікросекунд, детальніше про які розписано в нашій статті Підключення сервоприводів до Arduino.

Купити в Україні Радіомодулі 433 МГц