Радіомодулі 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 МГц