Модуль NRF24L01+ позволяет объединить до 6 устройств по радио каналу (можно больше с помощью отдельной библиотеки)
Код передатчика
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
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 <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
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 закрывает трубу, которая была открыла для прослушивания.