Радиомодули и Arduino

19 сентября 2017

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

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

Материалы

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

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

Наибольшей популярностью среди радиомодулей с поддержкой Arduino пользуются передатчики с частотой 433МГц. Самое такое устройство обычно делиться на две составные части: это приемник и передатчик. Первый модуль имеет 4 вывода для подключения к плате (но один из них можно не использовать) Два из этих вывода отвечают за питание (соответственно, подключаются к таким контактам на плате, как 5V и Gnd (ground – “земля”), а другой к цифровому выходу на плате.

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

Наглядная картинка подключенных модулей есть на фото ниже:

Теперь займемся написанием программного кода. Для этого откроем среду разработки – программу Arduino IDE. Для работы с модулями понадобится специализированная библиотека RCSwitch.h, ее скачать вы можете здесь

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

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

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() 
{
    mySwitch.enableTransmit(2);
}

void loop() 
{
    mySwitch.send(B0100, 4);
    delay(1000);
    mySwitch.send(B1000, 4); 
    delay(1000);
}

Сначала инициализируем библиотеку для работы с модулями, с помощью директивы include

В следующее строчке мы называем наш модуль для дальнейшей работы с ним. Внутри функции void setup прописывается контакт на плате, к которому подключен передатчик. Далее, в цикле, мы можем заметить еще одну новую функцию - mySwitch.send . Она предназначается для непосредственной отправки сообщений. Сначала в ней указывается само сообщение для отправки, а далее размер отправляемого файла. Кстати, указывать отправляемое сообщение можно также и в виде двоичных чисел и строк.

Для приемника будет следующий программный код:

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() {
    pinMode( 3, OUTPUT );
    mySwitch.enableReceive(0);
}

void loop() {
    if (mySwitch.available()) {
        int value = mySwitch.getReceivedValue();
        if (value == B1000)     
            digitalWrite(3, HIGH);
        else if (value == B0100)   
            digitalWrite(3, LOW);

        mySwitch.resetAvailable();
    }
}

В цикле программного кода можно легко заметить, что при отправке определенного сообщения устанавливается на выходе максимальное напряжение(high), в ином случае – минимальное (low)

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

Надеемся, что статья была для вас полезной. Удачной всем компиляции! И следите за нашим блогом:)

Купить компоненты, используемые в статье, вы можете на нашем сайте: Амперкот.ру


Данная статья является собственностью Amperkot.ru. При перепечатке данного материала активная ссылка на первоисточник, не закрытая для индексации поисковыми системами, обязательна.


Поделиться: