Mikrokontrollereiden laboratorio

Sisällysluettelo

NRF24L01 on yksi laillisista RF-kommunikaattoreista moderneihin sovelluksiin. NRF24L01 on halvin ja siinä on hyvät ominaisuudet. Yksi moduuli kommunikoi 2,4 GHz:n taajuudella, mikä tekee siitä laillisen. Se voi lähettää ja vastaanottaa tietoja yhdellä moduulilla. Lähettäminen ei ole sen ainoa kyky, vaan se voi kommunikoida yhteensä 6 muun saman NRF24L01-moduulin kanssa kerrallaan. Laite on liitettävissä Arduino-sovellukseen ja kattaa kaikenlaiset kauko-ohjaussovellukset. Tämä langaton moduuli käyttää SPI-viestintäprotokollaa ja tarjoaa 10MBs:n tiedonsiirtonopeuden 125 osoitteen alueella, mikä tekee siitä luotettavimman RF-moduulin. RF-moduuli käyttää GFSK-moduulia tiedonsiirtoon.

NRF24L01:n pinout-konfiguraatio

NRF24L01:ssä ei ole mitään erityisiä nastoja, kaikki nastat, joita se tarjoaa kommunikaatioon, ovat läsnä kaikissa mikrokontrollereissa ja levyssä. Laite liitetään ulkoisen mikrokontrollerin / Arduinon kanssa näiden nastojen kautta toimiakseen. Se koostuu 8 nastasta. Kaikki käytettävissä olevat nastat ovat:

Virtalähteen nastat

VCC

Moduulin virtatappi on VCC, joka kytkeytyy virtalähteeseen.

GND

nRF24L01 toimii toisen mikrokontrollerin kanssa, ja se tarvitsee yhteisen maadoituskohdan, jotta se voi toimia sen kanssa. GND-pinni ratkaisee yhteisen maan vaatimuksen.

Kommunikaatiopinit

CE

CE on enable-pinni, joka aktivoi moduulin lähetyksen/vastaanoton. Se aktivoi laitteen vain, kun itsessään on HIGH-tila.

CSN

Tämä tappi aktivoi tiedon kuuntelun ja käsittelyn mikrokontrollerilta. Jotta tiedonsiirto mikrokontrollerin ja moduulin välillä säilyisi, sen pitäisi olla HIGH.

SCK

Se on nRF24L01:n SPI-kommunikaation kellopulssitappi. Tiedot liikkuvat moduulin ja mikrokontrollerin välillä SCK-nastan kellopulssin mukaan.

MOSI

Mikrokontrollerilta SPI-nastojen kautta lähetetyt tiedot nRF24L01 vastaanottaa MOSI-nastalla.

MISO

Mikrokontrolleri vastaanottaa nRF24L01:n SPI-nastojen avulla lähettämät ohjeet MISO-nastassa.

IRQ-keskeytyspinni

IRQ on keskeytyspinni, joka synnyttää tapahtuman aina, kun uutta dataa on saatavilla SPI-nastoihin. Se auttaa lähettimen palautteen lähettämisessä.

NRF24L01 RF-moduulin ominaisuus

  • Se toimii 2,4 GHz:n taajuudella, mikä tekee siitä laillisen lähes kaikissa maissa.
  • Yksittäinen moduuli voi toimia sekä lähettimenä että vastaanottimena.
  • Sisäänrakennettu antenni voi lähettää dataa jopa 100 metrin päähän.
  • Moduuli nRF24L01 voi kommunikoida enintään 6 muun moduulin kanssa kerrallaan.
  • Se vaatii 3,3 volttia toimiakseen, mutta jännitteet voivat ulottua vain 3,6V:iin asti, muuten se ei kestä kauaa lämmetä ja palaa.
  • Laitteessa on sisäänrakennettu 16MHz:n oskillaattori.
  • Lähetysnopeus nRF24L01:llä on 256kbps-2Mbps.
  • Laitteessa on 125 kanavan valikoima, joka antaa mahdollisuuden käyttää 125 eri verkkoa yhdessä paikassa.
  • Kanavien taajuudet vaihtelevat 2400MHz:stä 2525MHz:iin.

NRF24L01:n käyttökohteet

  • Pienten mesh-verkkojen luomisessa nRF24L01 on paras valinta.
  • Kehittävissä ja kaupallisissa kauko-ohjaussovelluksissa nRF24L01 toimii ihanasti.
  • Useimmissa IoT-sovelluksissa kotitasolla on tämä langaton moduuli, mutta vain pienellä tasolla.

NRF24L01-viestintämoduulin käyttö

nRF24L01 on käyttökelpoinen kaikkien mikrokontrollerien ja älykkäiden piirilevyjen kanssa, mutta käyttääkseen sitä on ymmärrettävä jotkin nastat ja datatiedot. Moduulin käyttämiseksi kytke se toiseen mikrokontrolleriin SPI-protokollalla. Anna ensin virransyöttö laitteille ja liitä sitten niiden SPI-nastat annetun piirin mukaisesti.

Kytkemisen jälkeen pidä mielessä, että nRF24L01 voi toimia kahdella tavalla. Ensimmäinen on lähetin ja toinen ja vastaanotin. Voidakseen kommunikoida lähettimenä ja vastaanottimena mikrokontrollerin on tiedettävä ensin. Nykyaikaisessa sovelluksessa Arduino on ainoa laite, joka tukee nRF24L01-viestinnän tehokkainta viestintää.

Yhteensovittaminen Arduinon kanssa

