NRF24L01: modulo per comunicazione wireless per Arduino

NRF24L01

Sicuramente devi creare un progetto fai da te usando Arduino o qualsiasi altro elemento e devi farne uso comunicazione wireless. E ciò accade avendo un qualche tipo di modulo o dispositivo che ti consente di trasmettere utilizzando IR, RF, Bluetooth, WiFi, ecc. Cioè, devi essere chiaro sulle esigenze per sapere quale tipo di segnale sarebbe il più appropriato nel tuo caso.

In questo caso abbiamo un file guida su NRF24L01 per te. È un chip di comunicazione wireless che ti fornirà ciò di cui hai bisogno per inviare e ricevere segnali. Il tipo di segnali che gestisce è RF o radiofrequenza, cioè onde di grande lunghezza d'onda, e quindi di bassa energia, che nello spettro elettromagnetico sono comprese tra 3 Hz e 300 Ghz di frequenza.

Cos'è NRF24L01?

NRF24L01

El NRF24L01 è un chip prodotto da Nordic Semiconductor. Se è Nessun prodotto trovato., il chip viene montato su un piccolo PCB con alcuni elementi ausiliari di cui hai bisogno, e quindi compone un modulo. Puoi usarlo in diversi modi, incluso collegandolo ad Adruino come ti mostrerò in seguito.

NRF24L01, come si evince dal nome, è un dispositivo di comunicazione wireless che utilizza RF o radiofrequenza con la possibilità di operare a 2,4 Ghz - 2,5 Ghz. Questa è la banda gratuita per l'uso gratuito. Sai già che altre bande sono riservate e devi pagare se vuoi usarle per trasmettere informazioni. Inoltre, integra un trasmettitore + un ricevitore.

Nello specifico la banda di frequenza utilizzabile è da 2.400 Mhz a 2.525Mhz, con possibilità di scelta tra canali 125 con spazi di 1 Mhz tra di loro. Tuttavia, non è consigliabile utilizzare frequenze da 2.4 Ghz se si utilizzano reti WiFi, droni che funzionano con questa frequenza, ecc., Altrimenti si verificheranno interferenze. Ecco perché è preferibile utilizzare da 2.501 Mhz in poi.

Per quanto riguarda le sue caratteristiche, funziona da 1.9 a 3.6v, Quindi sarà facile per te alimentarlo con la scheda Arduino stessa con la connessione 3.3, usando le batterie e anche con un alimentatore che abbia quel voltaggio. Inoltre, è possibile configurare la velocità di trasmissione tra 250 Kbps, 1 Mbps e fino a 2 Mbps.

Il chip in emissioni e ricezioni può funzionare contemporaneamente con fino a 6 connessioni di vari dispositivi. Con questo puoi trasmettere o ricevere da diversi punti senza alcun problema. E se sei preoccupato per la robustezza o l'affidabilità della comunicazione, il chip stesso dispone di circuiti logici per correggere gli errori di dati e inoltrare le informazioni se necessario. Pertanto, libera il processore da questa attività.

Per controllarlo puoi usare l'autobus SPI, quindi il suo controllo con Arduino è molto semplice. Inoltre, i pin dati dell'NRF24L01 supportano fino a 5v senza problemi. Il consumo in Stand By è piuttosto basso, quindi non sarà un elemento di cui preoccuparsi, e quando è in funzione non è tra i più costosi, poiché necessita solo di 15mA per l'invio e la ricezione dei dati.

Nel mercato ne troverai diversi diversi moduli che montano il chip NRF24L01, cambiano solo negli elementi ausiliari che hanno o in alcuni dettagli. Ad esempio nel tipo di antenna. Alcuni hanno un'antenna stampata sul PCB a forma di zig-zag con un raggio di circa 20-30 metri. Altri ammettono che un'antenna esterna un po 'più potente con un amplificatore vada da 700 metri a 1 km.

