- NRF24L01 RF మాడ్యూల్
- సర్క్యూట్ రేఖాచిత్రం
- ప్రోగ్రామింగ్ రాస్ప్బెర్రీ పై nRF24l01 ఉపయోగించి సందేశాన్ని పంపడానికి
- NRF24l01 ఉపయోగించి సందేశాన్ని స్వీకరించడానికి Arduino UNO ను ప్రోగ్రామింగ్ చేస్తోంది
డిజైనర్లు బ్లూటూత్ లో ఎనర్జీ (బిఎల్ఇ 4.0), జిగ్బీ, ఇఎస్పి 8266 వై-ఫై మాడ్యూల్స్, 433 మెగాహెర్ట్జ్ ఆర్ఎఫ్ మాడ్యూల్స్, లోరా, ఎన్ఆర్ఎఫ్ వంటి అనేక వైర్లెస్ కమ్యూనికేషన్ వ్యవస్థలను ఉపయోగిస్తున్నారు. అన్నీ, స్థానిక నెట్వర్క్ కమ్యూనికేషన్ కోసం ఒక ప్రసిద్ధ వైర్లెస్ మాధ్యమం nRF24L01. ఈ గుణకాలు 2.4GHz (ISM బ్యాండ్) పై 250Kbps నుండి 2Mbps వరకు బాడ్ రేటుతో పనిచేస్తాయి, ఇది చాలా దేశాలలో చట్టబద్ధమైనది మరియు పారిశ్రామిక మరియు వైద్య అనువర్తనాలలో ఉపయోగించవచ్చు. సరైన యాంటెన్నాలతో ఈ గుణకాలు వాటి మధ్య 100 మీటర్ల దూరం వరకు సంకేతాలను ప్రసారం చేయగలవు మరియు అందుకోగలవు. సర్వో మోటారును నియంత్రించడానికి మరియు చాట్ రూమ్ను రూపొందించడానికి మేము గతంలో ఆర్డునోతో nRF24L01 ను ఉపయోగించాము.
ఇక్కడ మేము వాటి మధ్య వైర్లెస్ కమ్యూనికేషన్ను స్థాపించడానికి ఆర్డునో UNO మరియు రాస్ప్బెర్రీ పైతో nRF24L01 - 2.4GHz RF ట్రాన్స్సీవర్ మాడ్యూల్ని ఉపయోగిస్తాము. రాస్ప్బెర్రీ పై ట్రాన్స్మిటర్ గా పనిచేస్తుంది మరియు ఆర్డునో యునో రాస్ప్బెర్రీ పై వింటుంది మరియు రాస్ప్బెర్రీ పై పంపిన సందేశాన్ని 16x2 ఎల్సిడిలో nRF24L01 ఉపయోగించి ప్రింట్ చేస్తుంది. nRF24L01 కూడా అంతర్నిర్మిత BLE సామర్థ్యాలను కలిగి ఉంది మరియు ఇది BLE ని ఉపయోగించి వైర్లెస్తో కమ్యూనికేట్ చేయగలదు.
ట్యుటోరియల్ రెండు విభాగాలుగా విభజించబడింది. మొదటి విభాగంలో రిసీవర్గా పనిచేయడానికి ఆర్డునోతో nRF24L01 యొక్క ఇంటర్ఫేసింగ్ మరియు రెండవ విభాగంలో ట్రాన్స్మిటర్గా పనిచేయడానికి రాస్ప్బెర్రీ పైతో nRF24L01 యొక్క ఇంటర్ఫేసింగ్ ఉంటుంది. వర్కింగ్ వీడియోతో రెండు విభాగాల పూర్తి కోడ్ ఈ ట్యుటోరియల్ చివరిలో జతచేయబడుతుంది.
NRF24L01 RF మాడ్యూల్
NRF24L01 గుణకాలు ఉన్నాయి తరంగాలు స్వీకరించే గుణకాలు ప్రతి మాడ్యూల్ అనగా చెయ్యవచ్చు రెండింటినీ పంపండి మరియు డేటా అందుకున్న కానీ వారు ఎందుకంటే అర్ధ-ద్వంద్వ వారు గాని పంపండి లేదా ఒక సమయంలో దత్తాంశాల అందుకోవచ్చు. మాడ్యూల్ నార్డిక్ సెమీ కండక్టర్ల నుండి సాధారణ nRF24L01 IC ను కలిగి ఉంది, ఇది డేటా ప్రసారం మరియు రిసెప్షన్కు బాధ్యత వహిస్తుంది. ఎస్పిఐ ప్రోటోకాల్ ఉపయోగించి ఐసి కమ్యూనికేట్ చేస్తుంది మరియు అందువల్ల ఏదైనా మైక్రోకంట్రోలర్లతో సులభంగా ఇంటర్ఫేస్ చేయవచ్చు. లైబ్రరీలు తక్షణమే అందుబాటులో ఉన్నందున ఇది ఆర్డునోతో చాలా సులభం అవుతుంది. ప్రామాణిక nRF24L01 మాడ్యూల్ యొక్క పిన్అవుట్లు క్రింద చూపించబడ్డాయి
మాడ్యూల్ ఆపరేటింగ్ వోల్టేజ్లో 1.9 వి నుండి 3.6 వి (సాధారణంగా 3.3 వి) వరకు ఉంటుంది మరియు సాధారణ ఆపరేషన్ సమయంలో కేవలం 12 ఎంఏ మాత్రమే తక్కువ విద్యుత్తును వినియోగిస్తుంది, ఇది బ్యాటరీ సామర్థ్యాన్ని కలిగిస్తుంది మరియు అందువల్ల కాయిన్ కణాలపై కూడా నడుస్తుంది. ఆపరేటింగ్ వోల్టేజ్ 3.3 వి అయినప్పటికీ, పిన్స్ చాలావరకు 5 వి టాలరెంట్ మరియు అందువల్ల ఆర్డునో వంటి 5 వి మైక్రోకంట్రోలర్లతో నేరుగా ఇంటర్ఫేస్ చేయవచ్చు. ఈ మాడ్యూళ్ళను ఉపయోగించడం యొక్క మరొక ప్రయోజనం ఏమిటంటే, ప్రతి మాడ్యూల్ 6 పైప్లైన్లను కలిగి ఉంటుంది. అర్థం, ప్రతి మాడ్యూల్ డేటాను ప్రసారం చేయడానికి లేదా స్వీకరించడానికి 6 ఇతర మాడ్యూళ్ళతో కమ్యూనికేట్ చేయగలదు. ఇది IoT అనువర్తనాలలో స్టార్ లేదా మెష్ నెట్వర్క్లను సృష్టించడానికి మాడ్యూల్ను అనుకూలంగా చేస్తుంది. అలాగే అవి 125 ప్రత్యేకమైన ఐడిల విస్తృత చిరునామా పరిధిని కలిగి ఉన్నాయి, అందువల్ల క్లోజ్డ్ ఏరియాలో మనం 125 మాడ్యూళ్ళను ఒకదానితో ఒకటి జోక్యం చేసుకోకుండా ఉపయోగించవచ్చు.
సర్క్యూట్ రేఖాచిత్రం
Arduino తో nRF24L01:
NRF24L01 ను Arduino తో కనెక్ట్ చేయడానికి సర్క్యూట్ రేఖాచిత్రం సులభం మరియు ఎక్కువ భాగాలు లేవు. NRF24l01 SPI ఇంటర్ఫేస్ ద్వారా అనుసంధానం చేయబడుతుంది మరియు 16x2 LCD మాత్రమే రెండు వైర్లు ఉపయోగిస్తుంది I2C ప్రోటోకాల్ అంతర్ముఖం ఉంటుంది.
రాస్ప్బెర్రీ పైతో nRF24L01:
రాస్ప్బెర్రీ పైతో nRF24L01 ను కనెక్ట్ చేయడానికి సర్క్యూట్ రేఖాచిత్రం కూడా చాలా సులభం మరియు రాస్ప్బెర్రీ పై మరియు nRF24l01 లను కనెక్ట్ చేయడానికి SPI ఇంటర్ఫేస్ మాత్రమే ఉపయోగించబడుతుంది.
ప్రోగ్రామింగ్ రాస్ప్బెర్రీ పై nRF24l01 ఉపయోగించి సందేశాన్ని పంపడానికి
రాస్ప్బెర్రీ పై యొక్క ప్రోగ్రామింగ్ పైథాన్ 3 ఉపయోగించి చేయబడుతుంది. మీరు సి / సి ++ ను ఆర్డునోగా కూడా ఉపయోగించవచ్చు. పైథాన్లో ఇప్పటికే nRF24l01 కోసం లైబ్రరీ అందుబాటులో ఉంది, దీనిని గితుబ్ పేజీ నుండి డౌన్లోడ్ చేసుకోవచ్చు. పైథాన్ ప్రోగ్రామ్ మరియు లైబ్రరీ ఒకే ఫోల్డర్లో ఉండాలి లేదా పైథాన్ ప్రోగ్రామ్ లైబ్రరీని కనుగొనలేకపోతుందని గమనించండి. లైబ్రరీని డౌన్లోడ్ చేసిన తర్వాత అన్ని ప్రోగ్రామ్లు మరియు లైబ్రరీ ఫైల్లు స్టోర్స్గా ఉండే ఫోల్డర్ను సేకరించండి. లైబ్రరీ ఇన్స్టాలేషన్ పూర్తయినప్పుడు, ప్రోగ్రామ్ రాయడం ప్రారంభించండి. రాస్ప్బెర్రీ పై GPIO లను యాక్సెస్ చేయడానికి మరియు దిగుమతి సమయం కోసం దిగుమతి GPIO లైబ్రరీ వంటి కోడ్లో ఉపయోగించబడే లైబ్రరీలను చేర్చడంతో ప్రోగ్రామ్ ప్రారంభమవుతుంది. సమయ సంబంధిత విధులను యాక్సెస్ చేయడానికి. మీరు రాస్ప్బెర్రీ పైకి క్రొత్తగా ఉంటే, రాస్ప్బెర్రీ పైతో ప్రారంభించడానికి తిరిగి వస్తారు.
RPi.GPIO ని GPIO గా దిగుమతి చేసుకోండి lib_nrf24 దిగుమతి NRF24 నుండి దిగుమతి సమయం దిగుమతి
GPIO మోడ్ను " బ్రాడ్కామ్ SOC ఛానెల్" లో సెట్ చేయండి . దీని అర్థం మీరు "బ్రాడ్కామ్ SOC ఛానల్" సంఖ్య ద్వారా పిన్లను సూచిస్తున్నారని, ఇవి "GPIO" తరువాత ఉన్న సంఖ్యలు (ఉదా. GPIO01, GPIO02…). ఇవి బోర్డు సంఖ్యలు కాదు.
GPIO.setmode (GPIO.BCM)
తరువాత మనం పైపు చిరునామాను సెటప్ చేస్తాము. Arduino రిసీవర్తో కమ్యూనికేట్ చేయడానికి ఈ చిరునామా ముఖ్యమైనది. చిరునామా హెక్స్ కోడ్లో ఉంటుంది.
పైపులు =,]
GPIO08 ను CE గా మరియు GPIO25 ను CSN పిన్లుగా ఉపయోగించి రేడియోను ప్రారంభించండి.
radio.begin (0, 25)
పేలోడ్ పరిమాణాన్ని 32 బిట్గా, ఛానెల్ చిరునామాను 76 గా, డేటా రేటు 1 ఎమ్బిపిఎస్గా మరియు శక్తి స్థాయిలను కనిష్టంగా సెట్ చేయండి.
radio.setPayloadSize (32) radio.setChannel (0x76) radio.setDataRate (NRF24.BR_1MBPS) radio.setPALevel (NRF24.PA_MIN)
డేటాను రాయడం ప్రారంభించడానికి పైపులను తెరిచి, nRF24l01 యొక్క ప్రాథమిక వివరాలను ముద్రించండి.
radio.openWritingPipe (పైపులు) radio.printDetails ()
స్ట్రింగ్ రూపంలో సందేశాన్ని సిద్ధం చేయండి. ఈ సందేశం Arduino UNO కు పంపబడుతుంది.
sendMessage = list ("Hi..Arduino UNO") అయితే లెన్ (sendMessage) <32: sendMessage.append (0)
రేడియోకి రాయడం ప్రారంభించండి మరియు రేడియో లభ్యమయ్యే వరకు పూర్తి స్ట్రింగ్ రాయడం కొనసాగించండి. దానితో పాటు, సమయాన్ని గమనించండి మరియు సందేశ డెలివరీ యొక్క డీబగ్ స్టేట్మెంట్ను ముద్రించండి.
ట్రూ అయితే: ప్రారంభం = time.time () radio.write (sendMessage) ముద్రణ ("సందేశం పంపారు: {}". ఫార్మాట్ (sendMessage)) పంపడానికి radio.startListening ()
స్ట్రింగ్ పూర్తయి, పైపు మూసివేయబడితే, సమయం ముగిసిన డీబగ్ సందేశాన్ని ముద్రించండి.
రేడియో అందుబాటులో లేనప్పుడు (0): time.sleep (1/100) if time.time () - ప్రారంభం> 2: ముద్రణ ("సమయం ముగిసింది.") # రేడియో డిస్కనెక్ట్ చేయబడినా లేదా పనిచేయకపోయినా # ముద్రణ దోష సందేశం విచ్ఛిన్నమవుతుంది
రేడియో వినడం ఆపి, కమ్యూనికేషన్ను మూసివేసి, 3 సెకన్ల తర్వాత కమ్యూనికేషన్ను పున art ప్రారంభించి మరొక సందేశాన్ని పంపండి.
radio.stopListening () # రేడియో సమయాన్ని మూసివేయండి. నిద్ర (3) # 3 సెకన్ల ఆలస్యం ఇస్తుంది
రాస్ప్బెర్రీ ప్రోగ్రామ్ పైథాన్ యొక్క ప్రాథమికాలను మీకు తెలిస్తే అర్థం చేసుకోవడం సులభం. ట్యుటోరియల్ చివరిలో పూర్తి పైథాన్ ప్రోగ్రామ్ ఇవ్వబడుతుంది.
రాస్ప్బెర్రీ పై పైథాన్ ప్రోగ్రామ్ను అమలు చేస్తోంది:
కింది దశలను అనుసరించిన తర్వాత ప్రోగ్రామ్ను అమలు చేయడం చాలా సులభం:
- పైథాన్ ప్రోగ్రామ్ మరియు లైబ్రరీ ఫైళ్ళను ఒకే ఫోల్డర్లో సేవ్ చేయండి.
- పంపినవారికి నా ప్రోగ్రామ్ ఫైల్ పేరు nrfsend.py మరియు ప్రతి ఫైల్లు ఒకే ఫోల్డర్లో ఉంటాయి
- రాస్ప్బెర్రీ పై కమాండ్ టెర్మినల్కు వెళ్ళండి. మరియు “cd” ఆదేశాన్ని ఉపయోగించి పైథాన్ ప్రోగ్రామ్ ఫైల్ను కనుగొనండి.
- అప్పుడు ఫోల్డర్ తెరిచి “ sudo python3 your_program.py ” కమాండ్ వ్రాసి ఎంటర్ నొక్కండి. మీరు nRf24 యొక్క ప్రాథమిక వివరాలను చూడగలుగుతారు మరియు రేడియో ప్రతి 3 సెకన్ల తర్వాత సందేశాలను పంపడం ప్రారంభిస్తుంది. పంపిన అన్ని అక్షరాలతో పంపిన తర్వాత సందేశ డీబగ్ ప్రదర్శించబడుతుంది.
ఇప్పుడు మనం Arduino UNO లో రిసీవర్ వలె అదే ప్రోగ్రామ్ను చూస్తాము.
NRF24l01 ఉపయోగించి సందేశాన్ని స్వీకరించడానికి Arduino UNO ను ప్రోగ్రామింగ్ చేస్తోంది
ఆర్డునో UNO ను ప్రోగ్రామింగ్ చేయడం రాస్ప్బెర్రీ పై ప్రోగ్రామింగ్ మాదిరిగానే ఉంటుంది. మేము ఇలాంటి పద్ధతులను అనుసరిస్తాము కాని విభిన్న ప్రోగ్రామింగ్ భాష మరియు దశలతో. దశల్లో nRF24l01 యొక్క పఠన భాగం ఉంటుంది. Arduino కోసం nRF24l01 కొరకు లైబ్రరీని గితుబ్ పేజీ నుండి డౌన్లోడ్ చేసుకోవచ్చు. అవసరమైన లైబ్రరీలతో సహా ప్రారంభించండి. మేము I2C షీల్డ్ ఉపయోగించి 16x2 LCD ని ఉపయోగిస్తున్నాము కాబట్టి Wire.h లైబ్రరీని చేర్చండి మరియు nRF24l01 SPI తో ఇంటర్ఫేస్ చేయబడింది కాబట్టి SPI లైబ్రరీని చేర్చండి.
# చేర్చండి
RF24 మరియు LCD ఫంక్షన్లను యాక్సెస్ చేయడానికి RF24 మరియు LCD లైబ్రరీని చేర్చండి.
# చేర్చండి
I2C కొరకు LCD చిరునామా 27 మరియు ఇది 16x2 LCD కాబట్టి దీనిని ఫంక్షన్ లోకి వ్రాయండి.
లిక్విడ్ క్రిస్టల్_ఐ 2 సి ఎల్సిడి (0x27, 16, 2);
RF24 ప్రామాణిక SPI పిన్లతో పాటు పిన్ 9 లో CE మరియు పిన్ 10 లో CSN తో అనుసంధానించబడి ఉంది.
RF24 రేడియో (9, 10);
రేడియోను ప్రారంభించండి, శక్తి స్థాయిని సెట్ చేయండి మరియు ఛానెల్ను 76 కి సెట్ చేయండి. పైప్ చిరునామాను రాస్ప్బెర్రీ పై వలె సెట్ చేయండి మరియు చదవడానికి పైపును తెరవండి.
radio.begin (); radio.setPALevel (RF24_PA_MAX); రేడియో.సెట్చానెల్ (0x76); const uint64_t పైపు = 0xE0E0F1F1E0LL; radio.openReadingPipe (1, పైపు);
I2C కమ్యూనికేషన్ను ప్రారంభించండి మరియు LCD డిస్ప్లేని ప్రారంభించండి.
వైర్.బెగిన్ (); lcd.begin (); lcd.home (); lcd.print ("స్వీకరించడానికి సిద్ధంగా ఉంది");
ఇన్కమింగ్ సందేశాల కోసం రేడియో వినడం ప్రారంభించండి మరియు సందేశ పొడవును 32 బైట్లుగా సెట్ చేయండి.
radio.startListening (); చార్ అందుకుంది మెసేజ్ = {0}
రేడియో జతచేయబడితే సందేశాన్ని చదవడం ప్రారంభించి దాన్ని సేవ్ చేయండి. సందేశాన్ని సీరియల్ మానిటర్కు ప్రింట్ చేయండి మరియు తదుపరి సందేశం వచ్చే వరకు డిస్ప్లేకి కూడా ప్రింట్ చేయండి. వినడానికి రేడియోను ఆపి, కొంత విరామం తర్వాత మళ్లీ ప్రయత్నించండి. ఇక్కడ ఇది 10 మైక్రో సెకన్లు.
if (radio.available ()) { radio.read (అందుకున్న మెసేజ్, సైజుఆఫ్ (అందుకున్న మెసేజ్)); సీరియల్.ప్రింట్ల్న్ (అందుకున్న మెసేజ్); Serial.println ("రేడియోను ఆపివేయడం."); radio.stopListening (); స్ట్రింగ్ స్ట్రింగ్ మెసేజ్ (అందుకున్న మెసేజ్); lcd.clear (); ఆలస్యం (1000); lcd.print (stringMessage); }
Arduino UNO కి చివరిలో ఇచ్చిన పూర్తి కోడ్ను అప్లోడ్ చేయండి మరియు సందేశం వచ్చే వరకు వేచి ఉండండి.
ఇది రాస్ప్బెర్రీ పై & nRf24l01 ఉపయోగించి సందేశాన్ని పంపడం మరియు ఆర్డునో UNO & nRF24l01 ఉపయోగించి స్వీకరించడంపై పూర్తి ట్యుటోరియల్ను పూర్తి చేస్తుంది. సందేశం 16x2 LCD కి ముద్రించబడుతుంది. Arduino UNO మరియు రాస్ప్బెర్రీ పై రెండింటిలో పైప్ చిరునామాలు చాలా ముఖ్యమైనవి. ఈ ప్రాజెక్ట్ చేస్తున్నప్పుడు మీకు ఏమైనా ఇబ్బందులు ఎదురైతే, దయచేసి క్రింద వ్యాఖ్యానించండి లేదా మరింత వివరణాత్మక చర్చ కోసం ఫోరమ్ను చేరుకోండి.
దిగువ ప్రదర్శన వీడియోను కూడా తనిఖీ చేయండి.