Table of Contents
NRF24L01 är en av de lagliga RF-kommunikatorerna för moderna applikationer. NRF24L01 är den billigaste och den kommer med bra funktioner. En enda modul kommunicerar på frekvensen 2,4 GHz vilket gör den laglig. Den kan sända och ta emot data med en enda modul. Sändning och mottagning är inte dess enda förmåga, den kan kommunicera med totalt 6 andra samma NRF24L01-moduler samtidigt. Enheten har ett gränssnitt mot Arduino-applikationen och täcker alla typer av fjärrstyrningstillämpningar. Denna trådlösa modul använder SPI-kommunikationsprotokollet och erbjuder 10 MBs datahastighet med 125 adressintervall, vilket gör den till den mest tillförlitliga RF-modulen. RF-modulen använder GFSK-modulen för att överföra data.
- NRF24L01 Pinout Configuration
- Strömförsörjningsstift
- Kommunikationsstift
- IRQ Interrupt Pin
- NRF24L01 RF Module Feature
- NRF24L01 Användningsområden
- Så här använder du NRF24L01-kommunikationsmodulen
- Gränssnitt med Arduino
- Hur man använder som sändare Exempel
- Detaljer om sändarkod
- Hur man använder NRF24L01 som mottagare Exempel
- Detalj om mottagarkod
- NRF24L01 Exempel
- 2D-diagram
NRF24L01 Pinout Configuration
I NRF24L01 finns inga speciella stift, alla stift som den erbjuder för att kommunicera finns i alla mikrokontroller och kort. Enheten kommer att ha ett gränssnitt mot en extern mikrokontroller/Arduino genom dessa stift för att fungera. Den består av 8 stift. Alla tillgängliga stift är:
Strömförsörjningsstift
VCC
Modulens strömförsörjningsstift är VCC, som ansluter sig själv till strömförsörjningen.
GND
nRF24L01 fungerar tillsammans med en annan mikrokontroller och kommer att behöva en gemensam jord för att fungera med den. GND-stiftet löser kravet på gemensam jord.
Kommunikationsstift
CE
CE är ett aktiveringsstift som aktiverar modulens sändning/mottagning. Den aktiverar endast enheten när det finns ett HIGH-tillstånd på den själv.
CSN
Denna stift är till för att aktivera datalyssning och databehandling från mikrokontrollern. För att hålla datakommunikationen mellan mikrokontrollern och modulen ska den vara HIGH.
SCK
Det är klockpulspinnen för SPI-kommunikation i nRF24L01. Data flyttas mellan modulen och mikrokontrollern i enlighet med klockpulsen på SCK-stiftet.
MOSI
Data som sänds från mikrokontrollern via SPI-stiften kommer att tas emot av nRF24L01 på MOSI-stiftet.
MISO
Instruktionerna som sänds från nRF24L01 med hjälp av SPI-stift kommer att tas emot av mikrokontrollern vid MISO-stiftet.
IRQ Interrupt Pin
IRQ är ett avbrottsstift, som genererar händelsen närhelst nya data finns tillgängliga för SPI-stift. Den hjälper till att skicka återkoppling till sändaren.
NRF24L01 RF Module Feature
- Den fungerar på 2,4 GHz-frekvensen vilket gör den laglig i nästan alla länder.
- En enskild modul kan fungera som både sändare och mottagare.
- En inbyggd antenn kan skicka data upp till 100 meter.
- En modul nRF24L01 kan kommunicera med högst 6 andra moduler samtidigt.
- Den kräver 3,3 volt för att fungera, men spänningarna kan bara sträcka sig upp till 3,6 V, annars tar det inte lång tid för den att värmas upp och brinna.
- Enheten har en inbyggd oscillator på 16 MHz.
- Sändningshastigheten för nRF24L01 är 256kbps till 2Mbps.
- Enheten har 125 kanalområden som ger funktionen att driva 125 olika nätverk på en enda plats.
- Kanalfrekvenserna varierar från 2400MHz till 2525MHz.
NRF24L01 Användningsområden
- I skapandet av ett litet mesh-nätverk är nRF24L01 det bästa valet att använda.
- Fjärrstyrningstillämpningar vid utveckling och kommersiella fungerar utmärkt med nRF24L01.
- De flesta IoT-tillämpningar på hemmanivå har denna trådlösa modul, men endast på en liten nivå.
Så här använder du NRF24L01-kommunikationsmodulen
nRF24L01 går att använda med alla mikrokontroller och smarta styrelser, men för att kunna använda den bör man förstå vissa pinnar och datainformation. För att använda modulen ansluts den till en annan mikrokontroller med SPI-protokoll. Först ger du strömmen till enheterna och sedan ansluter du deras SPI-stift enligt den givna kretsen.
När du har anslutit den ska du komma ihåg att det finns två sätt som nRF24L01 kan fungera på. Det första är sändare och det andra och mottagare. För att kommunicera som sändare och mottagare måste mikrokontrollern ha känt till först. I den moderna tillämpningen är Arduino den enda enheten som stöder den mest effektiva kommunikationen av nRF24L01-kommunikationen.
Gränssnitt med Arduino
Det finns mycket arbete och forskning om nRF24L01 på internet som kan hjälpa till att använda den i många tillämpningar, men det finns en grund för denna modul i Arduino som varje utvecklare bör förstå. Den grundläggande driften av nRF24L01 är sändare och mottagare, i Arduino kan båda uppnås genom följande metoder. Här är kretsen för Arduino UNO.
Hur man använder som sändare Exempel
När nRF24L01 kommer att fungera som sändare så kan den bara sända data på en enda kanal till en annan modul. För att använda den som sändare bör programmet i Arduino ha känt till. Efter uppladdning av programmet finns det inga sätt utan programmering lägena mellan sändare och mottagare kan ändras. För att använda den som sändare bör följande kod laddas upp:
Detaljer om sändarkod
Kommunikationen mellan Arduino och nRF24L01 är beroende av följande bibliotek:
#include <nRF24L01.h>#include <RF24.h>#include <SPI.h>
Som vi vet har varje Arduinokort en specifik SPI-stift med MISO, MOSI och SCK. Så Arduino behöver inte berätta om dem, men CSN- och CE-pinnarna måste initialiseras. Biblioteket nRF24L01 har en inbyggd funktion för att få fram PIN-koden för både CSN och CE som är:
RF24 radio(3, 2);
Talet 3 representerar CE-pinnen och 2 representerar CSN-pinnen. Båda kan ändras enligt alla digitala stift; här är de enligt den ovan givna kretsen.
Efter det måste modulen initialiseras med hjälp av följande kommando:
radio.begin();
Adressen är definierbar med 5 bitar för den enhet som den ska kommunicera mottagaren till. Alla 5-bitarstal kan användas.
radio.openWritingPipe(10101);
Efter det måste modulen känna till sitt läge. Antingen arbetar den som mottagare eller sändare. Följande kommando kommer att göra nRF24L01 till en sändare.
radio.stopListening();
Därefter kan enheten användas som sändare. Det enda som är känt för att initiera är att skicka data. Tänk alltid på att endast 32 bytes data kan skickas åt gången på grund av modulbegränsningen. Följande kommando hjälper till att definiera det:
const char data = "DATA";radio.write(&data, sizeof(data));
Sändardata kan definieras i programmets setup eller loop.
Hur man använder NRF24L01 som mottagare Exempel
Ovanstående del handlar om överföringsmetoden men mottagarmetoden skiljer sig inte från sändaren. I sändaren är det bara tre instruktioner som kommer att ändras:
- Adresskanalen, som inte var tillgänglig i sändaren
- Initialiseringen av modulen som mottagare
- Metoden för mottagning och kontroll av data
Här är följande kod för mottagaren.
Detalj om mottagarkod
Som du märker är det bara tre delar som skiljer mottagaren från sändaren.
Den första delen är adressdelen:
radio.openReadingPipe(0,10101);
I adressdelen finns det två delar nu. den andra är adressdelen som definierar adressen till överföringsenheten. Den första delen som är “0” definierar kanalen. Eftersom vi pratade ovan att modulen erbjuder 6 kanaler för att kommunicera samtidigt, kommer den första delen av programmeringen att hjälpa till att bygga flera kanaler.
Den andra delen är initialiseringen av modulen som sändare. För att initialisera modulen som sändare initialiserar du följande kommando:
radio.startListening();
Den tredje delen är datamottagningen.
if (radio.available())
Det kommer att hjälpa till att känna till inkommande data
radio.read( data, size );
Det kommer att hjälpa till att läsa data.
NRF24L01 Exempel
Det finns ett gäng tillämpningar nRF24L01 kan användas men att göra ett nät är en av de bästa förmågorna hos nRF24L01 som gör att den skiljer sig från en annan modul. För att använda den som ett nät bör totalt 3-7 moduler finnas tillgängliga. Följ den givna bilden.
Därefter bör följande instruktion användas för att initialisera de olika kanalerna i mottagarslutet.
Mottagaren kan inte skilja mellan enheterna så utvecklare håller alltid i åtanke att datan inte bör vara densamma mellan sändare.
2D-diagram
Alternativa moduler:
- XBee S2C-modul
- SX1278 LoRa RF-modul
- SIM900A GSM-modul
- ESP12E WiFi-modul
- PN532 NFC RFID-modul
- HM-10 Bluetooth-modul
- HC-05 Bluetooth-modul
- 433MHz RF-mottagarmodul
- 433MHz RF-sändarmodul
- TSOP1738 IR-mottagare
- Arduino MKR1000 WiFi Board