Internetissä on paljon työtä ja tutkimusta nRF24L01: stä, joka voi auttaa käyttämään sitä monissa sovelluksissa, mutta on olemassa tämän moduulin perusta Arduinossa, jonka jokaisen kehittäjän pitäisi ymmärtää. nRF24L01: n perustoiminta on lähetin ja vastaanotin, Arduinossa molemmat ovat saavutettavissa seuraavien menetelmien avulla. Tässä piiri Arduino UNO:lle.

Miten käyttää lähettimenä Esimerkki

Kun nRF24L01 toimii lähettimenä, niin se voi lähettää dataa vain yhdellä kanavalla toiseen moduuliin. Käyttääkseen sitä lähettimenä Arduinon ohjelman pitäisi tietää. Ohjelman lataamisen jälkeen ei ole tapoja ilman ohjelmointia tilat lähettimen ja vastaanottimen välillä ovat vaihdettavissa. Käyttääksesi sitä lähettimenä seuraavan koodin pitäisi olla ladattu:

Tiedot lähettimen koodista

Arduinon ja nRF24L01: n välinen viestintä riippuu seuraavista kirjastoista:

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

Kuten tiedämme, että jokaisella Arduino-levyllä on tietty SPI-pin MISO, MOSI ja SCK. Joten Arduinon ei tarvitse kertoa niistä, mutta CSN- ja CE-nastat on alustettava. nRF24L01-kirjastossa on sisäänrakennettu toiminto, jolla saadaan sekä CSN: n että CE: n PIN-koodi, joka on:

RF24 radio(3, 2);

Numero 3 edustaa CE-nastaa ja 2 edustaa CSN-nastaa. Molemmat ovat muutettavissa minkä tahansa digitaalisen nastan mukaan; tässä ne ovat edellä annetun piirin mukaan.

Tämän jälkeen moduuli on alustettava käyttämällä seuraavaa komentoa:

radio.begin();

Osoite on määriteltävissä 5 bitillä laitteelle, johon sen pitäisi kommunikoida vastaanotin. Mikä tahansa 5-bittinen numero on käyttökelpoinen.

radio.openWritingPipe(10101);

Tämän jälkeen moduulin on tiedettävä sen tila. Joko se toimii vastaanottimena tai lähettimenä. Seuraava komento tekee nRF24L01:stä lähettimen.

 radio.stopListening();

Tällöin laitetta voi käyttää lähettimenä. Ainoa tiedossa oleva alustava asia on datan lähettäminen. Pidä aina mielessä, että vain 32 tavua dataa on kerrallaan lähetettävissä moduulirajoituksen vuoksi. Seuraava komento auttaa tämän määrittelyssä:

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

Lähetysdata on määriteltävissä ohjelman setupissa tai silmukassa.

NRF24L01:n käyttäminen vastaanottimena Esimerkki

Ylläoleva osa koskee vain lähetystapaa, mutta vastaanottimen menetelmä ei eroa lähettimestä. Lähettimessä vain kolme ohjetta muuttuu.

  • Osoitekanava, joka ei ollut käytettävissä lähettimessä
  • Moduulin alustaminen vastaanottimeksi
  • Datan vastaanotto- ja tarkistusmenetelmä

Tässä on seuraava koodi vastaanottimelle.

Yksityiskohta vastaanottimen koodista

Kuten huomaat, vain kolme osaa eroaa vastaanottimessa lähettimestä.

Ensimmäinen osa on osoiteosa:

radio.openReadingPipe(0,10101);

Asoiteosassa on nyt kaksi osaa. toinen on osoiteosa, joka määrittelee lähetyslaitteen osoitteen. Ensimmäinen osa, joka on “0”, määrittelee kanavan. Koska edellä puhuttiin, että moduuli tarjoaa 6 kanavaa kommunikointiin kerrallaan, ohjelmoinnin ensimmäinen osa auttaa rakentamaan useita kanavia.

Toinen osa on moduulin alustaminen lähettimeksi. Voit alustaa moduulin lähettimeksi alustamalla seuraavan komennon:

radio.startListening();

Kolmas osa on datan vastaanotto.

if (radio.available())

Se auttaa tietämään saapuvasta datasta

radio.read( data, size );

Se auttaa lukemaan dataa.

NRF24L01 Esimerkki

On olemassa joukko sovelluksia nRF24L01 on käyttökelpoinen, mutta verkon tekeminen on yksi nRF24L01:n parhaista kyvyistä, mikä tekee siitä erilaisen kuin toinen moduuli. Jotta sitä voitaisiin käyttää verkkona, yhteensä 3-7 moduulia pitäisi olla käytettävissä. Seuraa annettua kuvaa.

Sitten seuraavaa ohjetta tulisi käyttää eri kanavien alustamiseen vastaanottimen päässä.

Vastaanotin ei pysty erottamaan laitteita toisistaan, joten kehittäjät pitävät aina mielessä, että datan ei pitäisi olla sama lähettimien välillä.

2D-kaavio

Vaihtoehtoiset moduulit:

  • XBee S2C-moduuli
  • SX1278 LoRa RF-moduuli
  • SIM900A GSM-moduuli
  • ESP12E WiFi-moduuli
  • PN532 NFC RFID-moduuli
  • HM-10 Bluetooth-moduuli
  • HC-05 Bluetooth-moduuli
  • 433MHz RF-vastaanotinmoduuli
  • 433MHz RF-lähetinmoduuli
  • TSOP1738 IR-vastaanotin
  • Arduino MKR1000 WiFi-kortti

Vastaa

Sähköpostiosoitettasi ei julkaista.