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

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

  1. #include <SPI.h>
  2. #include <nRF24L01.h>
  3. #include <RF24.h>
  4. RF24 radio(3, 4);
  5. byte data = 0;
  6.  
  7. void setup() {
  8.   radio.begin();                                             
  9.   radio.setChannel(1);                                     
  10.   radio.setDataRate     (RF24_1MBPS);                     
  11.   radio.setPALevel      (RF24_PA_HIGH);                      
  12.   radio.openWritingPipe (0xAABBCCDD11LL);                    
  13. }
  14. void loop() {
  15.   radio.write(&data, sizeof(data));     
  16.   data++;
  17.   delay(50);     
  18. }

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

  1. #include <SPI.h>
  2. #include <nRF24L01.h>
  3. #include <RF24.h>
  4. RF24 radio(3, 4);
  5. byte data = 0;
  6.  
  7. void setup() {
  8.   Serial.begin(9600);
  9.   radio.begin();                                            
  10.   radio.setChannel(1);                                     
  11.   radio.setDataRate     (RF24_1MBPS);                       
  12.   radio.setPALevel      (RF24_PA_HIGH);                      
  13.   radio.openReadingPipe (1, 0xAABBCCDD11LL);                
  14.   radio.startListening  ();                              
  15. }
  16. void loop() {
  17.   if (radio.available()) {                            
  18.     radio.read(&data, sizeof(data));                     
  19.     Serial.println(data);
  20.   }
  21. }

Функция 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 закрывает трубу, которая была открыла для прослушивания.