Arduino, Tutoriels

Comment utiliser module NRF24L01+ avec Arduino

Module Nrf24L01+ Avec Arduino

Introduction

 Nrf24L01+ Avec Arduino

NRF24L01+ avec antenne est un module équipé d’une antenne externe qui permet d’obtenir une meilleure portée de communication par rapport au module sans antenne. Ce module utilise le protocole de communication RF (radiofréquence) pour établir une connexion sans fil entre différents appareils Arduino. Il fonctionne dans la bande de fréquences 2,4 GHz et utilise le protocole de communication SPI pour interagir avec l’Arduino.

Spécifiques techniques du module

  • Modèle : NRF24L01+
  • Type d’antenne : Antenne SMA externe
  • Portée de communication : Jusqu’à +800 mètres
  • Tension de fonctionnement : 1,9 V à 3,6 V
  • Courant de fonctionnement : 12,3 mA (en mode émission), 14,9 mA (en mode réception)
  • Courant en veille : 900 nA
  • Fréquence de fonctionnement : 2,4 GHz
  • Puissance de transmission : Réglable jusqu’à +20 dBm
  • Sensibilité du récepteur : -92 dBm
  • Débit de données : 250 kbps, 1 Mbps, 2 Mbps
  • Nombre de canaux : 125 canaux
  • Interface : SPI (bus série périphérique)
  • Protocole de communication : Compatible avec le protocole NRF24L01
  • Température de fonctionnement : -40°C à +85°C
  • Dimensions : 46 mm x 26 mm x 10 mm

Les applications du module

  1. Systèmes de surveillance à distance
  2. Contrôle à distance de périphériques électroniques
  3. Réseaux de capteurs sans fil
  4. Domotique et automatisation résidentielle
  5. Communication entre microcontrôleurs et microprocesseurs
  6. Systèmes de télémétrie
  7. Systèmes d’alarme sans fil
  8. Applications de robotique sans fil
  9. Contrôle de drones et de véhicules télécommandés
  10. Réseaux de communication sans fil à faible consommation d’énergie

Les broches du module

  1. Broche CE : Utilisée pour activer ou désactiver le module NRF24L01+. Elle contrôle le mode de fonctionnement de l’émetteur/récepteur sans fil.
  2. Broche CSN : Broche de sélection de la puce (Chip Select Pin). Elle active la communication avec le module NRF24L01+
  3. Broche MOSI : Broche de sortie de données série du maître (Master Out Slave In). Elle envoie les données du microcontrôleur maître vers le module NRF24L01+.
  4. Broche MISO : Broche d’entrée de données série du maître (Master In Slave Out). Elle reçois les données du module NRF24L01+ vers le microcontrôleur maître.
  5. Broche SCK : Broche d’horloge série (Serial Clock). Elle synchrone la transmission de données entre le microcontrôleur maître et le module NRF24L01+.
  6. Alimentation VCC : Broche d’alimentation du module NRF24L01+. Elle est connectée à une source d’alimentation de 3,3V pour alimenter le module.
  7. Masse GND : Broche de mise à la terre du module NRF24L01+. Elle est connectée à la masse (GND) du système pour assurer une référence de tension commune.

Utilisation du module NRF24L01+ avec Antenne dans un Projet Arduino

Maintenant que nous comprenons les avantages du module NRF24L01+ avec antenne, explorons comment l’utiliser dans un projet Arduino. Dans cet exemple, nous allons créer un système de surveillance à distance en temps réel en utilisant deux cartes Arduino et deux modules NRF24L01+ avec antenne. La première carte Arduino sera configurée comme l’émetteur, tandis que la deuxième carte Arduino sera configurée comme le récepteur.

 Nrf24L01+ Avec Arduino
NRF24L01+ avec Arduino

Matériel Requis

  • 2 cartes Arduino
  • 2 modules NRF24L01+ avec antenne
  • Câbles de raccordement

Montage du Circuit

Émetteur

Broche du module NRF24L01+Broche de l’Arduino
CE9
CSN10
MOSI11
MISO12
SCK13
VCC3.3V
GNDGND

Récepteur

Broche NRF24L01+Broche Arduino
CE9
CSN10
MOSI11
MISO12
SCK13
VCC3.3V
GNDGND

Code Arduino

Code pour l’Émetteur

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

#define PIN_CE 9
#define PIN_CSN 10

RF24 radio(PIN_CE, PIN_CSN);
int dataToSend = 42;

void setup() {
  radio.begin();
  radio.openWritingPipe(0xF0F0F0F0E1LL); // ID unique pour l'émetteur
}

void loop() {
  radio.write(&dataToSend, sizeof(dataToSend));
  delay(1000);
}

Code pour le Récepteur

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

#define PIN_CE 9
#define PIN_CSN 10

RF24 radio(PIN_CE, PIN_CSN);
int receivedData;

void setup() {
  radio.begin();
  radio.openReadingPipe(1, 0xF0F0F0F0E1LL); // ID unique pour l'émetteur
  radio.startListening();
  Serial.begin(9600);
}

void loop() {
  if (radio.available()) {
    radio.read(&receivedData, sizeof(receivedData));
    Serial.print("Données reçues: ");
    Serial.println(receivedData);
  }
}

Explication du Code

Dans le code de l’émetteur, nous commençons par inclure les bibliothèques nécessaires pour la communication avec le module NRF24L01+. Ensuite, nous définissons les broches CE et CSN auxquelles sont connectés le module NRF24L01+ avec antenne. Nous créons ensuite un objet RF24 en utilisant ces broches.

Dans la fonction setup(), nous initialisons le module NRF24L01+ en appelant radio.begin(). Nous ouvrons également une “pipe d’écriture” en utilisant une ID unique pour l’émetteur à l’aide de radio.openWritingPipe().

Dans la fonction loop(), nous utilisons radio.write() pour envoyer les données à recevoir. Dans cet exemple, nous envoyons la valeur 42 à intervalles réguliers de 1 seconde.

Dans le code du récepteur, nous effectuons des opérations similaires pour la configuration du module NRF24L01+. Cependant, nous ouvrons une “pipe de lecture” en utilisant la même ID unique que celle de l’émetteur.

Dans la fonction loop(), nous utilisons radio.available() pour vérifier si des données sont disponibles. Si c’est le cas, nous les lisons à l’aide de radio.read() et les affichons via la liaison série.

Lien outilles