Подключение радио

Подключение радио

Приемопередатчик NRF24L01 + и RFM69 взаимодействует с платой Arduino через интерфейс SPI.

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

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

NRF24L01+ & Arduino

ПРИМЕЧАНИЕ: Входные контакты на NRF24L01 + имеют толерантность 5 В. Однако, вы не можете питать модуль более чем 3.3V на VCC. Если вы используете 5V Arduino, вам нужно использовать понижающий регулятор!

Pro Mini / Nano Mega NRF24L01+ Color
GND GND GND Чёрный
5VReg -> 3.3V 3.3V VCC Красный
9 49 CE Оранжевый
10 53 CSN/CS Жёлтый
13 52 SCK Зелёный
11 51 MOSI Синий
12 50 MISO Фиолетовый
2 2 IRQ Серый

Вывод IRQ нужен для подключения только, если в эскизе определен MY_RX_MESSAGE_BUFFER_FEATURE. Использование этой функции требуется только для узлов или шлюзов с высоким трафиком. Включение его приведет к повышению пропускной способности, но для обработки сообщения потребуется дополнительная память.

Если вы используете Arduino Mega, к вашему эскизу необходимо добавить следующее, перед подключением MySensors.h:

#define MY_RF24_CE_PIN 49
#define MY_RF24_CS_PIN 53

NRF24L01+ & ESP8266

Это также работает с платами на базе ESP8266, такими как NodeMCU и Wemos D1 Mini.

NodeMCU Radio Comment
GND GND Чёрный
3V3 VCC Красный
D2 CE Оранжевый
D8 CSN/CS Жёлтый
D5 SCK Зелёный
D7 MOSI Синий
D6 MISO Фиолетовый

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

RFM69 & Arduino

ПРИМЕЧАНИЕ: NSS, MOSI и SCK не являются толерантным к 5V на RFM69. Вам нужно будет использовать конвертер уровня, если вы используете 5V Arduino.

Arduino RFM69 Color
 GND GND  Чёрный
3.3V VCC Красный
10 NSS Жёлтый
13 SCK Зелёный
11 MOSI Синий
12 MISO Фиолетовый
2 DI00 Серый
ANA Антенна

RFM69 & ESP8266

Это также работает с другими платами на базе ESP8266, такими как NodeMCU и Wemos D1 Mini.

ESP8266 RFM69 Color
 GND  GND  Чёрный
3.3V VCC Красный
D1 DIO0 Серый
D5 SCK Зелёный
D6 MISO Фиолетовый
D7 MOSI Синий
D8 NSS Жёлтый
ANA Антенна

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

#ifdef ESP8266
#define MY_RADIO_RFM69
#define MY_RFM69_FREQUENCY RF69_433MHZ // Установите нужную частоту
#define MY_IS_RFM69HW // Не устанавливайте если ваш RFM не "H"
#define MY_RF69_IRQ_PIN D1
#define MY_RF69_IRQ_NUM MY_RF69_IRQ_PIN
#define MY_RF69_SPI_CS D8 // NSS. Используйте MY_RFM69_CS_PIN для ветви разработки.
#endif

Шлюз и узлы могут использовать одно и тоже подключение, но имейте в виду, что RFM радио использует все контакты, с которыми легко работать, кроме D2, поэтому подключение чего-либо дополнительного может быть сложным. Вместо этого используйте Arduino, если хотите подключить что-то ещё.

Настройка MySensors для RFM69

MySensors настроен на использование радио NRF24 по умолчанию. Чтобы использовать RFM69, необходимо добавить следующее строки: перед подключением MySensors.h

Основные определения для радио не High Power 868Mhz, и Atmel 328p (mini pro, nano, uno и т. д.):

#define MY_RADIO_RFM69  // Define for using RFM69 radio

И если вам нужна расширенная конфигурация, вам нужно добавить следующие определения:

#define MY_RFM69_FREQUENCY RF69_433MHZ // Включите для установки частоты. Нужно, если ваш радиомодуль не 868Mhz (868Mhz по умолчанию в lib)
#define MY_IS_RFM69HW // Обязательно, если ваш радиомодуль является версией с высокой мощностью (RFM69HW и RFM69HCW), закомментируйте, если это не так
//#define MY_RFM69_NETWORKID 100 // По умолчанию 100 в lib. Раскомментируйте его и установите предпочтительный идентификатор сети, если необходимо
//#define RF69_IRQ_PIN 4 // По умолчанию в lib используется D2 для обычного Atmel 328p (mini pro, nano, uno и т. Д.). Раскомментируйте его и установите вывод, которую вы используете. Примечание для Atmel 328p, Mysensors и в основной реализации Arduino D2 или D3 только доступны. Но для продвинутых mcus, таких как Atmel SAMD (Arduino Zero и т. Д.), Esp8266 вам нужно будет установить это определение для соответствующего вывода IRQ
// #define MY_RF69_IRQ_NUM 4 // Временное определение (будет удалено в следующей версии драйвера радиоприемника). Нужно, если вы хотите изменить контакт IRQ, к которому подключено ваше радио. Итак, если ваше радио подключено к D3 / INT1, значение равно 1 (INT1). Для других mcu, таких как Atmel SAMD, Esp8266, значение просто совпадает с вашим RF69_IRQ_PIN
// #define MY_RF69_SPI_CS 15 // При использовании другого вывода CS для шины SPI. Используйте MY_RFM69_CS_PIN для ветви разработки.

Подробнее об этом можно узнать здесь: https://www.mysensors.org/download/sensor_api_20

Примечание. Драйвер Mysensors RFM69 управляется прерываниями.

Антенна RFM69

ВАЖНО: Вы ДОЛЖНЫ установить антенну на плату. Антенна должна быть одножильной, а не многожильной (не подходит для антенны). Если включить без антенны, передатчик может сгореть.

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

Частота Длина (дюймы) Длина (мм)
434 MHz 6.47″ 164.7 мм
868 MHz 3.22″ 82.2 мм
915 MHz 3.06″ 77.9 мм

Вышеуказанная длина антенны составляет 1/4 волны. Есть также в продаже готовые антенны нужной длины.

Советы:

  • Прямой провод будет работать лучше для всего диапазона и чувствительности.
  • Для устройства с ограниченным пространством, вы можете намотать антенну. Конечно, это ухудшит ваш диапазон, но он по-прежнему будет приличный и конкурентоспособный. Уже было проверено, что подойдёт для вашего случая. Катушка будет работать лучше, если следовать некоторым правилам https://github.com/OpenHR20/OpenHR20/wiki/2.1)—433-MHz-and-868-MHz—Antenna-Design-Examples

Подключение развязывающего конденсатора

Если у вас плохой прием или переданные данные не доходят до адресата, попробуйте добавить развязывающий конденсатор в 4.7 — 47μF (точный размер обычно не имеет значения) между 3.3В и GND как можно ближе к передатчику.

Конденсатор Радио Коментарии
— пин GND Чёрный провод радио
+ пин 3.3V Красный провод радио

Сторона с отметкой «<- <-» должна быть подключена к GND

Подключение регулятора напряжения

ПРИМЕЧАНИЕ. Если вы используете мини-версию Arduino Pro Mini 5V (которой нет регулируемого выхода на 3,3 В), вам нужно будет подключить регулятор 5V-> 3,3 В между Arduino и Radio.

Arduino Регулятор Радио
5V Vin
Vout VCC

 

Документация

Название Размер
nRF24L0Plus.pdf 1.06 MB
RFM69HW-V1.3.pdf 1.17 MB
sx1231h.pdf 962.48 kB