NRF24L01: modul za bežičnu komunikaciju za Arduino

NRF24L01

Sigurno trebate izraditi "uradi sam" projekat koristeći Arduino ili bilo koji drugi element i to morate iskoristiti bežična komunikacija. A to se događa tako što imate neku vrstu modula ili uređaja koji vam omogućavaju prenos putem IC, RF, Bluetooth, WiFi, itd. Odnosno, morate biti načisto sa potrebama da znate koja vrsta signala bi bila najprikladnija u vašem slučaju.

U ovom slučaju imamo Vodič za NRF24L01 za tebe. To je čip za bežičnu komunikaciju koji će vam pružiti ono što vam je potrebno za slanje i primanje signala. Vrsta signala kojima rukuje su RF ili radio frekvencije, odnosno valovi velike talasne dužine, a samim tim i niske energije, koji u elektromagnetskom spektru imaju frekvenciju između 3 Hz i 300 Ghz.

Šta je NRF24L01?

NRF24L01

El NRF24L01 je čip proizveden od Nordic Semiconductor. Ako Nije pronađen nijedan proizvod., čip dolazi montiran na malu pločicu s nekim pomoćnim elementima koji su vam potrebni, te stoga sastavlja modul. Možete ga koristiti na nekoliko načina, uključujući povezivanje s Adruinom, kako ću vam pokazati kasnije.

NRF24L01, kao što se može zaključiti iz njegovog imena, bežični je komunikacijski uređaj koji koristi RF ili radio frekvenciju s mogućnošću rada na 2,4 GHz - 2,5 GHz. To je besplatni opseg za besplatno korištenje. Već znate da su drugi opsezi rezervirani i morate platiti ako ih želite koristiti za prijenos informacija. Pored toga, integriše predajnik + prijemnik.

Konkretno, frekvencijski opseg koji možete koristiti je od 2.400 MHz do 2.525 MHz, uz mogućnost odabira između 125 kanali s razmakom od 1 MHz između njih. Međutim, ne preporučuje se upotreba frekvencija od 2.4 GHz ako koristite WiFi mreže, dronove koji rade s ovom frekvencijom itd., Ili će doći do smetnji. Zbog toga je poželjnije koristiti od 2.501Mhz nadalje.

Što se tiče njegovih karakteristika, radi od 1.9 do 3.6v, Tako ćete ga lako moći napajati Arduino pločom sa priključkom 3.3, koristeći baterije, pa čak i s napajanjem koje ima taj napon. Pored toga, možete konfigurirati brzinu prijenosa između 250 Kbps, 1Mbps i do 2Mbps.

Čip u emisijama i prijemima može raditi istovremeno do 6 veza različitih uređaja. Uz to možete bez problema emitirati ili primati sa različitih tačaka. A ako ste zabrinuti zbog robusnosti ili pouzdanosti komunikacije, sam čip ima logički sklop za ispravljanje grešaka u podacima i prosljeđivanje informacija ako je potrebno. Stoga oslobađa procesor ovog zadatka.

Za njegovo upravljanje možete koristiti sabirnica SPI, tako da je njegova kontrola s Arduinom vrlo jednostavna. Uz to, podatkovne iglice NRF24L01 bez problema podržavaju do 5v. Potrošnja energije u stanju pripravnosti prilično je mala, pa to neće biti element zbog kojeg biste trebali brinuti, a kada je u radu, to nije jedno od najskupljih, jer mu za slanje i primanje podataka treba samo 15 mA.

Na tržištu ćete pronaći nekoliko različiti moduli koji montiraju čip NRF24L01, oni se mijenjaju samo u pomoćnim elementima koje imaju ili u nekim detaljima. Na primjer u tipu antene. Neki imaju antenu otisnutu na PCB-u u obliku cik-cak dometa od oko 20-30 metara. Drugi priznaju nešto snažniju vanjsku antenu s pojačalom koja ide od 700 metara do 1 km.

