Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Arduino:Примеры/Гайд по использованию приемника/передатчика RF 433 MHz с Arduino

Материал из Онлайн справочника
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Ambox content.png Черновик


Гайд по использованию приемника/передатчика RF 433 MHz с Arduino[1]

Эта статья о популярных радиочастотных приемниках/передатчиках RF 433 MHz. В ней объясняется, как они работают, рассказывается об их функциях и содержится скетч Arduino, который вы можете использовать в собственных проектах.

Описание

Радиочастотные модули типа RF 433 MHz очень популярны среди людей, увлекающихся проектами на базе Arduino. Приемники и передатчики RF 433 MHz применимы во множестве ситуаций, где требуется беспроводное управление.

Характеристики приемника

  • Частотный диапазон: 433,92 МГц
  • Модуляция: ASK
  • Входное напряжение: 5 вольт
  • Цена: 1-2 доллара

Характеристики передатчика

  • Частотный диапазон: 433,92 МГц
  • Входное напряжение: 3-12 вольт
  • Цена: 1-2 доллара

Где купить?

Приемники и передатчики типа RF 433 MHz можно купить на eBay. К примеру, тут.

RF 433MHz TransmitterReceiver Module.jpg

Необходимые компоненты

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

Библиотека Radiohead

Кроме того, для этого проекта понадобится библиотека Radiohead. Она работает почти со всеми радиочастотными модулями, имеющимися на рынке. Более подробно об этом проекте можно почитать тут.

  • Загрузите библиотеку Radiohead отсюда
  • Распакуйте архив с библиотекой
  • Установите библиотеку в IDE Arduino
  • Перезапустите IDE Arduino

Схема и код для приемника

Теперь подключите компоненты друг к другу как показано на картинке ниже:

433mhz arduino receiver circuit.jpg

Затем загрузите на плату Arduino вот этот код:

  1. #include <RH_ASK.h>
  2. #include <SPI.h> // в скетче не используется, но нужна для компиляции
  3.  
  4. RH_ASK driver;
  5.  
  6. void setup()
  7. {
  8.     Serial.begin(9600); // только в отладочных целях
  9.     if (!driver.init())
  10.          Serial.println("init failed");
  11.          //  "Инициализация не удалась"
  12. }
  13.  
  14. void loop()
  15. {
  16.     uint8_t buf[12];
  17.     uint8_t buflen = sizeof(buf);
  18.     if (driver.recv(buf, &buflen)) // неблокирующая функция
  19.     {
  20.       int i;
  21.       // пришло сообщение с хорошей контрольной суммой,
  22.       // выгружаем его:
  23.       Serial.print("Message: ");  //  "Сообщение: "
  24.       Serial.println((char*)buf);
  25.     }
  26. }

Схема и код для передатчика

Соберите компоненты для передающей стороны, как показано на схеме ниже:

433mhz arduino transmitter circuit.jpg

Затем загрузите на Arduino код, показанный ниже:

  1. #include <RH_ASK.h>
  2. #include <SPI.h>  //  в скетче не используется,
  3.                   //  но нужна для компиляции
  4.  
  5. RH_ASK driver;
  6.  
  7. void setup()
  8. {
  9.     Serial.begin(9600);  //  для отладочных целей
  10.     if (!driver.init())
  11.          Serial.println("init failed");
  12.          //  "Инициализация не удалась"
  13. }
  14.  
  15. void loop()
  16. {
  17.     const char *msg = "Hello World!";  //  "Привет, мир!"
  18.     driver.send((uint8_t *)msg, strlen(msg));
  19.     driver.waitPacketSent();
  20.     delay(1000);
  21. }

Демонстрация

В этом проекте передатчик по радиочастоте отправляет приемнику сообщение «Hello, world!» Затем приемник печатает это сообщение в мониторе порта IDE Arduino. Выглядит это примерно так:

Receiver-serial-monitor.png

Качество связи

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

Дальность действия сигнала зависит от ряда факторов: от того, сколько напряжения подано на передатчик, от радиочастотного шума в окружающем пространстве и того, используете ли вы внешнюю антенну.

См.также

Внешние ссылки

  1. randomnerdtutorials.com - Complete Guide for RF 433MHz Transmitter/Receiver Module With Arduino