U moet sekerlik 'n selfdoenprojek maak met Arduino of enige ander element, en u moet daarvan gebruik maak draadlose kommunikasie. En dit gebeur deur 'n soort module of toestel te hê wat u toelaat om uit te stuur met IR, RF, Bluetooth, WiFi, ens. Dit wil sê dat u moet weet wat die behoefte is om te weet watter tipe sein die beste in u geval is.
In hierdie geval het ons 'n gids oor die NRF24L01 vir jou. Dit is 'n draadlose kommunikasie-skyfie wat u voorsien wat u nodig het om seine te stuur en te ontvang. Die tipe seine wat dit hanteer, is RF- of radiofrekwensie, dit wil sê golwe met 'n groot golflengte, en dus lae energie, wat in die elektromagnetiese spektrum tussen 3 Hz en 300 Ghz in frekwensie is.
Index
Wat is die NRF24L01?
El NRF24L01 is 'n skyfie wat deur Nordic Semiconductor vervaardig word. As dit Geen produkte gevind nie., die chip is op 'n klein PCB gemonteer met 'n paar hulpelemente wat u benodig, en vorm dus 'n module. U kan dit op verskillende maniere gebruik, insluitend om dit aan Adruino te koppel, soos ek later sal wys.
NRF24L01, soos afgelei kan word van sy naam, is 'n draadlose kommunikasietoestel wat RF- of radiofrekwensie gebruik met die vermoë om op 2,4 GHz - 2,5 Ghz. Dit is die gratis band vir gratis gebruik. U weet reeds dat ander bande gereserveer is en dat u moet betaal as u dit wil gebruik om inligting oor te dra. Daarbenewens integreer dit 'n sender + 'n ontvanger.
Die frekwensieband wat u kan gebruik, is spesifiek van 2.400 Mhz tot 2.525 Mhz, met die moontlikheid om tussen te kies 125 kanale met 1Mhz spasies tussen hulle. Dit word egter nie aanbeveel om 2.4 GHz-frekwensies te gebruik as u WiFi-netwerke gebruik, hommeltuie wat met hierdie frekwensie werk, ens., Of as daar steuring is nie. Daarom is dit verkieslik om vanaf 2.501Mhz te gebruik.
Wat die kenmerke daarvan betref, werk van 1.9 tot 3.6v, Dit sal dus maklik wees om dit met die Arduino-bord self met die 3.3-aansluiting aan te dryf, met behulp van batterye, en selfs met 'n kragbron wat die spanning het. U kan ook die transmissiesnelheid instel tussen 250 Kbps, 1 Mbps en tot 2 Mbps.
Die chip in emissies en ontvangs kan gelyktydig met werk tot 6 verbindings van verskillende toestelle. Daarmee kan u sonder probleme vanaf verskillende punte uitsaai of ontvang. En as u bekommerd is oor die robuustheid of betroubaarheid van die kommunikasie, het die chip self logiese stroombane om datafoute reg te stel en indien nodig inligting deur te stuur. Daarom bevry dit die verwerker van hierdie taak.
U kan dit gebruik om dit te beheer die SPI-bus, dus is die beheer daarvan met Arduino baie eenvoudig. Daarbenewens ondersteun die data-penne van die NRF24L01 tot 5v sonder probleme. Die kragverbruik in Standby is redelik laag, dus dit is nie 'n bekommernis nie, en as dit in gebruik is, is dit nie die duurste nie, aangesien dit slegs 15 mA benodig om data te stuur en te ontvang.
In die mark sal u verskeie vind verskillende modules wat die NRF24L01-skyfie monteer, hulle verander slegs in die hulpelemente wat hulle het, of in sommige besonderhede. Byvoorbeeld in die tipe antenna. Sommige het 'n antenna wat in 'n sigsag-vorm op die PCB gedruk is met 'n reikwydte van ongeveer 20-30 meter. Ander gee toe dat 'n ietwat kragtiger eksterne antenne met 'n versterker van 700 meter tot 1 km gaan.
Maar die werklike omvang word deur sommige faktore beperksoos hindernisse op die pad, geraas of steuring deur ander elemente of seine, transmissiesnelheid, toevoerspanning (hoër spanning, groter afstand), ens. As u byvoorbeeld met die maksimum snelheid van 2 Mbps wil uitstuur, sal dit 'n groot boete in die verte hê, wat slegs 2 of 3 meter maksimum sal wees. Teen laer snelhede kan u dalk daardie afstand klim.
Wat moet u weet voordat u dit koop?
El NRF24L01 is 'n baie goedkoop skyfie wat in 'n menigte projekte gebruik kan word. As u byvoorbeeld nie 'n eksterne antenne het nie, kan u dit vir tot € 0.65 koop, met die eksterne antennemodel 'n bietjie duurder as hierdie, maar dit is nog steeds baie goedkoop en oorskry gewoonlik nie € 1.7 nie.
As u nie nog 'n emissie- of ontvangs-element het nie, weet u reeds dat u twee NRF24L01-modules moet koop, een om aan die een kant te gebruik en die ander aan die ander kant van die plek waarheen u wil stuur. Hulle sal albei soos optree sender of ontvanger soos jy wil.
Pinout en montering van die NRF24L01
Wat die vergadering betref, is dit redelik eenvoudig. Die NRF24L01 het 8 penne, en daarom is dit baie maklik om te verstaan hoe u in hierdie beeld kan sien dat ek u agterlaat. Aan die regterkant kan u die pen-diagram van 'n bord sien Arduino UNO en hoe elkeen van die module se penne daaraan gekoppel sal word.
Soos u kan aflei, die bord NRF24L01 word aangedryf met behulp van die GND- en 3.3v-penne van Arduino. Onthou om dit nie met die 5v-sein te doen nie, anders beskadig u die module.
Integrasie met Arduino
As u eers weet wat die NRF24L01 is en hoe dit gekoppel en aangedryf kan word, moet u die volgende ding wys, benewens die aantal projekte wat u met 'n paar van hierdie goedkoop toestelle kan doen. 'n voorbeeld van programmering sodat u met u Arduino IDE kan begin eksperimenteer. Onthou dat die dataformaat wat u kan stuur in die bronkode verander kan word.
U kan kies om 'n string, 'n heelgetal, 'n floating point-data, ens. Te stuur en te ontvang. Ek beveel jou aan ons gids oor Arduino-programmering as jy begin. Hiermee kan u u eerste projekte skep. En as 'n konkrete voorbeeld vir die NRF24L01, hier los ek jou die nodige kodes vir 'n string.
Kode wat u in die Arduino IDE moet skryf en programmeer die Arduino-bord wat gekoppel is aan die NRF24L01 wat u gaan toewys as sender:
#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); }
Hier is die kode wat u in die Arduino IDE moet invoer en op die bord aanteken wat u gekoppel het aan die toegewyde NRF24L01 as reseptor:
#sluit <nRF24L01.h> in
#sluit <RF24.h> in
#sluit <RF24_config.h> in
#sluit <SPI.h> in
const int pinCE = 9;
const int pinCSN = 10;
RF24 radio (pinCE, pinCSN);
// Enkele radiopypadres vir die twee nodusse om te kommunikeer.
konst uint64_t pyp = 0xE8E8F0F0E1LL;
char data [16];
nietige opstelling (nietig)
{
Serial.begin (9600);
radio.begin ();
radio.openReadingPipe (1, pyp);
radio.startListening ();
}
nietige lus (nietig)
{
as (radio.beskikbaar ())
{
int klaar = radio.read (data, grootte van data);
Serial.println (data);
}
}
Met daardie u sal alles hê wat u benodig en u kan probeer om woorde of teksstringe van een te stuur en te sien hoe die ander dit ontvang. Gebruik twee rekenaars wat via USB aan die Arduino-bord gekoppel is om die konsole te gebruik as 'n manier om die data te sien. Skei hulle op 'n verstandige afstand volgens die module wat u het of die konfigurasie wat u daarvoor gegee het, en u sal op die skerm van die ander rekenaar die karakters sien wat u in die eerste kode ingevoer het ...
'N Opmerking, los joune
Hallo Isak
Ek wil 'n projek met arduino, framboos of iets anders voltooi.
Kan u 'n e-pos kontak gee om te verduidelik?
'N Myn - a01b02@abv.bg
Dankie