Tartalomjegyzék
Az NRF24L01 az egyik legális RF kommunikátor a modern alkalmazásokhoz. Az NRF24L01 a legolcsóbb, és nagyszerű funkciókkal rendelkezik. Egyetlen modul 2,4 GHz-es frekvencián kommunikál, ami legálissá teszi. Egyetlen modullal képes adatokat továbbítani és fogadni. Az adó-vétel nem az egyetlen képessége, összesen 6 másik azonos NRF24L01 modullal tud egyszerre kommunikálni. Az eszköz interfész az Arduino alkalmazással, és mindenféle távvezérlő alkalmazást lefed. Ez a vezeték nélküli modul SPI kommunikációs protokollt használ, és 10 MBs adatátviteli sebességet kínál 125 címtartományban, ami a legmegbízhatóbb RF modult teszi megbízhatóvá. Az RF modul a GFSK modult használja az adatátvitelhez.
- NRF24L01 Pinout konfiguráció
- Tápellátó csapok
- Kommunikációs pinek
- IRQ megszakító pin
- NRF24L01 RF modul jellemzői
- NRF24L01 alkalmazások
- Hogyan kell használni az NRF24L01 kommunikációs modult
- Interfacing with Arduino
- Hogyan kell használni adóként Példa
- Részletek az adókódról
- Az NRF24L01 vevőként való használatának módja Példa
- Részlet a vevő kódjáról
- NRF24L01 példa
- 2D diagram
NRF24L01 Pinout konfiguráció
Az NRF24L01-ben nincsenek speciális csapok, minden csap, amelyet a kommunikációhoz kínál, minden mikrokontrollerben és fórumon jelen van. Az eszköz ezeken a csapokon keresztül kapcsolódik egy külső mikrokontrollerhez / Arduino-hoz a működéshez. Ez 8 csapból áll. Az összes rendelkezésre álló csap:
Tápellátó csapok
VCC
A modul tápellátó csapja a VCC, amely csatlakozik a tápegységhez.
GND
nRF24L01 egy másik mikrokontrollerrel működik, és közös földre lesz szüksége a működéshez. A GND pin megoldja a közös földelés követelményét.
Kommunikációs pinek
CE
A
CE egy engedélyező pin, amely aktiválja a modul adását/vételét. Csak akkor aktiválja az eszközt, ha HIGH állapot van rajta.
CSN
Ez a pin az adathallgatás és -feldolgozás aktiválására szolgál a mikrokontrollertől. A mikrokontroller és a modul közötti adatkommunikáció fenntartásához HIGH-nak kell lennie.
SCK
Ez az nRF24L01 SPI-kommunikáció óraimpulzus pinje. Az adatok a modul és a mikrokontroller között az SCK csapon lévő óraimpulzusnak megfelelően mozognak.
MOSI
A mikrokontroller által az SPI csapokon keresztül továbbított adatokat az nRF24L01 a MOSI csapon fogadja.
MISO
Az nRF24L01-től az SPI csapokon keresztül továbbított utasításokat a mikrokontroller az MISO csapon fogja fogadni.
IRQ megszakító pin
Az IRQ egy megszakító pin, amely eseményt generál, amikor új adat áll rendelkezésre az SPI csapokon. Segít visszajelzést küldeni az adónak.
NRF24L01 RF modul jellemzői
- 2,4 GHz-es frekvencián működik, ami szinte minden országban legálissá teszi.
- Egyetlen modul képes adóként és vevőként is működni.
- A beépített antenna akár 100 méterre is el tudja küldeni az adatokat.
- Az nRF24L01 modul egyszerre legfeljebb 6 másik modullal tud kommunikálni.
- A működéséhez 3,3 volt szükséges, de a feszültségek csak 3,6 V-ig terjedhetnek, különben nem sok idő kell a felmelegedéshez és az égéshez.
- A készülék beépített 16 MHz-es oszcillátorral rendelkezik.
- Az nRF24L01 átviteli sebessége 256kbps és 2Mbps között van.
- A készülék 125 csatornatartománnyal rendelkezik, ami 125 különböző hálózat egy helyen történő üzemeltetésének lehetőségét biztosítja.
- A csatornafrekvenciák 2400MHz és 2525MHz között változnak.
NRF24L01 alkalmazások
- A kis mesh hálózat létrehozásához az nRF24L01 a legjobb választás.
- Távvezérlő alkalmazások a fejlesztésben és a kereskedelemben csodálatosan működik az nRF24L01-gyel.
- A legtöbb IoT-alkalmazás otthoni szinten rendelkezik ezzel a vezeték nélküli modullal, de csak kis szinten.
Hogyan kell használni az NRF24L01 kommunikációs modult
Az nRF24L01 minden mikrokontrollerrel és intelligens táblával használható, de használatához meg kell érteni néhány csapot és adatinformációt. A modul használatához csatlakoztassa egy másik mikrokontrollerhez SPI protokollal. Először adja meg a tápellátás bemenetét az eszközöknek, majd csatlakoztassa SPI csapjaikat a megadott áramkörnek megfelelően.
A csatlakoztatás után tartsa szem előtt, hogy az nRF24L01 kétféleképpen működhet. Az első az adó és a második és a vevő. Ahhoz, hogy adóként és vevőként kommunikáljon, a mikrokontrollernek először tudnia kell. A modern alkalmazásban az Arduino az egyetlen eszköz, amely támogatja az nRF24L01 kommunikáció leghatékonyabb kommunikációját.
Interfacing with Arduino
Az nRF24L01-ről sok munka és kutatás van az interneten, amely segíthet sok alkalmazásban használni, de van ennek a modulnak az alapja az Arduino-ban minden fejlesztőnek meg kell értenie. Az nRF24L01 alapvető működése az adó és a vevő, az Arduino-ban mindkettő a következő módszerekkel érhető el. Itt van az áramkör az Arduino UNO-hoz.
Hogyan kell használni adóként Példa
Amikor az nRF24L01 adóként fog működni, akkor csak egyetlen csatornán tud adatokat továbbítani egy másik modulnak. Az adóként való használathoz az Arduino programnak tudnia kell. A program feltöltése után nincs mód arra, hogy programozás nélkül az adó és a vevő közötti módok megváltoztathatók legyenek. Az adóként való használathoz a következő kódot kell feltölteni:
Részletek az adókódról
Az Arduino és az nRF24L01 közötti kommunikáció a következő könyvtáraktól függ:
#include <nRF24L01.h>#include <RF24.h>#include <SPI.h>
Mint tudjuk, minden Arduino lapnak van egy bizonyos SPI pin MISO, MOSI és SCK. Tehát az Arduinónak nem kell elmondania róluk, de a CSN és a CE csapokat inicializálni kell. Az nRF24L01 könyvtárnak van egy beépített funkciója mind a CSN, mind a CE PIN-kódjának lekérdezésére, amely a következő:
RF24 radio(3, 2);
A 3-as szám a CE-tűt és a 2 a CSN-tűt jelöli. Mindkettő megváltoztatható bármely digitális csapnak megfelelően; itt a fent megadott áramkörnek megfelelően vannak.
Ezt követően a modulnak inicializálnia kell a következő paranccsal:
radio.begin();
A cím 5 bittel definiálható az eszköz számára, amelyen kommunikálnia kell a vevőt. Bármilyen 5 bites szám használható.
radio.openWritingPipe(10101);
Ezután a modulnak ismernie kell a módját. Vagy vevőként vagy adóként működik. A következő parancs az nRF24L01-et adóvá teszi.
radio.stopListening();
Ezután az eszköz adóként használható. Az egyetlen ismert inicializálás az adatok küldése. Mindig tartsa szem előtt, hogy a modul korlátozása miatt egyszerre csak 32 bájtnyi adat küldhető. Ennek meghatározásában segít a következő parancs:
const char data = "DATA";radio.write(&data, sizeof(data));
Az adatok küldése a program beállításában vagy ciklusában definiálható.
Az NRF24L01 vevőként való használatának módja Példa
A fenti rész az adás módjáról szól, de a vevő módszere nem különbözik az adótól. Az adóban csak három utasítás fog változni.
- A címcsatorna, amely az adóban nem volt elérhető
- A modul vevőként való inicializálása
- Adatfogadási és ellenőrzési módszer
Itt a következő kód a vevőhöz.
Részlet a vevő kódjáról
Amint észrevehetjük, csak három rész különbözik a vevőnél az adótól.
Az első rész a cím rész:
radio.openReadingPipe(0,10101);
A cím részben most két rész van. a második a cím rész, amely az átviteli eszköz címét határozza meg. Az első rész, amely a “0”, a csatornát határozza meg. Mivel fentebb beszéltünk arról, hogy a modul egyszerre 6 csatornát kínál a kommunikációhoz, a programozás első része segít a több csatorna kialakításában.
A második rész a modul inicializálása adóként. A modul adóként való inicializálásához inicializálja a következő parancsot:
radio.startListening();
A harmadik az adatfogadás.
if (radio.available())
A beérkező adatok megismerésében segít
radio.read( data, size );
Az adatok beolvasásában segít.
NRF24L01 példa
Van egy csomó alkalmazás nRF24L01 használható, de a háló készítése az nRF24L01 egyik legjobb képessége, ami megkülönbözteti egy másik modultól. A hálós használathoz összesen 3-7 modulnak kell rendelkezésre állnia. Kövesse a megadott képet.
Az alábbi utasítást kell használni a különböző csatornák inicializálásához a vevő végén.
A vevő nem képes különbséget tenni az eszközök között, így a fejlesztők mindig szem előtt tartják, hogy az adatok ne legyenek azonosak az adók között.
2D diagram
Alternatív modulok:
- 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 vevő modul
- 433MHz RF adó modul
- TSOP1738 IR vevő
- Arduino MKR1000 WiFi Board