цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Arduino и беспроводные радиомодули 315 МГц для передачи данных на средние и дальние расстояния

Arduino и беспроводные радиомодули 315 МГц для передачи данных на средние и дальние расстояния

Автор: Mike(admin) от 3-10-2019, 23:55

В последнее время сетевое или беспроводное подключение остается одной из наиболее важных функций любого устройства, даже для устройств, которые не подключены напрямую к Интернету. Необходимость отправки данных с одного устройства на другое – важная часть строящегося вездесущего мира Интернета вещей. Для разработчиков, радиолюбителей и профессионалов, выбор правильного коммуникационного модуля зависит от знания доступных опций, поэтому в сегодняшнем уроке мы рассмотрим использование радиочастотных трансиверов большой дальности 315 МГц в качестве средства коммуникации. Это может быть следующим вариантом для ваших проектов на основе Arduino.


Arduino и беспроводные радиомодули 315 МГц для передачи данных на средние и дальние расстояния

Радиочастотные приемопередатчики ближнего радиуса действия, такие как модули 433 МГц, очень популярны среди радиолюбителей и энтузиастов, однако их ближняя дальность была узким местом для пользователей, поскольку они едва обеспечивают покрытие сигнала для области, большей, чем стандартная комната. Чтобы решить эту проблему и дать разработчикам больше возможностей и преимуществ, компания PMD Way разработала новые приемопередатчики с частотами 315/415 МГц.


Новые трансиверы работают так же, как и более дешевые модули, сохраняя ту же конфигурацию/расположение выводов, поддерживая те же библиотеки (такие как библиотека VirtualWire для Arduino), но новые модули, тем не менее, имеют большую выходную мощность и прочную, удобную печатную антенну, которая увеличивает дальность, сохраняя при этом точность передачи данных. Достижимая передаваемая мощность модулей зависит от напряжения, подаваемого на его вывод VCC. Например, когда VCC составляет 5 В, модули могут достигать дальности 150 м на открытом пространстве. Чтобы увеличить дальность передачи, вы можете увеличить питание до 12 В с целью увеличения мощности передачи.


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


Итак, мы по существу создадим два проекта. Один будет служить передатчиком, а другой будет служить приемником как таковым, в итоге у нас есть две схемы. В данном случае будет использоваться изображение РЧ-модулей ближнего радиуса действия, так как у них принцип соединение такой же, а у РЧ-модулей дальнего радиуса действия. Схема передатчика довольно проста, нам нужно только подключить кнопку и передатчик 315 МГц к Arduino, как показано на следующем рисунке.


Схема передатчика 315 МГц

Для приемника мы подключим светодиод к Arduino в дополнение к приемнику 315 МГц, как показано на рисунке, приведенном далее.


Схема приемника 315 МГц

Код для этого проекта сильно зависит от популярной библиотеки Virtual Wire Library (https://cdn.shopify.com/s/files/1/2386/9605/files/VirtualWire.zip). Библиотеку можно установить через менеджер библиотек Arduino или загрузив библиотеку по ссылке и установив ее, распаковав ее в папку Arduino – Libraries. Библиотека VirtualWire содержит функции, которые позволяют нам выполнять такие действия, как установка мощности передачи РЧ-модулей, кодирование данных и т. д., обычно уменьшая объем кода, который нам нужно написать для взаимодействия с РЧ-модулями.


После установки библиотеки мы можем приступить к написанию кода. Так же, как в случае схем, мы напишем два скетча для этого проекта; один для передатчика, а другой для приемника. Для передатчика код программы будет следующий:



#include <VirtualWire.h>
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
const char *on2 = "a";
const char *off2 = "b";
int button = 8;
void setup()
{
  vw_set_ptt_inverted(true); // Требуется для РЧ-модулей
  vw_setup(300); // установить скорость передачи данных
  vw_set_tx_pin(12);
  pinMode(Button, INPUT);
}
void loop()
{
  if (digitalRead(button)==HIGH)
  {
    vw_send((uint8_t *)on2, strlen(on2)); // отправить данные в эфир
    vw_wait_tx(); // немного подождать
    delay(200);
  }
  if (digitalRead(button)==LOW)
  {
    vw_send((uint8_t *)off2, strlen(off2));
    vw_wait_tx();
    delay(200);
  }
}

Код программы приемника представлен далее.



#include <VirtualWire.h>
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
int ledpin = 2;
void setup()
{
  vw_set_ptt_inverted(true);
  vw_setup(300);
  vw_set_rx_pin(11);
  vw_rx_start();
  pinMode(ledpin, OUTPUT);
}
void loop()
{
  if (vw_get_message(buf, &buflen))
  {
    switch(buf[0])
    {
    case 'a':
      digitalWrite(ledpin, HIGH);
      break;
    case 'b':
      digitalWrite(ledpin, LOW);
      break;
    }
  }
}

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


Arduino и беспроводные радиомодули 315 МГц для передачи данных на средние и дальние расстояния

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




© digitrode.ru


Теги: Arduino, радио



   Благодарим Вас за интерес к информационному проекту digitrode.ru.
   Если Вы хотите, чтобы интересные и полезные материалы выходили чаще, и было меньше рекламы,
   Вы можее поддержать наш проект, пожертвовав любую сумму на его развитие.


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий