Comment utiliser le module NRF24L01 avec Arduino?

Interfacing NRF24Lo1 with Arduino Uno

Si vous cherchez à ajouter une communication sans fil à votre projet, le Module Arduino NRF24L01 Le combo est l’une des solutions les plus fiables et les plus rentables disponibles. Que vous construisiez un bogue d’espionnage de bricolage, un talkie-walkie à longue portée, ou que vous vouliez simplement contrôler des choses sans fil, la configuration Arduino NRF24L01 vous donne la flexibilité d’envoyer et de recevoir des données sans fil sur de longues distances en utilisant la bande 2,4 GHz.

Dans cet article, nous vous guiderons à travers tout ce que vous devez savoir pour commencer Modules arduino et nrf24l01. Des diagrammes de câblage et de l’installation de la bibliothèque à des exemples de codes et à des conseils de dépannage, nous couvrirons tout. À la fin, vous aurez une base solide pour construire vos propres projets Arduino sans fil en utilisant le puissant module d’émetteur-récepteur NRF24L01.

Composants requis pour l'interfaçage NRF24L01 avec Arduino

Gamme de fréquences Bande ISM 2,4 GHz
Débit de données d’air maximum 2 Mo / s
Débit de données aérien minimum 250kb / s
Tension d’alimentation de fonctionnement 1,9 V à 3,6 V
Max. Courant de fonctionnement 13,5 mA
Min. Courant (mode veille) 26µA
Entrées logiques 5V tolérant
Plage de communication 700+ m (ligne de vue)
Nrf24l01 Arduino Uno
GND GND
VCC 3.3 V
CE 9
CSN 8
SCK 13
Mosi 11
Miso 12
#include 
#include 
#include 
#include 
#define DHTPIN 4     // DHT11 data pin
#define DHTTYPE DHT11
RF24 radio(9, 8);   // CE, CSN pins for nRF24L01
const byte address[6] = "00001";
DHT dht(DHTPIN, DHTTYPE);
struct SensorData {
 float temperature;
 float humidity;
};
void setup() {
 Serial.begin(9600);
 dht.begin();
 radio.begin();
 radio.openWritingPipe(address);
 radio.setPALevel(RF24_PA_LOW);
 radio.stopListening();
}
void loop() {
 SensorData data;
 data.temperature = dht.readTemperature();
 data.humidity = dht.readHumidity();
 if (isnan(data.temperature) || isnan(data.humidity)) {
   Serial.println("Failed to read from DHT sensor!");
   return;
 }
 bool success = radio.write(&data, sizeof(data));
 if (success) {
   Serial.println("Data sent successfully!");
 } else {
   Serial.println("Data send failed.");
 }
 delay(2000); // Send data every 2 seconds
}
#include 
#include 
#include 
#include 
#define DHTPIN 4     // DHT11 data pin
#define DHTTYPE DHT11
RF24 radio(9, 8);   // CE, CSN pins for nRF24L01
const byte address[6] = "00001";
DHT dht(DHTPIN, DHTTYPE);
struct SensorData {
 float temperature;
 float humidity;
};
SensorData data;
 data.temperature = dht.readTemperature();
 data.humidity = dht.readHumidity();
 if (isnan(data.temperature) || isnan(data.humidity)) {
   Serial.println("Failed to read from DHT sensor!");
   return;
 }
 bool success = radio.write(&data, sizeof(data));
 if (success) {
   Serial.println("Data sent successfully!");
 } else {
   Serial.println("Data send failed.");
 }
 delay(2000); // Send data every 2 seconds
#include 
#include 
#include 
#include 
#include 
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
RF24 radio(9, 8);   // CE, CSN pins for nRF24L01
const byte address[6] = "00001";
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
struct SensorData {
 float temperature;
 float humidity;
};
void setup() {
 Serial.begin(9600);
 // Initialize OLED display
 if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
   Serial.println("SSD1306 allocation failed");
   for (;;);
 }
 display.clearDisplay();
 display.setTextSize(1);
 display.setTextColor(SSD1306_WHITE);
 // Initialize nRF24L01
 radio.begin();
 radio.openReadingPipe(1, address);
 radio.setPALevel(RF24_PA_LOW);
 radio.startListening();
}
void loop() {
 if (radio.available()) {
   SensorData data;
   radio.read(&data, sizeof(data));
   // Display data on OLED
   display.clearDisplay();
   display.setTextSize(2);
   display.setCursor(0, 0);
   display.println("Data:");
   display.setTextSize(1);
   display.setCursor(0, 30);
   display.print("Temp: ");
   display.setCursor(60, 30);
   display.print(data.temperature);
   display.println(" C");
   display.setCursor(0, 45);
   display.print("Humidity: ");
   display.print(data.humidity);
   display.println(" %");
   display.display();
   
   Serial.println("Data received:");
   Serial.print("Temp: ");
   Serial.print(data.temperature);
   Serial.println(" C");
   Serial.print("Humidity: ");
   Serial.print(data.humidity);
   Serial.println(" %");
 }
 delay(1000);
}
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
struct SensorData {
  float temperature;
  float humidity;
};
void setup() {
 Serial.begin(9600);
 // Initialize OLED display
 if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
   Serial.println("SSD1306 allocation failed");
   for (;;);
 }
 display.clearDisplay();
 display.setTextSize(1);
 display.setTextColor(SSD1306_WHITE);
 // Initialize nRF24L01
 radio.begin();
 radio.openReadingPipe(1, address);
 radio.setPALevel(RF24_PA_LOW);
 radio.startListening();
}
void loop() {
 if (radio.available()) {
   SensorData data;
   radio.read(&data, sizeof(data));
   // Display data on OLED
   display.clearDisplay();
   display.setTextSize(2);
   display.setCursor(0, 0);
   display.println("Data:");
   display.setTextSize(1);
   display.setCursor(0, 30);
   display.print("Temp: ");
   display.setCursor(60, 30);
   display.print(data.temperature);
   display.println(" C");
   display.setCursor(0, 45);
   display.print("Humidity: ");
   display.print(data.humidity);
   display.println(" %");
   display.display();
   
   Serial.println("Data received:");
   Serial.print("Temp: ");
   Serial.print(data.temperature);
   Serial.println(" C");
   Serial.print("Humidity: ");
   Serial.print(data.humidity);
   Serial.println(" %");
 }
 delay(1000);
}

Retrouvez l’histoire de Raspberry Pi dans cette vidéo :

YouTube video

  • APKLVSR NRF24L01 + PA + LNA Module émetteur-récepteur Radio RF 2,4 G 1100 m avec antenne SMA Compatible avec Arduino (3 pièces)
  • 2pcs NRF24L01 2.4GHz Wireless Transceiver Module for Arduino Microcontroller | 2pcs NRF24L01 Module sans Fil 2,4 GHz pour Arduino, ESP8266, Raspberry Pi, etc.