nRF24L01+

Восьмиконтактный модуль nRF24L01+ с печатной антенной, без PA/LNA

Пакетная радиосвязь между двумя микроконтроллерами в диапазоне 2,4 ГГц.

Автор: SLDV LAB

Опубликовано · Обновлено

СложностьСредне
Проекты с компонентом

О МОДУЛЕ

Что делает Восьмиконтактный модуль nRF24L01+ с печатной антенной, без PA/LNA

nRF24L01+ передаёт короткие пакеты между узлами собственного радиоканала. Здесь описано обычное исполнение с восьмиконтактным разъёмом и печатной антенной без внешнего усилителя. Nordic Semiconductor — разработчик микросхемы; изготовитель конкретной готовой платы не установлен. Платы с PA/LNA, разъёмом SMA и отдельные адаптеры питания имеют другие требования и не охвачены этим подключением.

Enhanced ShockBurst поддерживает подтверждение доставки и повторную передачу. Это не Wi-Fi и не Bluetooth: телефон не подключается к модулю штатными средствами этих протоколов. CRC и адрес пакета не обеспечивают шифрование или аутентификацию. Дальность зависит от помех, размещения антенны и питания; гарантированного расстояния для неизвестной платы нет.

Для клона нельзя автоматически переносить все электрические допуски оригинала. У оригинальной IC входы допускают 5-вольтовые сигналы при соблюдении условий datasheet, но безопасный пример целиком использует 3,3 В. Устойчивый источник и короткие провода особенно важны при передаче.

Пример восьмиконтактного nRF24L01+ с печатной антенной без PA/LNA из каталога AZ-Delivery. Из общего фото выделена одна целая плата; детали и пропорции сохранены. Разрешение на повторное использование фото не подтверждено.

Источник изображения: www.az-delivery.de, исходный файл. Условия повторного использования не установлены; открытая лицензия не заявляется. Фон отделён, выполнено равномерное масштабирование; реальные детали платы не перерисованы.

nRF24L01+: подключение по именам сигналов к ESP32, только 3,3 В. Авторская схема SLDV LAB; физический порядок контактов зависит от платы.

Характеристики

Радиоканал
2,4 ГГц, GFSK / Enhanced ShockBurst
Скорость в эфире
250 кбит/с, 1 или 2 Мбит/с
Полезные данные пакета
32 байт
Ток IC при передаче 0 dBm
11.3 мА
Исполнение примера
Печатная антенна, без PA/LNA
Управление
SPI + CE; IRQ необязателен
Интерфейс
SPI
Питание модуля
Модуль в примере питается от стабилизированных 3,3 В; VDD оригинальной IC 1,9–3,6 В. Пример использует только логику 3,3 В; подавать 5 В на VCC нельзя.

ПРАКТИКА

Подключение

Контакт модуляКонтакт платыНазначение
VCCВнешний стабилизатор 3,3 ВПроверить маркировку платы; 100 нФ и примерно 10 мкФ у разъёма, короткие провода. Не соединять выходы двух стабилизаторов.
GNDGND ESP32 и источникаОбщая земля.
SCKGPIO18ESP32-DevKitC V4, аппаратная SPI.
MISOGPIO19Выход радио → вход ESP32.
MOSIGPIO23Выход ESP32 → вход радио.
CSNGPIO27Выбор SPI устройства; число в конструкторе RF24.
CEGPIO26Управление режимом радио.
IRQНе подключёнПример опрашивает available(); не замыкать выход на питание.

Подходит для ESP32, Arduino. Выберите контакты по документации своей платы.

ВАШ ПРОЕКТ · ВАШ ДАТЧИК

Интегрируйте модуль с ChatGPT

Скопируйте запрос в ChatGPT. Укажите свою плату и среду разработки — получите подключение и код для своего проекта.

Помоги интегрировать восьмиконтактный nRF24L01+ без PA/LNA. Уточни точную плату хоста, изготовителя радиомодуля, питание, расстояние и требования к доставке и защите данных. Дай согласованную схему SPI/CE/CSN, развязку питания, установку RF24, парный минимальный пример с обработкой ошибок и тест. У обоих узлов должны совпасть канал, скорость, адрес, CRC и длина пакета. Не переноси ток PA/LNA или терпимость оригинальной IC к 5 В на неизвестный модуль. Уточни местные ограничения радиоканала.

Библиотеки

Установите библиотеку для своей среды и откройте пример из её документации.

Что именно прописать

Плата и API
ESP32-DevKitC V4; Arduino-ESP32 3.3.0; RF24 1.5.0

ESP32-WROOM-32; для C3/S3 выбрать доступные GPIO заново.

Заголовки
#include <SPI.h> #include <RF24.h>

RF24 установить в Library Manager с указанной версией.

Конструктор
RF24 radio(26, 27);

Порядок: CE, CSN.

Радиоканал
40; 2440 МГц; 1 Мбит/с

Одинаковый у пары; разрешённость параметров проверить для страны.

Роль узла
TRANSMITTER = false

Для второго узла изменить на true; передатчик запускается командой t.

Два одинаковых узла: команда t передаёт счётчик

cpp
#include <Arduino.h>
#include <SPI.h>
#include <RF24.h>
RF24 radio(26, 27);
constexpr bool TRANSMITTER = false;
const uint8_t address[6] = "SLDV1";
uint32_t counter = 0;
void setup() {
  Serial.begin(115200);
  SPI.begin(18, 19, 23, 27);
  if (!radio.begin()) {
    Serial.println("Radio not found: check SPI and power");
    while (true) delay(1000);
  }
  radio.setChannel(40);
  radio.setDataRate(RF24_1MBPS);
  radio.setPALevel(RF24_PA_MIN);
  radio.setCRCLength(RF24_CRC_16);
  radio.setAutoAck(true);
  radio.setRetries(5, 5);
  radio.setPayloadSize(sizeof(counter));
  if (TRANSMITTER) {
    radio.stopListening(address);
    Serial.println("TX ready: type t");
  } else {
    radio.openReadingPipe(1, address);
    radio.startListening();
    Serial.println("RX ready");
  }
}
void loop() {
  if (TRANSMITTER && Serial.available()) {
    if (Serial.read() == 't') {
      ++counter;
      Serial.println(radio.write(&counter, sizeof(counter)) ? "ACK" : "No ACK");
    }
  }
  if (!TRANSMITTER && radio.available()) {
    uint32_t value = 0;
    radio.read(&value, sizeof(value));
    Serial.println(value);
  }
  delay(1);
}

Полный скетч для ESP32-DevKitC V4 с ESP32-WROOM-32, Arduino IDE и Arduino-ESP32 3.3.0. API сверено по исходникам; компиляция и проверка на реальном оборудовании здесь не выполнялись. Загрузить на две платы, у одной задать TRANSMITTER=true. Разнести антенны на 1–2 м, открыть мониторы 115200 и отправить t передатчику. Счётчик должен появиться у приёмника, ACK означает подтверждённый радиопакет. При No ACK проверить настройки пары, развязку и помехи; успешный begin() проверяет SPI, а не радиодоставку.

Проекты с этим компонентом

Все проекты

Связанные проекты пока не опубликованы.

Связанные материалы и компоненты