Međutim, stvarni opseg ograničen je nekim faktorima, kao što su prepreke na putu, buka ili smetnje od drugih prisutnih elemenata ili signala, brzina prenosa, napon napajanja (veći napon, veća udaljenost) itd. Na primjer, ako želite prenositi maksimalnom brzinom od 2Mbps, to će imati veliku kaznu na daljinu, koja će biti maksimalna samo 2 ili 3 metra. Pri nižim brzinama možda ćete se moći popeti na tu udaljenost.

ESP8266
Vezani članak:
ESP8266: WIFI modul za Arduino

Šta trebate znati prije nego što ga kupite?

NRF40L01 antena

El NRF24L01 je vrlo jeftin čip koji se mogu koristiti u mnoštvu projekata. Na primjer, ako nemate vanjsku antenu, možete je kupiti za do 0.65 eura, a model vanjske antene je nešto skuplji od ovog, ali je i dalje vrlo jeftin i obično ne prelazi 1.7 eura.

Ako nemate drugi element za emisiju ili prijem, već znate da morate kupiti dva modula NRF24L01, jedan za upotrebu na jednoj, a drugi na drugoj strani mjesta na kojem želite emitirati. Oboje će se ponašati kao pošiljalac ili primalac kako želite.

Pinout i montaža NRF24L01

pinout NRF40L01

Što se tiče montaže, ona je prilično jednostavna. The NRF24L01 ima 8 pinova, stoga je njegovo pinout vrlo jednostavno da biste shvatili kako na ovoj slici vidite da vas ostavljam. S desne strane možete vidjeti pin shemu ploče Arduino UNO i kako bi svaka pinova modula bila povezana s njim.

Kao što možete zaključiti, ploča NRF24L01 se napaja pomoću GND i 3.3v pinova od Arduino. Ne zaboravite da to ne radite sa 5v signalom jer ćete inače oštetiti modul.

Integracija s Arduinom

2 NRF24L01 s Arduinom (sklop)

Jednom kada saznate što je NRF24L01 i kako se može povezati i napajati, pored broja projekata koje možete napraviti s nekoliko ovih jeftinih uređaja, slijedeća stvar je pokazati primjer programiranja tako da možete početi eksperimentirati sa svojim Arduino IDE-om. Imajte na umu da se format podataka koji možete prenijeti može izmijeniti u izvornom kodu.

l298n
Vezani članak:
L298N: modul za upravljanje motorima za Arduino

Možete odabrati slanje i primanje niza, cijelog broja, podataka s pomičnom zarezom itd. Preporučujem vam naš vodič za Arduino programiranje ako počinjete. Pomoću nje možete stvoriti svoje prve projekte. I kao konkretan primjer za NRF24L01, ovdje vas ostavljam kodovi potrebni za niz.

Kôd koji morate napisati u Arduino IDE i programirati Arduino ploču povezanu sa NRF24L01 koju ćete dodijeliti kao predajnik:

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

Ovdje kod koji morate unijeti u Arduino IDE i zabilježiti na ploči koju ste povezali sa namjenskim NRF24L01 kao receptor:

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

// Adresa jednostruke cijevi za komunikaciju dva čvora.
const uint64_t cijev = 0xE8E8F0F0E1LL;

char podaci [16];

void postavljanje (void)
{
Serial.begin (9600);
radio.begin ();
radio.openReadingPipe (1, cijev);
radio.startListening ();
}

petlja void (void)
{
if (radio.available ())
{
int done = radio.read (podaci, veličina podataka);
Serial.println (podaci);
}
}

S tim imat ćete sve što vam treba, a možete pokušati poslati riječi ili tekstualne nizove jedne i vidjeti kako ih prima druga. Upotrijebite dva računara povezana USB-om na ploču Arduino da biste koristili konzolu kao sredstvo za pregled podataka. Razdvojite ih opreznu udaljenost prema modulu koji imate ili konfiguraciji koju ste mu dali i na ekranu drugog računara počet ćete vidjeti znakove koje ste unijeli u prvi kôd ...


Komentar, ostavi svoj

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Stefan rekao je

    Zdravo Isaac
    Želim dovršiti projekt s arduinom, rasberryom ili nečim drugim.
    Možete li kontaktirati putem e-pošte kako biste objasnili?
    Rudnik - a01b02@abv.bg
    hvala