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

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

Передача данных через Arduino на частоте 433 МГц

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

Радиомодули можно внедрить, соединив две платы Arduino вместе с помощью приемопередатчика.

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

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

На фотографии ниже хорошо видны соединенные модули:

Передача данных через Arduino на частоте 433 МГц

Приступим к написанию программного кода. Запустите программу 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();
    }
}

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

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

Благодарим вас за прочтение этой статьи. Мы надеемся, что вы нашли ее полезной. Спасибо всем за внимание! И следите за нашим блогом:)

Вы можете приобрести использованные в статье компоненты на нашем сайте: ampercot.ru


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