Радиомодуль nRF24L01 (2,4 ГГц, SPI)
nRF24L01 — компактный радиопередатчик‑приёмник для беспроводного обмена данными между микроконтроллерами на частоте 2,4…2,5 ГГц. Управление по интерфейсу SPI. Подходит для Arduino, ESP32, STM32 и др.
Характеристики
- Диапазон частот: 2,4…2,5 ГГц
- Интерфейс: SPI
- Дальность: до 100 м (на открытом пространстве), в помещении до 30 м
- Питание: 1,9…3,6 В (логические уровни — 3,3 В)
- Размеры платы: 15 × 29 мм
Преимущества
- Низкое энергопотребление, высокая скорость обмена
- Библиотека RF24 (TMRh20) и расширения для сетей (RF24Network, RF24Mesh)
- Гибкая настройка скорости (250 кбит/с, 1 Мбит/с, 2 Мбит/с) и мощности
Подключение к Arduino UNO
- VCC → 3.3V (обязательно! не 5 В)
- GND → GND
- CE → D7 (можно любой свободный)
- CSN (CS) → D8 (можно любой свободный)
- SCK → D13
- MOSI → D11
- MISO → D12
Совет по питанию: для стабильной работы поставьте электролитический конденсатор 10–47 мкФ между VCC и GND модуля (особенно для дальнобойных версий с усилителем и антенной). Используйте чистые 3,3 В от стабилизатора.
Пример скетча (передатчик)
#include <SPI.h>
#include <RF24.h>
RF24 radio(7, 8); // CE, CSN
const byte address[6] = "1Node"; // адрес трубы
unsigned long counter = 0;
void setup() {
Serial.begin(115200);
if (!radio.begin()) {
Serial.println("Ошибка инициализации nRF24L01");
while (1);
}
radio.setChannel(108); // канал (2.4 ГГц + 108 МГц ≈ 2.508 ГГц), при помехах подберите
radio.setDataRate(RF24_250KBPS); // ниже скорость — дальше связь/выше помехоустойчивость
radio.setPALevel(RF24_PA_LOW); // мощность: MIN/LOW/HIGH/MAX (подбирайте под задачу)
radio.openWritingPipe(address);
radio.stopListening(); // режим передачи
}
void loop() {
counter++;
struct Payload {
unsigned long id;
float value;
} data = { counter, 23.5 + (counter % 100) / 10.0 };
bool ok = radio.write(&data, sizeof(data));
Serial.print("TX #"); Serial.print(counter);
Serial.print(" | value="); Serial.print(data.value, 1);
Serial.println(ok ? " | OK" : " | FAIL");
delay(500);
}
Пример скетча (приёмник)
#include <SPI.h>
#include <RF24.h>
RF24 radio(7, 8); // CE, CSN
const byte address[6] = "1Node"; // тот же адрес, что у передатчика
void setup() {
Serial.begin(115200);
if (!radio.begin()) {
Serial.println("Ошибка инициализации nRF24L01");
while (1);
}
radio.setChannel(108);
radio.setDataRate(RF24_250KBPS);
radio.setPALevel(RF24_PA_LOW);
radio.openReadingPipe(1, address);
radio.startListening(); // режим приёма
}
void loop() {
if (radio.available()) {
struct Payload {
unsigned long id;
float value;
} data;
while (radio.available()) {
radio.read(&data, sizeof(data));
}
Serial.print("RX #"); Serial.print(data.id);
Serial.print(" | value="); Serial.println(data.value, 1);
}
}
Примечания
Адрес трубы (pipe) должен совпадать на передатчике и приёмнике. Можно использовать разные адреса для разных пар устройств.
Для мультиузловых сетей используйте библиотеки RF24Network / RF24Mesh (поверх RF24), чтобы строить иерархические/mesh‑топологии без практического ограничения количества узлов.
На ESP32/STM32 пины SPI могут отличаться — используйте аппаратный SPI (HSPI/VSPI для ESP32) и назначьте CE/CSN на свободные GPIO.
Радиомодуль nRF24L01 (2,4 ГГц, SPI)
- Модель NRF24L01
- Код: ID-402
- Наличие Есть в наличии
-
54.65грн.



