NRF24L01: module de communication sans fil pour Arduino

NRF24L01

Vous devez sûrement créer un projet de bricolage en utilisant Arduino ou tout autre élément et vous devez utiliser communication sans fil. Et cela se produit en ayant un type de module ou d'appareil qui vous permet de transmettre en utilisant IR, RF, Bluetooth, WiFi, etc. Autrement dit, vous devez être clair sur les besoins de savoir quel type de signal serait le plus approprié dans votre cas.

Dans ce cas, nous avons un guide sur le NRF24L01 pour toi. C'est une puce de communication sans fil qui vous fournira ce dont vous avez besoin pour envoyer et recevoir des signaux. Le type de signaux qu'il traite est RF ou radiofréquence, c'est-à-dire des ondes de grande longueur d'onde, et donc de faible énergie, qui dans le spectre électromagnétique ont une fréquence comprise entre 3 Hz et 300 Ghz.

Qu'est-ce que le NRF24L01?

NRF24L01

El NRF24L01 est une puce fabriquée par Nordic Semiconductor. Si ça Aucun produit trouvé., la puce est montée sur un petit PCB avec quelques éléments auxiliaires dont vous avez besoin, et donc composant un module. Vous pouvez l'utiliser de plusieurs manières, y compris en le connectant à Adruino comme je vous le montrerai plus tard.

NRF24L01, comme on peut le déduire de son nom, est un appareil de communication sans fil qui utilise RF ou radiofréquence avec la capacité de fonctionner à 2,4 GHz - 2,5 GHz. C'est le groupe gratuit pour une utilisation gratuite. Vous savez déjà que d'autres bandes sont réservées et que vous devez payer si vous souhaitez les utiliser pour transmettre des informations. De plus, il intègre un émetteur + un récepteur.

Plus précisément, la bande de fréquence que vous pouvez utiliser est de 2.400 Mhz à 2.525 Mhz, avec la possibilité de choisir entre canaux 125 avec des espaces de 1Mhz entre eux. Cependant, il n'est pas recommandé d'utiliser des fréquences de 2.4 GHz si vous utilisez des réseaux WiFi, des drones qui fonctionnent avec cette fréquence, etc., sinon il y aura des interférences. C'est pourquoi il est préférable d'utiliser à partir de 2.501Mhz.

Concernant ses caractéristiques, fonctionne de 1.9 à 3.6 v, Il vous sera donc facile de l'alimenter avec la carte Arduino elle-même avec la connexion 3.3, en utilisant des batteries, et même avec une alimentation qui a cette tension. En outre, vous pouvez configurer la vitesse de transmission entre 250 Kbps, 1 Mbps et jusqu'à 2 Mbps.

La puce dans les émissions et les réceptions peut fonctionner simultanément avec jusqu'à 6 connexions de divers appareils. Avec cela, vous pouvez diffuser ou recevoir à partir de différents points sans aucun problème. Et si vous êtes préoccupé par la robustesse ou la fiabilité de la communication, la puce elle-même dispose de circuits logiques pour corriger les erreurs de données et transmettre des informations si nécessaire. Par conséquent, il libère le processeur de cette tâche.

Pour le contrôler, vous pouvez utiliser le bus SPI, donc son contrôle avec Arduino est très simple. De plus, les broches de données du NRF24L01 prennent en charge jusqu'à 5v sans problème. La consommation d'énergie en veille est assez faible, ce ne sera donc pas un élément à craindre, et lorsqu'il est en fonctionnement, ce n'est pas l'un des plus coûteux, car il n'a besoin que de 15 mA pour envoyer et recevoir des données.

Sur le marché, vous trouverez plusieurs différents modules qui montent la puce NRF24L01, ils ne changent que dans les éléments auxiliaires dont ils disposent ou dans certains détails. Par exemple dans le type d'antenne. Certains ont une antenne imprimée sur le PCB en forme de zigzag avec une portée d'environ 20-30 mètres. D'autres admettent une antenne externe un peu plus puissante avec un amplificateur pour passer de 700 mètres à 1 km.

Cependant, la portée réelle est limitée par certains facteurs, tels que les obstacles routiers, le bruit ou les interférences d'autres éléments ou signaux présents, la vitesse de transmission, la tension d'alimentation (tension plus élevée, plus grande distance), etc. Par exemple, si vous souhaitez transmettre à la vitesse maximale de 2Mbps cela aura une grande pénalité dans la distance, qui ne sera que de 2 ou 3 mètres maximum. À des vitesses inférieures, vous pourrez peut-être grimper cette distance.

