Microcontrollers Lab

Table of Contents

NRF24L01 è uno dei comunicatori RF legali per applicazioni moderne. NRF24L01 è il più economico ed è dotato di grandi caratteristiche. Un singolo modulo comunica alla frequenza di 2,4 GHz che lo rende legale. Può trasmettere e ricevere dati con un solo modulo. La ricetrasmissione non è la sua unica capacità, può comunicare con un totale di altri 6 moduli NRF24L01 uguali in una sola volta. Il dispositivo si interfaccia con l’applicazione Arduino e copre tutti i tipi di applicazioni di controllo remoto. Questo modulo wireless utilizza il protocollo di comunicazione SPI e offre una velocità di trasmissione dati di 10MBs con una gamma di 125 indirizzi che lo rende il modulo RF più affidabile. Il modulo RF usa il modulo GFSK per ricetrasmettere i dati.

Configurazione pinout NRF24L01

In NRF24L01 non ci sono pin speciali, tutti i pin che offre per comunicare sono presenti in tutti i microcontrollori e nella scheda. Il dispositivo si interfaccerà con un microcontrollore esterno/Arduino attraverso questi pin per funzionare. È composto da 8 pin. Tutti i pin disponibili sono:

Pin di alimentazione

VCC

Il pin di alimentazione del modulo è VCC, che si collega con l’alimentazione.

GND

nRF24L01 opera con un altro microcontrollore e avrà bisogno di una massa comune per operare con esso. Il pin GND risolverà il requisito della terra comune.

Pin di comunicazione

CE

CE è un pin di abilitazione, che attiva la trasmissione/ricezione del modulo. Attiva il dispositivo solo quando c’è uno stato ALTO su se stesso.

CSN

Questo pin serve per attivare l’ascolto e l’elaborazione dei dati dal microcontrollore. Per mantenere la comunicazione dei dati tra il microcontrollore e il modulo dovrebbe essere ALTO.

SCK

È il pin dell’impulso di clock della comunicazione SPI in nRF24L01. I dati si muoveranno tra il modulo e il microcontrollore secondo l’impulso di clock sul pin SCK.

MOSI

I dati trasmessi dal microcontrollore attraverso i pin SPI saranno ricevuti dal nRF24L01 sul pin MOSI.

MISO

Le istruzioni trasmesse dall’nRF24L01 tramite i pin SPI saranno ricevute dal microcontrollore sul pin MISO.

Pin di interruzione IRQ

IRQ è un pin di interrupt, che genera l’evento ogni volta che un nuovo dato è disponibile per i pin SPI. Aiuta a inviare un feedback al trasmettitore.

Caratteristica del modulo NRF24L01 RF

  • Funziona alla frequenza di 2.4GHz che lo rende legale in quasi tutti i paesi.
  • Un singolo modulo può agire sia come trasmettitore che come ricevitore.
  • Un’antenna integrata può inviare i dati fino a 100 metri.
  • Un modulo nRF24L01 può comunicare con un massimo di 6 altri moduli alla volta.
  • Richiede 3,3 volt per funzionare ma le tensioni possono estendersi solo fino a 3,6V altrimenti non ci vorrà molto tempo per riscaldarsi e bruciare.
  • Il dispositivo ha un oscillatore incorporato di 16MHz.
  • La velocità di trasmissione di nRF24L01 è 256kbps a 2Mbps.
  • Il dispositivo ha 125 canali che dà la caratteristica di operare 125 reti diverse in un unico luogo.
  • Le frequenze dei canali variano da 2400MHz a 2525MHz.

Applicazioni NRF24L01

  • Nella creazione di una piccola rete mesh, nRF24L01 è la scelta migliore da utilizzare.
  • Applicazioni di controllo remoto in via di sviluppo e commerciale funziona meravigliosamente con nRF24L01.
  • La maggior parte delle applicazioni IoT a livello domestico hanno questo modulo wireless ma solo a un piccolo livello.

Come utilizzare il modulo di comunicazione NRF24L01

nRF24L01 è utilizzabile con tutti i microcontrollori e smart board ma per utilizzarlo, alcuni pin e informazioni sui dati dovrebbero essere compresi. Per usare il modulo collegatelo con un altro microcontrollore con protocollo SPI. Per prima cosa, date l’alimentazione ai dispositivi e poi collegate i loro pin SPI secondo il circuito dato.

Dopo averlo collegato tenete a mente che ci sono due modi in cui l’nRF24L01 può funzionare. Il primo è trasmettitore e il secondo e ricevitore. Per comunicare come trasmettitore e ricevitore il microcontrollore deve essere conosciuto prima. Nell’applicazione moderna, Arduino è l’unico dispositivo che supporta la comunicazione più efficiente della comunicazione nRF24L01.

Interfacciamento con Arduino

