Модуль NRF24L01+ позволяет объединить до 6 устройств по радио каналу (можно больше с помощью отдельной библиотеки)

Код передатчика

#include 
#include 
#include 
RF24 radio(3, 4);
byte data = 0;

void setup() {
  radio.begin();                                             
  radio.setChannel(1);                                     
  radio.setDataRate     (RF24_1MBPS);                     
  radio.setPALevel      (RF24_PA_HIGH);                      
  radio.openWritingPipe (0xAABBCCDD11LL);                    
}
void loop() {
  radio.write(&data, sizeof(data));     
  data++;
  delay(50);     
}

Код приёмника

#include 
#include 
#include 
RF24 radio(3, 4);
byte data = 0;

void setup() {
  Serial.begin(9600);
  radio.begin();                                            
  radio.setChannel(1);                                     
  radio.setDataRate     (RF24_1MBPS);                       
  radio.setPALevel      (RF24_PA_HIGH);                      
  radio.openReadingPipe (1, 0xAABBCCDD11LL);                
  radio.startListening  ();                              
}
void loop() {
  if (radio.available()) {                            
    radio.read(&data, sizeof(data));                     
    Serial.println(data);
  }
}

Функция setChannel принимает значение от 0 до 127 и позволяет установить частоту работы. При значении 1 частота равна 2.401 Ггц, а при 127 – 2.527 Ггц.

Функция setDataRate устанавливает скорость передачи и принимает 3 варианта параметра RF24_250KBPS, RF24_1MBPS, RF24_2MBPS.

Функция openReadingPipe открывает трубу для приёма данных.

Функция openWritingPipe открывает трубу для передачи данных.

Функция setPALevel устанавливает мощность RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm, RF24_PA_HIGH=-6dBm, RF24_PA_MAX=0dBm.

Функция startListening позволяет начать слушать эфир.

Функция stopListening прекращает слушать эфир.

Функция available проверяет наличие данных для чтения.

Функция read считывает пришедшие данные и записывает их в переменную.

Функция write передаёт переменную в эфир. Так же возвращает true если данные были доставлены.

Функция enableAckPayload разрешает передавать данные пользователя в пакете подтверждения.

Функция writeAckPayload позволяет сделать ответ передатчику и принимает 3 аргумента, номер трубы, адрес переменной и размер переменной.

Функция powerDown позволяет перейти в режим низкого энергопотребления.

Функция powerUp выводит модуль из сна.

Функция closeReadingPipe закрывает трубу, которая была открыла для прослушивания.