- NRF24L01 RF మాడ్యూల్ గురించి తెలుసుకోవడం
- Arduino తో nRF24L01 ను ఇంటర్ఫేసింగ్
- స్వీకర్త వైపు: Arduino Uno nRF24L01 మాడ్యూల్ కనెక్షన్లు
- ట్రాన్స్మిటర్ వైపు: ఆర్డునో నానో nRF24L01 మాడ్యూల్ కనెక్షన్లు
- NRF24L01 + వైర్లెస్ ట్రాన్స్సీవర్ మాడ్యూల్తో పనిచేస్తోంది
- Arduino కోసం nRF24L01 ప్రోగ్రామింగ్
- వైర్లెస్గా nRF24L01 ఉపయోగించి సర్వో మోటార్ను నియంత్రించడం
ఇంటర్నెట్ ఆఫ్ థింగ్స్ (ఐఒటి), ఇండస్ట్రీ 4.0, మెషిన్ టు మెషిన్ కమ్యూనికేషన్ మొదలైనవి బాగా ప్రాచుర్యం పొందుతున్నాయి, వైర్లెస్ కమ్యూనికేషన్ యొక్క అవసరం అధికంగా ఉంది, క్లౌడ్లో ఒకదానితో ఒకటి మాట్లాడటానికి ఎక్కువ యంత్రాలు / పరికరాలు ఉన్నాయి. డిజైనర్లు బ్లూటూత్ లో ఎనర్జీ (బిఎల్ఇ 4.0), జిగ్బీ, ఇఎస్పి 43 వై-ఫై మాడ్యూల్స్, 433 మెగాహెర్ట్జ్ ఆర్ఎఫ్ మాడ్యూల్స్, లోరా, ఎన్ఆర్ఎఫ్ మొదలైన అనేక వైర్లెస్ కమ్యూనికేషన్ సిస్టమ్లను ఉపయోగిస్తున్నారు మరియు మాధ్యమం యొక్క ఎంపిక అది ఏ రకమైన అప్లికేషన్లో ఉపయోగించబడుతుందో దానిపై ఆధారపడి ఉంటుంది.
అన్నింటిలో, స్థానిక నెట్వర్క్ కమ్యూనికేషన్ కోసం ఒక ప్రసిద్ధ వైర్లెస్ మాధ్యమం nRF24L01. ఈ గుణకాలు 2.4GHz (ISM బ్యాండ్) పై 250Kbps నుండి 2Mbps వరకు బాడ్ రేటుతో పనిచేస్తాయి, ఇది చాలా దేశాలలో చట్టబద్ధమైనది మరియు పారిశ్రామిక మరియు వైద్య అనువర్తనాలలో ఉపయోగించవచ్చు. సరైన యాంటెన్నాలతో ఈ గుణకాలు వాటి మధ్య 100 మీటర్ల దూరం వరకు ప్రసారం చేయగలవు మరియు స్వీకరించబడతాయి. ఆసక్తికరంగా ఉందా !!? కాబట్టి, ఈ ట్యుటోరియల్లో ఈ nRF24l01 మాడ్యూళ్ల గురించి మరియు ఆర్డునో వంటి మైక్రోకంట్రోలర్ ప్లాట్ఫామ్తో ఎలా ఇంటర్ఫేస్ చేయాలో గురించి మరింత తెలుసుకుంటాము. ఈ మాడ్యూల్ ఉపయోగిస్తున్నప్పుడు సాధారణంగా ఎదుర్కొంటున్న సమస్యలకు మేము కొన్ని పరిష్కారాలను కూడా పంచుకుంటాము.
NRF24L01 RF మాడ్యూల్ గురించి తెలుసుకోవడం
NRF24L01 గుణకాలు ఉన్నాయి తరంగాలు స్వీకరించే గుణకాలు ప్రతి మాడ్యూల్ అనగా చెయ్యవచ్చు రెండింటినీ పంపండి మరియు డేటా అందుకున్న కానీ వారు ఎందుకంటే అర్ధ-ద్వంద్వ వారు గాని పంపండి లేదా ఒక సమయంలో దత్తాంశాల అందుకోవచ్చు. మాడ్యూల్ నార్డిక్ సెమీ కండక్టర్ల నుండి సాధారణ nRF24L01 IC ను కలిగి ఉంది, ఇది డేటా ప్రసారం మరియు రిసెప్షన్కు బాధ్యత వహిస్తుంది. ఎస్పిఐ ప్రోటోకాల్ ఉపయోగించి ఐసి కమ్యూనికేట్ చేస్తుంది మరియు అందువల్ల ఏదైనా మైక్రోకంట్రోలర్లతో సులభంగా ఇంటర్ఫేస్ చేయవచ్చు. లైబ్రరీలు తక్షణమే అందుబాటులో ఉన్నందున ఇది ఆర్డునోతో చాలా సులభం అవుతుంది. ప్రామాణిక nRF24L01 మాడ్యూల్ యొక్క పిన్అవుట్లు క్రింద చూపించబడ్డాయి
మాడ్యూల్ ఆపరేటింగ్ వోల్టేజ్లో 1.9V నుండి 3.6V (సాధారణంగా 3.3V) వరకు ఉంటుంది మరియు సాధారణ ఆపరేషన్ సమయంలో కేవలం 12mA మాత్రమే తక్కువ విద్యుత్తును వినియోగిస్తుంది, ఇది బ్యాటరీ సామర్థ్యాన్ని కలిగిస్తుంది మరియు అందువల్ల కాయిన్ కణాలపై కూడా నడుస్తుంది. ఆపరేటింగ్ వోల్టేజ్ 3.3 వి అయినప్పటికీ, పిన్స్ చాలావరకు 5 వి టాలరెంట్ మరియు అందువల్ల ఆర్డునో వంటి 5 వి మైక్రోకంట్రోలర్లతో నేరుగా ఇంటర్ఫేస్ చేయవచ్చు. ఈ మాడ్యూళ్ళను ఉపయోగించడం యొక్క మరొక ప్రయోజనం ఏమిటంటే, ప్రతి మాడ్యూల్ 6 పైప్లైన్లను కలిగి ఉంటుంది. అర్థం, ప్రతి మాడ్యూల్ డేటాను ప్రసారం చేయడానికి లేదా స్వీకరించడానికి 6 ఇతర మాడ్యూళ్ళతో కమ్యూనికేట్ చేయగలదు. ఇది IoT అనువర్తనాలలో స్టార్ లేదా మెష్ నెట్వర్క్లను సృష్టించడానికి మాడ్యూల్ను అనుకూలంగా చేస్తుంది. అలాగే అవి 125 ప్రత్యేకమైన ఐడిల విస్తృత చిరునామా పరిధిని కలిగి ఉన్నాయి, అందువల్ల క్లోజ్డ్ ఏరియాలో మనం 125 మాడ్యూళ్ళను ఒకదానితో ఒకటి జోక్యం చేసుకోకుండా ఉపయోగించవచ్చు.
Arduino తో nRF24L01 ను ఇంటర్ఫేసింగ్
ఈ ట్యుటోరియల్లో nRF24L01 ను ఆర్డునోతో ఎలా ఇంటర్ఫేస్ చేయాలో నేర్చుకుంటాము , ఒక ఆర్డునోతో అనుసంధానించబడిన సర్వో మోటారును నియంత్రించడం ద్వారా మరొక ఆర్డునోపై పొటెన్షియోమీటర్ను మార్చడం ద్వారా. సరళత కొరకు, మేము ఒక nRF24L01 మాడ్యూల్ను ట్రాన్స్మిటర్గా ఉపయోగించాము మరియు మరొకటి రిసీవర్, కానీ ప్రతి మాడ్యూల్ డేటాను ఒక్కొక్కటిగా పంపించడానికి మరియు స్వీకరించడానికి ప్రోగ్రామ్ చేయవచ్చు.
NRF24L01 మాడ్యూల్ను Arduino తో కనెక్ట్ చేయడానికి సర్క్యూట్ రేఖాచిత్రం క్రింద చూపబడింది. వైవిధ్యం కోసం, నేను రిసీవర్ వైపు UNO మరియు ట్రాన్స్మిటర్ వైపు నానో ఉపయోగించాను. కనెక్షన్ కోసం తర్కం మినీ, మెగా వంటి ఇతర ఆర్డునో బోర్డులకు కూడా అలాగే ఉంటుంది.
స్వీకర్త వైపు: Arduino Uno nRF24L01 మాడ్యూల్ కనెక్షన్లు
ఇంతకు ముందు చెప్పినట్లుగా nRF24L01 SPI ప్రోటోకాల్ సహాయంతో కమ్యూనికేట్ చేస్తుంది. ఆర్డునో నానో మరియు యుఎన్ఓలలో 11, 12 మరియు 13 పిన్లను SPI కమ్యూనికేషన్ కోసం ఉపయోగిస్తారు. అందువల్ల మేము MOSI, MISO మరియు SCK పిన్లను వరుసగా nRF నుండి 11, 12 మరియు 13 పిన్లకు కలుపుతాము. పిన్స్ CE మరియు CS యూజర్ కాన్ఫిగర్ చేయదగినవి, నేను ఇక్కడ పిన్ 7 మరియు 8 లను ఉపయోగించాను, కాని మీరు ప్రోగ్రామ్ను మార్చడం ద్వారా ఏదైనా పిన్ను ఉపయోగించవచ్చు. NRF మాడ్యూల్ Arduino లోని 3.3V పిన్ ద్వారా శక్తిని పొందుతుంది, ఇది చాలా సందర్భాలలో పని చేస్తుంది. కాకపోతే, ప్రత్యేక విద్యుత్ సరఫరాను ప్రయత్నించవచ్చు. ఎన్ఆర్ఎఫ్ను ఇంటర్ఫేసింగ్ చేయడమే కాకుండా, పిన్ 7 కు సర్వో మోటారును కూడా కనెక్ట్ చేసాను మరియు ఆర్డునోలోని 5 వి పిన్ ద్వారా శక్తినిచ్చాను. అదేవిధంగా ట్రాన్స్మిటర్ సర్క్యూట్ క్రింద చూపబడింది.
ట్రాన్స్మిటర్ వైపు: ఆర్డునో నానో nRF24L01 మాడ్యూల్ కనెక్షన్లు
ట్రాన్స్మిటర్ కోసం కనెక్షన్లు కూడా ఒకే విధంగా ఉన్నాయి, అదనంగా నేను ఆర్డునో యొక్క 5 వి యాడ్ గ్రౌండ్ పిన్ అంతటా కనెక్ట్ చేయబడిన పొటెన్షియోమీటర్ను ఉపయోగించాను. 0-5V నుండి మారుతున్న అవుట్పుట్ అనలాగ్ వోల్టేజ్ నానో యొక్క A7 పిన్తో అనుసంధానించబడి ఉంది. రెండు బోర్డులు USB పోర్ట్ ద్వారా శక్తిని పొందుతాయి.
NRF24L01 + వైర్లెస్ ట్రాన్స్సీవర్ మాడ్యూల్తో పనిచేస్తోంది
అయితే మా nRF24L01 శబ్దం లేకుండా పని చేయడానికి మేము ఈ క్రింది విషయాలను పరిశీలించాలనుకుంటున్నాము. నేను ఈ nRF24L01 + లో చాలాకాలంగా పని చేస్తున్నాను మరియు గోడపై కొట్టకుండా మీకు సహాయపడే ఈ క్రింది అంశాలను నేర్చుకున్నాను. గుణకాలు సాధారణ మార్గంలో పని చేయనప్పుడు మీరు వీటిని ప్రయత్నించవచ్చు.
1. మార్కెట్లో చాలా nRF24L01 + మాడ్యూల్స్ నకిలీవి. ఈబే మరియు అమెజాన్లలో మనం కనుగొనగలిగే చౌకైనవి చెత్తగా ఉన్నాయి (చింతించకండి, కొన్ని సర్దుబాట్లతో మేము వాటిని పని చేయగలము)
2. ప్రధాన సమస్య విద్యుత్ సరఫరా, మీ కోడ్ కాదు. ఆన్లైన్లో చాలా కోడ్లు సరిగ్గా పని చేస్తాయి, నేను వ్యక్తిగతంగా పరీక్షించిన వర్కింగ్ కోడ్ను కలిగి ఉన్నాను, మీకు అవి అవసరమైతే నాకు తెలియజేయండి.
3. శ్రద్ధ వహించండి ఎందుకంటే NRF24L01 + గా ముద్రించబడిన గుణకాలు వాస్తవానికి Si24Ri (అవును చైనీస్ ఉత్పత్తి).
4. క్లోన్ మరియు నకిలీ గుణకాలు ఎక్కువ శక్తిని వినియోగిస్తాయి, అందువల్ల మీ పవర్ సర్క్యూట్ను nRF24L01 + డేటాషీట్ ఆధారంగా అభివృద్ధి చేయవద్దు, ఎందుకంటే Si24Ri 250mA గురించి అధిక ప్రస్తుత వినియోగాన్ని కలిగి ఉంటుంది.
5. వోల్టేజ్ అలలు మరియు ప్రస్తుత సర్జెస్ గురించి జాగ్రత్త వహించండి, ఈ గుణకాలు చాలా సున్నితమైనవి మరియు సులభంగా కాలిపోతాయి. (;-(ఇప్పటివరకు 2 మాడ్యూళ్ళను వేయించింది)
6. మాడ్యూల్ యొక్క Vcc మరియు Gnd అంతటా ఒక జంట కెపాసిటర్లను (10uF మరియు 0.1uF) జోడించడం మీ సరఫరాను స్వచ్ఛంగా చేయడంలో సహాయపడుతుంది మరియు ఇది చాలా మాడ్యూళ్ళకు పనిచేస్తుంది.
మీకు వ్యాఖ్యల విభాగంలో సమస్యలు ఉంటే లేదా దీని ద్వారా చదవండి లేదా మీ ఫోరమ్లో మీ ప్రశ్నలను అడగండి.
NRF24L01 ఉపయోగించి చాట్ గదిని సృష్టించడంపై మా విస్తృతమైన ప్రాజెక్ట్ను కూడా తనిఖీ చేయండి.
Arduino కోసం nRF24L01 ప్రోగ్రామింగ్
గిట్హబ్లో మానియాక్బగ్ సృష్టించిన లైబ్రరీ కారణంగా, ఈ మాడ్యూళ్ళను ఆర్డునోతో ఉపయోగించడం చాలా సులభం. లైబ్రరీని జిప్ ఫోల్డర్గా డౌన్లోడ్ చేయడానికి లింక్పై క్లిక్ చేసి, స్కెచ్ -> లైబ్రరీని చేర్చండి -> జోడించు.జిప్ లైబ్రరీ ఎంపికను ఉపయోగించి మీ ఆర్డునో ఐడిఇకి జోడించండి . లైబ్రరీని జోడించిన తరువాత మేము ప్రాజెక్ట్ కోసం ప్రోగ్రామింగ్ ప్రారంభించవచ్చు. మేము రెండు ప్రోగ్రామ్లను వ్రాయవలసి ఉంది, ఒకటి ట్రాన్స్మిటర్ వైపు మరియు మరొకటి రిసీవర్ వైపు. నేను ఇంతకు ముందే చెప్పినట్లుగా ప్రతి మాడ్యూల్ ట్రాన్స్మిటర్ మరియు రిసీవర్ గా పనిచేయగలదు. రెండు ప్రోగ్రామ్లు ఈ పేజీ చివరిలో ఇవ్వబడ్డాయి, ట్రాన్స్మిటర్ కోడ్లో రిసీవర్ ఎంపిక వ్యాఖ్యానించబడుతుంది మరియు రిసీవర్ ప్రోగ్రామ్లో ట్రాన్స్మిటర్ కోడ్ వ్యాఖ్యానించబడుతుంది. మీరు మాడ్యూల్ రెండింటిలో పని చేయాల్సిన ప్రాజెక్ట్ను ప్రయత్నిస్తుంటే మీరు దాన్ని ఉపయోగించవచ్చు. కార్యక్రమం యొక్క పని క్రింద వివరించబడింది.
అన్ని ప్రోగ్రామ్ల మాదిరిగానే మేము హెడర్ ఫైల్లను చేర్చడం ద్వారా ప్రారంభిస్తాము. NRF SPI ప్రోటోకాల్ను ఉపయోగిస్తున్నందున మేము SPI హెడర్ను మరియు మేము డౌన్లోడ్ చేసిన లైబ్రరీని కూడా చేర్చుకున్నాము. సర్వో మోటారును నియంత్రించడానికి సర్వో లైబ్రరీ ఉపయోగించబడుతుంది.
# చేర్చండి
తరువాతి పంక్తి CE మరియు CS పిన్ల గురించి లైబ్రరీకి సూచించే ముఖ్యమైన పంక్తి. మా సర్క్యూట్ రేఖాచిత్రంలో మేము CE ని పిన్ 7 కి మరియు CS ను పిన్ 8 కి కనెక్ట్ చేసాము, కాబట్టి మేము లైన్ ను ఇలా సెట్ చేసాము
RF24 myRadio (7, 8);
RF లైబ్రరీతో అనుబంధించబడిన అన్ని వేరియబుల్స్ మిశ్రమ వేరియబుల్ నిర్మాణంగా ప్రకటించబడాలి. ఈ ప్రోగ్రామ్లో వేరియబుల్ msg RF మాడ్యూల్ నుండి డేటాను పంపడానికి మరియు స్వీకరించడానికి ఉపయోగించబడుతుంది.
struct ప్యాకేజీ { int msg; }; typedef struct ప్యాకేజీ ప్యాకేజీ; ప్యాకేజీ డేటా;
ప్రతి RF మాడ్యూల్ ప్రత్యేకమైన చిరునామాను కలిగి ఉంటుంది, ఇది సంబంధిత పరికరానికి డేటాను పంపగలదు. మేము ఇక్కడ ఒక జత మాత్రమే కలిగి ఉన్నందున, మేము ట్రాన్స్మిటర్ మరియు రిసీవర్ రెండింటిలోనూ చిరునామాను సున్నాకి సెట్ చేసాము, కానీ మీకు బహుళ మాడ్యూల్ ఉంటే మీరు ID ని ఏదైనా ప్రత్యేకమైన 6 అంకెల స్ట్రింగ్కు సెట్ చేయవచ్చు.
బైట్ చిరునామాలు = {"0"};
శూన్య సెటప్ ఫంక్షన్ లోపల మేము RF మాడ్యూల్ను ప్రారంభిస్తాము మరియు శబ్దం లేని 115 బ్యాండ్తో పనిచేయడానికి సెట్ చేసాము మరియు మాడ్యూల్ కనీస విద్యుత్ వినియోగ మోడ్లో 250Kbps వేగంతో పనిచేయడానికి సెట్ చేసాము.
శూన్య సెటప్ () { Serial.begin (9600); myRadio.begin (); myRadio.setChannel (115); WIFI పైన ఉన్న 115 బ్యాండ్ myRadio.setPALevel (RF24_PA_MIN) ను సూచిస్తుంది; // MIN శక్తి తక్కువ కోపం myRadio.setDataRate (RF24_250KBPS); // కనిష్ట వేగం myservo.attach (6); సీరియల్.ప్రింట్ ("సెటప్ ప్రారంభించబడింది"); ఆలస్యం (500); }
రైట్డేటా () ఫంక్షన్ దానికి పంపిన డేటాను వ్రాస్తుంది. ఇంతకుముందు చెప్పినట్లుగా, ఎన్ఆర్ఎఫ్ 6 వేర్వేరు పైపులను కలిగి ఉంది, వీటికి మనం డేటాను చదవగలము లేదా వ్రాయగలము, ఇక్కడ మనం 0xF0F0F0F066 ను డేటా వ్రాయడానికి చిరునామాగా ఉపయోగించాము. రిసీవర్ వైపు, వ్రాసిన డేటాను స్వీకరించడానికిమేము అదే చిరునామాను రీడ్డేటా () ఫంక్షన్లో ఉపయోగించాలి.
రైట్డేటా () { myRadio.stopListening (); // స్వీకరించడాన్ని ఆపివేసి, myRadio.openWritingPipe (0xF0F0F0F066); // ఈ 40-బిట్ చిరునామాపై డేటాను పంపుతుంది myRadio.write (& డేటా, సైజు (డేటా)); ఆలస్యం (300); }
శూన్యమైన రైట్డేటా () ఫంక్షన్ డేటాను చదివి వేరియబుల్లో ఉంచుతుంది. డేటాను చదవగలిగే లేదా వ్రాయగల 6 వేర్వేరు పైపులలో మళ్ళీ డేటాను చదవడానికి 0xF0F0F0F0AA ను చిరునామాగా ఉపయోగించాము. దీని అర్థం ఇతర మాడ్యూల్ యొక్క ట్రాన్స్మిటర్ ఈ చిరునామాలో ఏదో వ్రాసింది మరియు అందువల్ల మేము దానిని అదే నుండి చదువుతున్నాము.
శూన్యమైన రీడ్డేటా () { myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // ఏ పైపు చదవాలి, 40 బిట్ చిరునామా myRadio.startListening (); // ప్రసారం చేయడాన్ని ఆపివేసి (myRadio.available ()) { అయితే (myRadio.available ()) { myRadio.read (& data, sizeof (data)) ఉంటే బహిర్గతం చేయడం ప్రారంభించండి ; } సీరియల్.ప్రింట్ల్న్ (డేటా.టెక్స్ట్); } }
ఈ పంక్తులు కాకుండా, ప్రోగ్రామ్లోని ఇతర పంక్తులు POT ను చదవడానికి మరియు మ్యాప్ ఫంక్షన్ను ఉపయోగించి 0 నుండి 180 కి మార్చడానికి మరియు రిసీవర్ మాడ్యూల్కు పంపడానికి ఉపయోగిస్తారు, అక్కడ మేము సర్వోను నియంత్రిస్తాము. మా సర్వో ఇంటర్ఫేసింగ్ ట్యుటోరియల్లో మేము ఇప్పటికే నేర్చుకున్నప్పటి నుండి నేను వాటిని లైన్ ద్వారా వివరించలేదు.
వైర్లెస్గా nRF24L01 ఉపయోగించి సర్వో మోటార్ను నియంత్రించడం
మీరు ప్రోగ్రామ్తో సిద్ధమైన తర్వాత ట్రాన్స్మిటర్ మరియు రిసీవర్ కోడ్ను (క్రింద ఇవ్వబడింది) సంబంధిత ఆర్డునో బోర్డులలో అప్లోడ్ చేయండి మరియు వాటిని USB పోర్ట్తో శక్తివంతం చేయండి. ఏ విలువలు ప్రసారం చేయబడుతున్నాయో మరియు ఏమి స్వీకరించబడుతున్నాయో తనిఖీ చేయడానికి మీరు రెండు బోర్డుల సీరియల్ మానిటర్ను కూడా ప్రారంభించవచ్చు. మీరు ట్రాన్స్మిటర్ వైపు POT నాబ్ను ఆన్ చేసినప్పుడు ప్రతిదీ expected హించిన విధంగా పనిచేస్తుంటే, మరొక వైపు ఉన్న సర్వో కూడా తదనుగుణంగా తిరగాలి.
ప్రాజెక్ట్ యొక్క పూర్తి పని క్రింది వీడియోలో ప్రదర్శించబడుతుంది. ఈ మాడ్యూల్స్ మొదటి ప్రయత్నంలో పనిచేయకపోవడం చాలా సాధారణం, మీకు ఏదైనా సమస్య ఎదురైతే కోడ్ మరియు వైరింగ్ను మళ్లీ తనిఖీ చేసి, పైన ఇచ్చిన ఇబ్బంది షూటింగ్ మార్గదర్శకాలను ప్రయత్నించండి. ఏమీ పని చేయకపోతే మీ సమస్యను ఫోరమ్లలో లేదా వ్యాఖ్య విభాగంలో పోస్ట్ చేయండి మరియు నేను వాటిని పరిష్కరించడానికి ప్రయత్నిస్తాను.