C’è molto lavoro e ricerca su nRF24L01 su internet che può aiutare a usarlo in molte applicazioni ma c’è la base di questo modulo in Arduino ogni sviluppatore dovrebbe capire. Il funzionamento di base dell’nRF24L01 è trasmettitore e ricevitore, in Arduino, entrambi sono realizzabili attraverso i seguenti metodi. Ecco il circuito per Arduino UNO.

Come usare come trasmettitore Esempio

Quando l’nRF24L01 agisce come trasmettitore, allora può solo trasmettere dati su un singolo canale ad un altro modulo. Per usarlo come trasmettitore il programma in Arduino dovrebbe essere conosciuto. Dopo aver caricato il programma non ci sono modi senza programmazione le modalità tra trasmettitore e ricevitore sono modificabili. Per usarlo come trasmettitore il seguente codice dovrebbe essere caricato:

Dettagli sul codice del trasmettitore

La comunicazione tra Arduino e nRF24L01 dipende dalle seguenti librerie:

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

Come sappiamo che ogni scheda Arduino ha un pin SPI specifico di MISO, MOSI e SCK. Quindi, Arduino non dovrà parlarne, ma i pin CSN e CE devono essere inizializzati. La libreria nRF24L01 ha una funzione integrata per ottenere il PIN di entrambi CSN e CE che è:

RF24 radio(3, 2);

Il numero 3 rappresenta il pin CE e 2 rappresenta il pin CSN. Entrambi sono modificabili in base a qualsiasi pin digitale; qui sono secondo il circuito dato sopra.

Dopo che il modulo deve inizializzare usando il seguente comando:

radio.begin();

L’indirizzo è definibile con 5 bit per il dispositivo al quale deve comunicare il ricevitore. Qualsiasi numero a 5 bit è utilizzabile.

radio.openWritingPipe(10101);

Dopo di che il modulo deve conoscere la sua modalità. O sta lavorando come ricevitore o trasmettitore. Il seguente comando renderà l’nRF24L01 un trasmettitore.

 radio.stopListening();

Allora il dispositivo è utilizzabile come trasmettitore. L’unica cosa nota da inizializzare è l’invio dei dati. Tenete sempre presente che solo 32 byte di dati sono inviabili alla volta a causa della limitazione del modulo. Il seguente comando aiuterà a definire ciò:

const char data = "DATA";radio.write(&data, sizeof(data));

I dati di trasmissione sono definibili nel setup o nel loop del programma.

Come usare NRF24L01 come ricevitore Esempio

La parte precedente è tutta sul metodo di trasmissione ma il metodo del ricevitore non è diverso dal trasmettitore. Nel trasmettitore, solo tre istruzioni cambieranno.

  • Il canale dell’indirizzo, che non era disponibile nel trasmettitore
  • L’inizializzazione del modulo come ricevitore
  • Metodo di ricezione e controllo dei dati

Ecco il seguente codice per il ricevitore.

Dettaglio sul codice del ricevitore

Come potete notare solo tre parti sono diverse per il ricevitore dal trasmettitore.

La prima parte è la parte dell’indirizzo:

radio.openReadingPipe(0,10101);

Nella parte dell’indirizzo, ci sono due parti ora. la seconda è la parte dell’indirizzo che definisce l’indirizzo del dispositivo di trasmissione. La prima parte che è “0” definisce il canale. Come abbiamo detto sopra che il modulo offre 6 canali per comunicare alla volta, la prima parte della programmazione aiuterà a costruire più canali.

La seconda parte è l’inizializzazione del modulo come trasmettitore. Per inizializzare il modulo come trasmettitore, inizializzare il seguente comando:

radio.startListening();

La terza è la ricezione dei dati.

if (radio.available())

Aiuterà a conoscere i dati in arrivo

radio.read( data, size );

Aiuterà a leggere i dati.

NRF24L01 Esempio

Ci sono un sacco di applicazioni che nRF24L01 è utilizzabile ma fare una mesh è una delle migliori capacità di nRF24L01 che lo rende diverso da un altro modulo. Per usarlo come una mesh dovrebbero essere disponibili un totale di 3-7 moduli. Seguire l’immagine data.

Poi la seguente istruzione dovrebbe essere usata per inizializzare i diversi canali alla fine del ricevitore.

Il ricevitore non è in grado di distinguere tra i dispositivi così gli sviluppatori tengono sempre in mente che i dati non dovrebbero essere gli stessi tra i trasmettitori.

Diagramma 2D

Moduli alternativi:

  • Modulo XBee S2C
  • SX1278 Modulo LoRa RF
  • SIM900A Modulo GSM
  • ESP12E Modulo WiFi
  • PN532 Modulo NFC RFID
  • HM-10 Modulo Bluetooth
  • HC-05 Modulo Bluetooth
  • Modulo Ricevitore RF 433MHz
  • Modulo Trasmettitore RF 433MHz
  • TSOP1738 Ricevitore IR
  • Scheda Arduino MKR1000 WiFi

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.