ESP8266
Article connexe:
ESP8266: le module WIFI pour Arduino

Que devez-vous savoir avant de l'acheter?

Antenne NRF40L01

El NRF24L01 est une puce très bon marché qui peut être utilisé dans une multitude de projets. Par exemple, si vous n'avez pas d'antenne externe, vous pouvez l'acheter jusqu'à 0.65 €, le modèle d'antenne externe étant un peu plus cher que celui-ci mais il reste très bon marché et ne dépasse généralement pas 1.7 €.

Si vous n'avez pas d'autre élément d'émission ou de réception, vous savez déjà que vous devez acheter deux modules NRF24L01, l'un à utiliser d'un côté et l'autre de l'autre côté de l'endroit où vous souhaitez émettre. Ils agiront tous les deux comme expéditeur ou destinataire comme vous voulez.

Brochage et montage du NRF24L01

brochage NRF40L01

Quant au montage, c'est assez simple. le NRF24L01 a 8 broches, donc son brochage est très facile pour comprendre comment vous pouvez voir dans cette image que je vous laisse. Sur la droite, vous pouvez voir le diagramme des broches d'une carte Arduino UNO et comment chacune des broches du module y serait connectée.

Comme vous pouvez le déduire, l'assiette NRF24L01 est alimenté en utilisant les broches GND et 3.3v d'Arduino. N'oubliez pas de ne pas le faire avec le signal 5v ou vous endommagerez le module.

Intégration avec Arduino

2 NRF24L01 avec Arduino (circuit)

Une fois que vous savez ce qu'est le NRF24L01 et comment il peut être connecté et alimenté, en plus du nombre de projets que vous pouvez faire avec quelques appareils bon marché, la chose suivante est de montrer un exemple de programmation afin que vous puissiez commencer à expérimenter avec votre IDE Arduino. N'oubliez pas que le format des données que vous pouvez transmettre peut être modifié dans le code source.

l298n
Article connexe:
L298N: module de contrôle des moteurs pour Arduino

Vous pouvez choisir d'envoyer et de recevoir une chaîne, un entier, des données en virgule flottante, etc. Je te recommende notre guide sur la programmation Arduino si vous commencez. Avec lui, vous pouvez créer vos premiers projets. Et comme exemple concret pour le NRF24L01, ici je vous laisse les codes nécessaires pour une chaîne.

Code que vous devez écrire dans l'IDE Arduino et programmer la carte Arduino connectée au NRF24L01 que vous allez attribuer comme émetteur:

#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>
#include <SPI.h>
 
const int pinCE = 9;
const int pinCSN = 10;
RF24 radio(pinCE, pinCSN);
 
// Single radio pipe address for the 2 nodes to communicate.
const uint64_t pipe = 0xE8E8F0F0E1LL;
 
char data[16]="Aquí tu mensaje" ;
 
void setup(void)
{
   radio.begin();
   radio.openWritingPipe(pipe);
}
 
void loop(void)
{
   radio.write(data, sizeof data);
   delay(1000);
}

Voici le code que vous devez entrer dans l'IDE Arduino et enregistrer sur la carte que vous avez connectée au NRF24L01 dédié comme récepteur:

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

const entier pinCE = 9 ;
const int pinCSN = 10 ;
Radio RF24 (pinCE, pinCSN);

// Adresse de canal radio unique pour les 2 nœuds à communiquer.
const uint64_t tuyau = 0xE8E8F0F0E1LL ;

données char [16];

void setup (void)
{
Serial.begin (9600);
radio.begin ();
radio.openReadingPipe (1, pipe);
radio.startListening ();
}

boucle vide (vide)
{
if (radio disponible ())
{
int done = radio.read (données, taille des données);
Serial.println (données);
}
}

Avec ça vous aurez tout ce dont vous avez besoin et vous pouvez essayer d'envoyer des mots ou des chaînes de texte de l'un et voir comment l'autre les reçoit. Utilisez deux ordinateurs connectés par USB à la carte Arduino pour utiliser la console comme moyen de visualiser les données. Séparez-les d'une distance prudente en fonction du module que vous avez ou de la configuration que vous lui avez donnée et vous commencerez à voir sur l'écran de l'autre ordinateur les caractères que vous avez saisis dans le premier code ...


Un commentaire, laissez le vôtre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   Stefan dit

    Bonjour Isaac
    Je veux terminer un projet avec arduino, framboise ou autre chose.
    Pouvez-vous donner un contact par e-mail pour expliquer?
    Une mine - a01b02@abv.bg
    merci