Tuttavia, l'ambito effettivo è limitato da alcuni fattori, come ostacoli stradali, rumore o interferenza da altri elementi o segnali presenti, velocità di trasmissione, tensione di alimentazione (tensione più alta, maggiore distanza), ecc. Ad esempio, se vuoi trasmettere alla velocità massima di 2 Mbps, avrai una grande penalità in lontananza, che sarà di soli 2 o 3 metri al massimo. A velocità inferiori potresti essere in grado di scalare quella distanza.

ESP8266
Articolo correlato:
ESP8266: il modulo WIFI per Arduino

Cosa devi sapere prima di acquistarlo?

Antenna NRF40L01

El NRF24L01 è un chip molto economico che può essere utilizzato in una moltitudine di progetti. Ad esempio, se non hai un'antenna esterna, puoi acquistarla fino a € 0.65, il modello con antenna esterna è un po 'più costoso di questo ma è comunque molto economico e di solito non supera € 1.7.

Se non hai un altro elemento di emissione o ricezione, sai già che devi acquistare due moduli NRF24L01, uno da utilizzare su un lato e l'altro sull'altro lato di dove vuoi trasmettere. Entrambi si comporteranno come mittente o destinatario come desidera.

Pinout e montaggio di NRF24L01

piedinatura NRF40L01

Per quanto riguarda l'assemblaggio, è abbastanza semplice. Il NRF24L01 ha 8 pin, quindi il suo pinout è molto semplice per capire come puoi vedere in questa immagine che ti lascio. A destra puoi vedere il diagramma dei pin di una scheda Arduino UNO e come ciascuno dei pin del modulo sarebbe collegato ad esso.

Come puoi dedurre, il piatto NRF24L01 è alimentato utilizzando i pin GND e 3.3v da Arduino. Ricorda di non farlo con il segnale 5v o danneggerai il modulo.

Integrazione con Arduino

2 NRF24L01 con Arduino (circuito)

Una volta che sai cos'è NRF24L01 e come può essere collegato e alimentato, oltre al numero di progetti che puoi fare con un paio di questi dispositivi economici, la prossima cosa è mostrare un esempio di programmazione così puoi iniziare a sperimentare con il tuo IDE Arduino. Ricorda che il formato dei dati che puoi trasmettere può essere modificato nel codice sorgente.

l298n
Articolo correlato:
L298N: modulo per il controllo dei motori per Arduino

Puoi scegliere di inviare e ricevere una stringa, un numero intero, un dato in virgola mobile, ecc. Ti raccomando la nostra guida alla programmazione di Arduino se stai iniziando. Con esso puoi creare i tuoi primi progetti. E come esempio concreto per NRF24L01, qui vi lascio i codici necessari per una stringa.

Codice che devi scrivere nell'IDE Arduino e programmare la scheda Arduino collegata all'NRF24L01 che andrai ad assegnare come trasmettitore:

#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);
}

Qui il codice che devi inserire nell'IDE di Arduino e registrare sulla scheda che hai collegato all'apposito NRF24L01 come ricevitore:

#include <nRF24L01.h>
#includi <RF24.h>
#include &lt;RF24_config.h&gt;
#includi <SPI.h>

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

// Indirizzo di un singolo canale radio per la comunicazione dei 2 nodi.
const uint64_t pipe = 0xE8E8F0F0E1LL;

dati char [16];

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

void loop (void)
{
if (radio.available ())
{
int done = radio.read (data, sizeof data);
Serial.println (dati);
}
}

Con quello avrai tutto ciò di cui hai bisogno e puoi provare a inviare parole o stringhe di testo di uno e vedere come l'altro li riceve. Usa due computer collegati tramite USB alla scheda Arduino per utilizzare la console come mezzo per visualizzare i dati. Separali a una distanza prudente in base al modulo che hai o alla configurazione che gli hai dato e inizierai a vedere sullo schermo dell'altro computer i caratteri che hai inserito nel primo codice ...


Un commento, lascia il tuo

Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   Stefan suddetto

    Ciao Isaac
    Voglio completare un progetto con arduino, rasberry o qualcos'altro.
    Puoi dare un contatto e-mail per spiegare?
    Una miniera a01b02@abv.bg
    grazie