SOMMAIRE ►
Module nRF24L01 sont des transceiver, c’est à dire qu’’ils peuvent émettre et réceptionner en radio fréquence de 2.4 GHz. On va tester leur utilisation sur 2 Arduino Uno. Réfléchissez à la manière de communiquer entre deux Arduino par liaison radio pour transmettre les données du capteur numérique de température et d’humidité DHT11. Une carte doit être configurée comme un récepteur de signaux et l’autre microcontrôleur comme un émetteur.
Pour cette activité, nous aurons besoin:
- deux Arduino Uno / Arduino Nano / Arduino Mega
- deux modules télécommande nrf24lo1
- capteur dht11
- LCD 16×02 i2c (ne peut être utilisé)
- fils de connexion
- librairies nRF24L01.h, LiquidCrystal_I2C.h, DHT.h
Matériel supplémentaire sur ce sujet:
Communication entre deux cartes Arduino par nRF24L01
Le module nRF24L01 possède un démodulateur, un synthétiseur de fréquence et un amplificateur de signal intégrés. La portée du nRF24L01 Arduino peut atteindre 30 mètres, et dans la version avec amplificateur et antenne, jusqu’à 1000 mètres. Le module peut utiliser 127 canaux de communication avec des fréquences de signal allant de 2,4 GHz à 2,483 GHz. La vitesse de la connexion sans fil peut être réglée à 250 kbps, 1 Mbps ou 2 Mbps.

| nRF24L01 | Arduino Uno | Arduino Nano | Arduino Mega |
| MISO | 12 | 12 | 50 |
| MOSI | 11 | 11 | 51 |
| SCK | 13 | 13 | 52 |
| SC | 10 | 10 | 53 |
Connectez le capteur DHT11 à la première Arduino et configurez en mode émetteur du module nRF24L01. Après avoir assemblé le schéma de câblage, chargez le code dans la carte.
Programme Arduino pour émetteur sans fil nRF24L01
#include "SPI.h" #include "nRF24L01.h" #include "RF24.h" #include "DHT.h" const uint64_t pipe = 0xF0F1F2F3F4LL; RF24 radio(9,10); // pour MEGA2560 radio(9,53); DHT dht(2, DHT11); void setup() { dht.begin(); Serial.begin(9600); radio.begin(); radio.setChannel(0); delay(2); radio.setChannel(0); radio.setDataRate(RF24_1MBPS); radio.setPALevel(RF24_PA_HIGH); radio.openWritingPipe(pipe); radio.stopListening(); } void loop() { float data[2]; data[0] = dht.readHumidity(); data[1] = dht.readTemperature(); radio.write(&data, sizeof(data)); Serial.print("Humidity: "); Serial.println(data[0]); Serial.print("Temperat: "); Serial.println(data[1]); delay(1000); }
Explication du code pour émetteur sans fil nRF24L01:
- les données du capteur de température et d’humidité DHT11 sont envoyées au port série et par canal radio une fois par seconde;
- les ports 9 et 10 pour la connexion de nRF24L01 peuvent être changés.

| LCD 1602 i2c | Arduino Uno | Arduino Nano | Arduino Mega |
| GND | GND | GND | GND |
| VCC | 5V | 5V | 5V |
| SDA | A4 | A4 | 20 |
| SCL | A5 | A5 | 21 |
Connectez l’écran LCD à la deuxième carte Arduino et mettez le module en mode récepteur. Après avoir assemblé le schéma de câblage, chargez le code dans le microcontrôleur.
Programme Arduino pour récepteur sans fil nRF24L01
#include "Wire.h" #include "LiquidCrystal_I2C.h" LiquidCrystal_I2C LCD(0x27, 16, 2); // définit lcd 16 x 2 #include "SPI.h" #include "nRF24L01.h" #include "RF24.h" const uint64_t pipe = 0xF0F1F2F3F4LL; RF24 radio(9,10); // pour MEGA2560 radio(9,53); void setup() { LCD.init(); // initialisation de l'afficheur LCD.backlight(); Serial.begin(9600); radio.begin(); radio.setChannel(0); delay(2); radio.setChannel(0); radio.setDataRate(RF24_1MBPS); radio.setPALevel(RF24_PA_HIGH); radio.openReadingPipe(1, pipe); radio.startListening(); } void loop() { float data[2]; if (radio.available()) { radio.read(&data, sizeof(data)); Serial.print("Humidity: "); Serial.println(data[0]); Serial.print("Temperat: "); Serial.println(data[1]); LCD.setCursor(0, 0); LCD.print("Humidity: "); LCD.print(data[0]); LCD.setCursor(1, 0); LCD.print("Temperat: "); LCD.print(data[1]); } }
Explication du code pour récepteur sans fil nRF24L01:
- les ports 9 et 10 pour la connexion de nRF24L01 peuvent être changés;
- si les données du récepteur n’apparaissent pas sur le moniteur de port, vérifiez d’abord que l’émetteur est correctement connecté.
Conclusion. Communication entre deux Arduino. Le module fonctionne sur l’interface SPI, donc vous devez connecter le nRF24L01 aux ports spécifiques du microcontrôleur (rappelez-vous que Arduino Mega 2560 a SPI sur d’autres ports). La portée du module est comparable à celle du module bluetooth Arduino, mais avec le nRF24L01 vous pouvez créer une communication multicanal. Il est donc possible de mettre en réseau jusqu’à 7 appareils.








Bonjour j ai ma belle mere qui ateinte d alzheimer dèfoit elle sort sans qu on le sache es que c est possible par cette solution . Ca veut dire si elle s eloigne de la maison la carte emetrice emet un signale pour la carte receptrice et elle nous prevoi
Merci Acceptez mes salutations