Introduction
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
- Systèmes de surveillance à distance
- Contrôle à distance de périphériques électroniques
- Réseaux de capteurs sans fil
- Domotique et automatisation résidentielle
- Communication entre microcontrôleurs et microprocesseurs
- Systèmes de télémétrie
- Systèmes d’alarme sans fil
- Applications de robotique sans fil
- Contrôle de drones et de véhicules télécommandés
- Réseaux de communication sans fil à faible consommation d’énergie
Les broches du module
- 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.
- Broche CSN : Broche de sélection de la puce (Chip Select Pin). Elle active la communication avec le module NRF24L01+
- 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+.
- 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.
- 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+.
- Alimentation VCC : Broche d’alimentation du module NRF24L01+. Elle est connectée à une source d’alimentation de 3,3V pour alimenter le module.
- 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.
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 |
---|---|
CE | 9 |
CSN | 10 |
MOSI | 11 |
MISO | 12 |
SCK | 13 |
VCC | 3.3V |
GND | GND |
Récepteur
Broche NRF24L01+ | Broche Arduino |
---|---|
CE | 9 |
CSN | 10 |
MOSI | 11 |
MISO | 12 |
SCK | 13 |
VCC | 3.3V |
GND | GND |
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
- Documentation du module NRF24L01+ : https://www.nordicsemi.com/products/nrf24-series
- Bibliothèque RF24 pour arduino : https://github.com/nRF24/RF24
- Pour découvrir plus de tutoriel, vous pouvez consulter notre bloc : https://www.moussasoft.com/tutoriels-electroniques
- Twitter: Moussa Lhoussaine (@Moussasoft_com) / Twitter