- పని వివరణ:
- అవసరమైన భాగాలు:
- సర్క్యూట్ రేఖాచిత్రం:
- NRF24L01 + వైర్లెస్ ట్రాన్స్సీవర్ మాడ్యూల్తో పనిచేస్తోంది:
- ప్రోగ్రామింగ్ ది ఆర్డునోస్:
- ప్రాసెసింగ్ ప్రోగ్రామ్:
- పరీక్ష:
సిబ్బందిని మరియు రహస్య డేటాను పంచుకోవడానికి స్థానిక నెట్వర్క్ను సృష్టించడం మన ఆధునిక ప్రపంచంలో ఒక సామాన్యుడికి దాదాపు అసాధ్యంగా మారింది. వాట్సాప్, ఫేస్బుక్, హ్యాంగ్అవుట్ వంటి అన్ని సాధారణ చాట్ పద్ధతులు మరియు దాదాపు ప్రతిదీ ఇంటర్నెట్ కనెక్షన్ను కలిగి ఉండటం దీనికి ప్రధాన కారణం.
ఒకవేళ, మేము ఇంటర్నెట్ మాధ్యమం లేకుండా డేటాను పంచుకోగలమా ?
నెట్ ప్యాక్ లేదా ఇంటర్నెట్ కనెక్షన్ లేకుండా మీ ఇల్లు లేదా కార్యాలయంలోని వ్యక్తులతో కమ్యూనికేట్ చేయగలిగితే ఎంత బాగుంటుంది ?
మనం కాలేదు ఉంటే మా చాట్ స్క్రీన్ అనుకూలీకరించడానికి మా సొంత ఊహ తో?
మైక్రోకంట్రోలర్ మరియు వైర్లెస్ ట్రాన్స్మిషన్ మాధ్యమంతో ఇవన్నీ సాధ్యమే. NRF24L01 ప్రాజెక్ట్ ఉపయోగించి ఈ ఆర్డునో చాట్ రూమ్ మీ స్థానిక ప్రాంతంలో తక్కువ ఖర్చుతో చాట్ రూమ్ ఏర్పాటు చేయడానికి మీకు మార్గనిర్దేశం చేస్తుంది.
కాబట్టి లోపలికి దూకి, అది ఎలా పనిచేస్తుందో చూద్దాం.
పని వివరణ:
ప్రాథమికంగా ఈ విషయం పని చేయడానికి మాకు ఒక జత ఆర్డునో బోర్డులు మరియు చౌకైన వైర్లెస్ మాడ్యూల్స్ అవసరం. మేము ఇక్కడ ఉపయోగిస్తున్న వైర్లెస్ మాడ్యూల్స్ nRF24L01. ఈ మాడ్యూళ్ళను ఎన్నుకోవటానికి కారణం, ఇవి జిగ్బీ యొక్క వారసులు మరియు సెటప్ కనెక్షన్తో పనిచేయడం సులభం. ఈ గుణకాలు 2.4 GHz (ISM బ్యాండ్) పై ఫ్రీక్వెన్సీ హోపింగ్ స్ప్రెడ్ స్పెక్ట్రం మరియు షాక్ బరస్ట్ ఎంపికలతో పనిచేస్తాయి, ఇది మాకు జోక్యం సమస్యల నుండి రిలాక్స్ గా అనిపిస్తుంది.
మా Arduino మరియు NRF24L01 ఒక సీరియల్ కమ్యూనికేషన్ను స్థాపించడానికి కలిసి అనుసంధానించబడి ఉన్నాయి, తద్వారా వారు ఒకరితో ఒకరు మాట్లాడగలరు. NRF24L01 సగం డ్యూప్లెక్స్ ట్రాన్స్సీవర్ మాడ్యూల్స్, అందువల్ల అవి డేటాను పంపగలవు మరియు స్వీకరించగలవు. డేటా వినియోగదారు నుండి సేకరించి ప్రసారం చేయబడిన ఈ డేటాను ఏదైనా (లేదా ఒక ప్రత్యేకమైన) మాడ్యూల్స్ ద్వారా స్వీకరించవచ్చు మరియు దానిని వారి తెరపై ప్రదర్శించవచ్చు.
కానీ !!!!! మేము ఆర్డునో యొక్క డీబగ్ స్క్రీన్ ఉపయోగించి చాట్ చేయబోతున్నారా? అస్సలు కానే కాదు. మేము 'ప్రాసెసింగ్' సహాయంతో మా స్వంత చాట్ స్క్రీన్ను నిర్మించి, అనుకూలీకరించబోతున్నాం. ప్రాసెసింగ్ అనేది UART ఉపయోగించి ఆర్డునోతో కమ్యూనికేట్ చేయగల సాఫ్ట్వేర్. మేము ప్రాసెసింగ్ భాషతో.exe ఫైల్ను సృష్టిస్తాము, ఇది జావా రన్టైమ్తో ఏ కంప్యూటర్లోనైనా నడుస్తుంది. చాట్ చేయడానికి మన ఆర్డునోను ప్లగ్ చేసి ఈ.exe ఫైల్ను తెరిచి, బూమూమ్ !! మేము మా స్వంత ప్రైవేటీకరించిన పూర్తిగా ఉచిత చాట్-రూమ్లో ఉన్నాము.
ఈ ప్రాజెక్ట్ కేవలం ఇద్దరు సభ్యులను చాట్ గదికి చేర్చడానికి మాత్రమే పరిమితం చేయబడింది, అయితే nRF24L01 లో 6 పైప్లైన్లు ఉన్నాయి, కాబట్టి మా చాట్ రూమ్లో గరిష్టంగా 6 మంది సభ్యులు ఉండవచ్చు. ఈ చార్ రూమ్ nRF24L01 మాడ్యూళ్ళను బట్టి 100 మీటర్ల పరిధిలో పనిచేయగలదు.
కాబట్టి షాపింగ్ చేద్దాం !!!!
అవసరమైన భాగాలు:
- ఆర్డునో (ఏదైనా వెర్షన్ లేదా మోడల్) - 2 సంఖ్యలు
- nRF24L01 + వైర్లెస్ ట్రాన్స్సీవర్ మాడ్యూల్ - 2 సంఖ్యలు
- 3.3 వోల్టేజ్ రెగ్యులేటర్ - 2 సంఖ్యలు. (తప్పనిసరి కాదు)
- వైర్లను కనెక్ట్ చేస్తోంది
- ఆసక్తి (లోల్జ్)
సర్క్యూట్ రేఖాచిత్రం:
NRF24L01 తో Arduino మెగా:
NRF24L01 తో Arduino నానో:
మా ప్రాజెక్ట్ సంక్లిష్ట కనెక్షన్లను కలిగి ఉండదు. నేను Arduino Mega మరియు Arduino Nano ని ఉపయోగించాను మరియు nRF24L01 తో వాటి కనెక్షన్లు పైన చూపించబడ్డాయి. మీరు ఏదైనా ఆర్డునో మోడళ్లను ఉపయోగించవచ్చు.
NRF24L01 + వైర్లెస్ ట్రాన్స్సీవర్ మాడ్యూల్తో పనిచేస్తోంది:
అయితే మా nRF24L01 శబ్దం లేకుండా పని చేయడానికి మేము ఈ క్రింది విషయాలను పరిశీలించాలనుకుంటున్నాము. నేను చాలా కాలంగా ఈ nRF24L01 + లో పని చేస్తున్నాను మరియు ఈ క్రింది పాయింట్లు నేర్చుకున్నాను గోడపై కొట్టకుండా మీకు సహాయపడుతుంది.
1. మార్కెట్లో చాలా nRF24L01 + మాడ్యూల్స్ నకిలీవి. ఈబే మరియు అమెజాన్లలో మనం కనుగొనగలిగే చౌకైనవి చెత్తగా ఉన్నాయి (చింతించకండి, కొన్ని సర్దుబాట్లతో మేము వాటిని పని చేయగలము)
2. ప్రధాన సమస్య విద్యుత్ సరఫరా మీ కోడ్ కాదు. ఆన్లైన్లో చాలా కోడ్లు సరిగ్గా పని చేస్తాయి, నేను వ్యక్తిగతంగా పరీక్షించిన వర్కింగ్ కోడ్ను కలిగి ఉన్నాను, మీకు అవి అవసరమైతే నాకు తెలియజేయండి.
3. శ్రద్ధ వహించండి ఎందుకంటే NRF24L01 + గా ముద్రించబడిన గుణకాలు వాస్తవానికి Si24Ri (అవును చైనీస్ ఉత్పత్తి).
4. క్లోన్ మరియు నకిలీ గుణకాలు ఎక్కువ శక్తిని వినియోగిస్తాయి, అందువల్ల మీ పవర్ సర్క్యూట్ను nRF24L01 + డేటాషీట్ ఆధారంగా అభివృద్ధి చేయవద్దు, ఎందుకంటే Si24Ri 250mA గురించి అధిక ప్రస్తుత వినియోగాన్ని కలిగి ఉంటుంది.
5. వోల్టేజ్ అలలు మరియు ప్రస్తుత సర్జెస్ గురించి జాగ్రత్త వహించండి, ఈ గుణకాలు చాలా సున్నితమైనవి మరియు సులభంగా కాలిపోతాయి. (;-(ఇప్పటివరకు 2 మాడ్యూళ్ళను వేయించింది)
6. మాడ్యూల్ యొక్క Vcc మరియు Gnd అంతటా ఒక జంట కెపాసిటర్ (10uF మరియు 0.1uF) ను జోడించడం మీ సరఫరాను స్వచ్ఛంగా చేయడంలో సహాయపడుతుంది మరియు ఇది చాలా మాడ్యూళ్ళకు పనిచేస్తుంది.
మీకు సమస్యలు ఉంటే వ్యాఖ్య విభాగంలో నివేదించండి లేదా దీని ద్వారా చదవండి.
ప్రోగ్రామింగ్ ది ఆర్డునోస్:
అర్డునో నానో మరియు మెగా రెండింటి కోసం ప్రోగ్రామ్ CE మరియు CS పిన్లలో మార్పుకు సమానంగా ఉంటుంది. నేను చిన్న విభాగాలుగా విభజించడం ద్వారా ప్రోగ్రామ్ను వివరిస్తాను.
Arduino మరియు nRF24L01 SPI ద్వారా కమ్యూనికేట్ చేస్తున్నందున మేము SPI లైబ్రరీ కోసం పిలిచాము. మా RF మాడ్యూల్స్ పనిచేయడానికి మా మానియాక్బగ్ RF24 లిబ్ను కూడా చేర్చాము. ఫైల్ను ఇక్కడ నుండి డౌన్లోడ్ చేసి, వాటిని మీ IDE కి జోడించండి.
# చేర్చండి
మా NRF గుణకాలు వరుసగా పిన్ 8 మరియు 10 కి CE మరియు CS లకు అనుసంధానించబడి ఉన్నాయి.
RF24 myRadio (8, 10);
మేము అని ఒక నిర్మాణాత్మక డేటా ప్యాకేజీ సృష్టించడానికి ప్యాకేజీ . డేటాను గాలిలో ప్రసారం చేయడానికి వేరియబుల్ టెక్స్ట్ ఉపయోగించబడుతుంది.
struct ప్యాకేజీ {చార్ టెక్స్ట్; // గాలిలో ప్రసారం చేయడానికి వచనం}; typedef struct ప్యాకేజీ ప్యాకేజీ; ప్యాకేజీ డేటా;
లో గర్జన సెటప్ () ఫంక్షన్, మేము 9600 వరకు బాడ్ రేటు మరియు సెటప్ 115 మా గుణకాలు కనిష్ట శక్తి వినియోగం మరియు 250kbps వేగంతో ప్రారంభించడం. మీరు తరువాత ఈ విలువలతో ఫిడేల్ చేయవచ్చు.
శూన్య సెటప్ () {Serial.begin (9600); ఆలస్యం (1000); //Serial.print("Setup ప్రారంభించబడింది "); myRadio.begin (); myRadio.setChannel (115); WIFI సిగ్నల్స్ పైన ఉన్న 115 బ్యాండ్ myRadio.setPALevel (RF24_PA_MIN); // MIN శక్తి తక్కువ కోపం myRadio.setDataRate (RF24_250KBPS); // కనిష్ట వేగం}
సీరియల్ బఫర్ ద్వారా డేటా స్వీకరించబడితే మాడ్యూల్ ట్రాన్స్మిట్ మోడ్లో పని చేస్తుంది, లేకపోతే అది గాలిలో డేటా కోసం చూస్తున్న రిసీవర్ మోడ్లో ఉంటుంది. వినియోగదారు నుండి డేటా చార్ అర్రేలో నిల్వ చేయబడుతుంది మరియు వాటిని ప్రసారం చేయడానికి రైట్డేటా () కు పంపబడుతుంది.
void loop () {while (Serial.available ()> 0) // వినియోగదారు నుండి విలువలను పొందండి {val = Serial.peek (); if (సూచిక <19) // శ్రేణి పరిమాణం కంటే తక్కువ {inChar = Serial.read (); // inData = inChar లో ఒక అక్షరాన్ని చదవండి; // స్టోర్ ఇండెక్స్ ++; // తదుపరి inData = '\ 0' ఎక్కడ వ్రాయాలో పెరుగుదల; // స్ట్రింగ్ను శూన్యంగా ముగించండి} if (val == '#') {strcpy (data.text, inData); రైట్డేటా (); // మాడ్యూల్ను ట్రాన్స్మిట్ మోడ్లో ఉంచండి (ఇండెక్స్! = 0) {inData = ''; సూచిక--; D}} రీడ్డేటా (); // మాడ్యూల్ ఉంచండి మోడ్ స్వీకరించండి}
శూన్యమైన రైట్డేటా () ఫంక్షన్ 0xF0F0F0F0AA చిరునామాలో డేటాను వ్రాస్తుంది, ఈ చిరునామా ఇతర మాడ్యూల్పై వ్రాసే పైపుగా ఉపయోగించబడుతుంది.
రైట్డేటా () {myRadio.stopListening (); // స్వీకరించడాన్ని ఆపివేసి, myRadio.openWritingPipe (0xF0F0F0F066); // ఈ 40-బిట్ చిరునామా myRadio.write (& data, sizeof (data)) పై డేటాను పంపుతుంది; ఆలస్యం (300); }
శూన్యమైన రీడ్డేటా () ఫంక్షన్ ఈ చిరునామాను 0xF0F0F0F066 లో వ్రాస్తుంది, ఈ చిరునామా ఇతర మాడ్యూల్లో పఠనం పైపుగా ఉపయోగించబడుతుంది.
శూన్యమైన రీడ్డేటా () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // ఏ పైపు చదవాలి, 40 బిట్ చిరునామా myRadio.startListening (); // ప్రసారం చేయడాన్ని ఆపివేసి (myRadio.available ()) {అయితే (myRadio.available ()) {myRadio.read (& data, sizeof (data)) ఉంటే బహిర్గతం చేయడం ప్రారంభించండి; } సీరియల్.ప్రింట్ల్న్ (డేటా.టెక్స్ట్); }}
అంతే, మా ప్రోగ్రామింగ్ భాగం ముగిసింది. మీరు ఇక్కడ కొన్ని విషయాలను అర్థం చేసుకోలేకపోతే, దిగువ కోడ్ విభాగంలో ఇవ్వబడిన ఆర్డునోస్ రెండింటి కోసం రెండు ప్రోగ్రామ్లను తనిఖీ చేయండి, విషయాలను బాగా వివరించడానికి నేను వ్యాఖ్య పంక్తులను జోడించాను.
ప్రాసెసింగ్ ప్రోగ్రామ్:
'ప్రాసెసింగ్' అనేది ఓపెన్ సోర్స్ సాఫ్ట్వేర్, దీనిని గ్రాఫిక్స్ డిజైనింగ్ కోసం కళాకారులు ఉపయోగిస్తారు. సాఫ్ట్వేర్ మరియు ఆండ్రాయిడ్ అనువర్తనాలను అభివృద్ధి చేయడానికి ఈ సాఫ్ట్వేర్ ఉపయోగించబడుతుంది. ఇది అభివృద్ధి చేయడం చాలా సులభం మరియు Android డెవలప్మెంట్ IDE కి చాలా పోలి ఉంటుంది. అందువల్ల నేను వివరణను తగ్గించాను.
రెండు చాట్ స్క్రీన్ల ప్రాసెసింగ్ కోడ్ ఇక్కడ ఇవ్వబడింది:
- చాట్ స్క్రీన్ 1 ప్రాసెసింగ్ కోడ్
- చాట్ స్క్రీన్ 2 ప్రాసెసింగ్ కోడ్
వాటిపై కుడి క్లిక్ చేసి, వాటిని డౌన్లోడ్ చేయడానికి 'లింక్ను ఇలా సేవ్ చేయండి..' పై క్లిక్ చేసి, ఆర్డునోస్ ఏర్పాటు చేసిన తర్వాత వాటిని మీ కంప్యూటర్లో తెరవండి. ఈ *.pde ఫైళ్ళను తెరవడానికి మీరు 'ప్రాసెసింగ్' సాఫ్ట్వేర్ను ఇన్స్టాల్ చేసి, ఆపై చాట్ బాక్స్లను తెరవడానికి వాటిని 'రన్' చేయాలి. ప్రశ్నల కోసం వ్యాఖ్య విభాగం తెరిచి ఉంది. ట్రాన్స్మిటర్ మరియు రిసీవర్ మాడ్యూల్ కోసం ప్రాసెసింగ్ స్కెచ్ ఒకేలా ఉంటుంది.
దిగువ కోడ్ విభాగంలో "పోర్ట్ = కొత్త సీరియల్ (ఇది, సీరియల్.లిస్ట్ (), 9600); // 4 వ పోర్ట్ను 9600 బౌడ్రేట్ వద్ద చదువుతుంది" ఇది ఏ పోర్ట్ నుండి డేటా నుండి నిర్ణయించాలో ముఖ్యమైనది.
శూన్య సెటప్ () {పరిమాణం (510,500); పోర్ట్ = కొత్త సీరియల్ (ఇది, సీరియల్.లిస్ట్ (), 9600); // 9600 బాడ్రేట్ ప్రింట్ఎల్ఎన్ (సీరియల్.లిస్ట్ ()) వద్ద 4 వ పోర్ట్ను చదువుతుంది; నేపథ్యం (0); }
ఇక్కడ నేను నా ఆర్డునో నుండి 4 వ పోర్ట్ నుండి డేటాను చదివాను.
కాబట్టి ఉదాహరణ కోసం మీకు COM COM COM COM COM COM ఉంటే
అప్పుడు పై కోడ్ COM నుండి డేటాను చదువుతుంది.
పరీక్ష:
ఇప్పుడు మా ప్రాసెసింగ్ మరియు ఆర్డునో స్కెచ్ సిద్ధంగా ఉన్నందున, ప్రోగ్రామ్ను ఆర్డునోకు అప్లోడ్ చేసి, దాన్ని మీ ల్యాప్టాప్లోకి ప్లగ్ చేయండి. మీ ప్రాసెసింగ్ స్కెచ్ తెరిచి టైప్ చేసి "ఎంటర్" నొక్కండి మీ సందేశం ఇతర ఆర్డునోకు ప్రసారం చేయబడుతుంది, ఇది అందుకున్న వచనాన్ని ఇతర కంప్యూటర్కు కనెక్ట్ చేయబడిన మరొక ప్రాసెసింగ్ అప్లికేషన్లో ప్రదర్శిస్తుంది. పూర్తి ప్రదర్శన కోసం ఈ క్రింది వీడియోను మరింత తనిఖీ చేయండి.
కాబట్టి మీరు ఈ చవకైన ఆర్డునో చాట్ రూమ్ను ఉపయోగించి, ఇంటర్నెట్ కనెక్షన్ లేకుండా మీ స్థానిక ప్రాంతంలోని మీ స్నేహితులు మరియు కుటుంబ సభ్యులతో ఎలా మాట్లాడవచ్చు.