- భాగాలు అవసరం
- లి-ఫైకు సంక్షిప్త పరిచయం
- ఆర్డునో ఉపయోగించి లి-ఫై ట్రాన్స్మిటర్ విభాగం
- ఆర్డునో ఉపయోగించి లి-ఫై రిసీవర్ విభాగం
- లి-ఫై కోసం ఆర్డునో కోడింగ్
లి-ఫై (లైట్ ఫిడిలిటీ) అనేది ఒక ఆధునిక సాంకేతిక పరిజ్ఞానం, ఇది కనిపించే కాంతి వంటి ఆప్టికల్ కమ్యూనికేషన్ ఉపయోగించి డేటాను బదిలీ చేయడానికి అనుమతిస్తుంది. లి-ఫై డేటా కాంతి ద్వారా ప్రయాణించి, ఎల్డిఆర్ లేదా ఫోటోడియోడ్ వంటి కాంతి-సున్నితమైన పరికరాన్ని ఉపయోగించి రిసీవర్ వైపు అర్థం చేసుకోవచ్చు. లి-ఫై కమ్యూనికేషన్ వై-ఫై కంటే 100 రెట్లు వేగంగా ఉంటుంది.
ఇక్కడ ఈ ప్రాజెక్ట్లో, మేము రెండు ఆర్డునోలను ఉపయోగించి లి-ఫై కమ్యూనికేషన్ను ప్రదర్శిస్తాము. ఇక్కడ టెక్స్ట్ డేటా LED మరియు 4x4 కీప్యాడ్ ఉపయోగించి ప్రసారం చేయబడుతుంది. మరియు ఇది LDR ఉపయోగించి రిసీవర్ వైపు డీకోడ్ చేయబడుతుంది. మేము ఇంతకుముందు లి-ఫై గురించి వివరంగా వివరించాము మరియు ఆడియో సిగ్నల్స్ బదిలీ చేయడానికి లి-ఫైని ఉపయోగించాము.
భాగాలు అవసరం
- ఆర్డునో UNO
- LDR సెన్సార్
- 4 * 4 కీప్యాడ్
- 16 * 2 ఆల్ఫాన్యూమరిక్ ఎల్సిడి
- LCD కోసం I2C ఇంటర్ఫేస్ మాడ్యూల్
- బ్రెడ్బోర్డ్
- జంపర్లను కనెక్ట్ చేస్తోంది
- 5 మి.మీ ఎల్.ఇ.డి.
లి-ఫైకు సంక్షిప్త పరిచయం
పైన చర్చించినట్లుగా, లి-ఫై అనేది ఒక అధునాతన కమ్యూనికేషన్ టెక్నాలజీ, ఇది వై-ఫై కమ్యూనికేషన్ కంటే 100 రెట్లు వేగంగా ఉంటుంది. ఈ సాంకేతిక పరిజ్ఞానాన్ని ఉపయోగించి, కనిపించే కాంతి వనరులను ఉపయోగించి డేటాను బదిలీ చేయవచ్చు. మీ కాంతి మూలాన్ని ఉపయోగించడం ద్వారా మీరు హై-స్పీడ్ ఇంటర్నెట్కు ప్రాప్యత చేయగలిగితే g హించుకోండి. ఇది చాలా ఆసక్తికరంగా అనిపించలేదా?
డేటా ప్రసారం కోసం లి-ఫై కనిపించే కాంతిని కమ్యూనికేషన్ మాధ్యమంగా ఉపయోగిస్తుంది. ఒక LED ఒక కాంతి వనరుగా పనిచేయగలదు మరియు ఫోటోడియోడ్ ట్రాన్స్సీవర్గా పనిచేస్తుంది, ఇది కాంతి సంకేతాలను అందుకుంటుంది మరియు వాటిని తిరిగి ప్రసారం చేస్తుంది. ట్రాన్స్మిటర్ వైపు కాంతి పల్స్ను నియంత్రించడం ద్వారా, మేము ప్రత్యేకమైన డేటా నమూనాలను పంపవచ్చు. ఈ దృగ్విషయం చాలా అధిక వేగంతో సంభవిస్తుంది మరియు మానవ కన్ను ద్వారా చూడలేము. అప్పుడు రిసీవర్ వైపు, ఫోటోడియోడ్ లేదా లైట్-డిపెండెంట్ రెసిస్టర్ (LDR) డేటాను ఉపయోగకరమైన సమాచారంగా మారుస్తుంది.
ఆర్డునో ఉపయోగించి లి-ఫై ట్రాన్స్మిటర్ విభాగం
పై చిత్రంలో చూపినట్లుగా, లి-ఫై కమ్యూనికేషన్ యొక్క ట్రాన్స్మిటర్ భాగంలో, కీప్యాడ్ ఇక్కడ ఇన్పుట్గా ఉపయోగించబడుతుంది. అంటే మేము కీప్యాడ్ ఉపయోగించి ప్రసారం చేయవలసిన వచనాన్ని ఎంచుకుంటాము. అప్పుడు కంట్రోల్ యూనిట్ ద్వారా సమాచారం ప్రాసెస్ చేయబడుతుంది, ఇది మా విషయంలో ఆర్డునో తప్ప మరొకటి కాదు. ఆర్డునో సమాచారాన్ని బైనరీ పప్పులుగా మారుస్తుంది, ఇది ప్రసారం కోసం LED మూలానికి ఇవ్వబడుతుంది. అప్పుడు ఈ డేటాను LED లైట్కు తినిపిస్తారు, ఇది కనిపించే కాంతి పప్పులను రిసీవర్ వైపుకు పంపుతుంది.
ట్రాన్స్మిటర్ విభాగం యొక్క సర్క్యూట్ రేఖాచిత్రం:
ట్రాన్స్మిటర్ వైపు హార్డ్వేర్ సెటప్:
ఆర్డునో ఉపయోగించి లి-ఫై రిసీవర్ విభాగం
రిసీవర్ విభాగంలో, LDR సెన్సార్ ట్రాన్స్మిటర్ వైపు నుండి కనిపించే కాంతి పప్పులను అందుకుంటుంది మరియు దానిని అర్థమయ్యే విద్యుత్ పప్పులుగా మారుస్తుంది, ఇది ఆర్డునో (కంట్రోల్ యూనిట్) కు ఇవ్వబడుతుంది. ఆర్డునో ఈ పల్స్ను స్వీకరించి దానిని వాస్తవ డేటాగా మార్చి 16x2 ఎల్సిడి డిస్ప్లేలో ప్రదర్శిస్తుంది.
రిసీవర్ విభాగం యొక్క సర్క్యూట్ రేఖాచిత్రం:
స్వీకర్త వైపు హార్డ్వేర్ సెటప్:
లి-ఫై కోసం ఆర్డునో కోడింగ్
పైన చూపిన విధంగా, లి-ఫై ట్రాన్స్మిటర్ మరియు రిసీవర్ కోసం మాకు రెండు విభాగాలు ఉన్నాయి. ప్రతి విభాగానికి పూర్తి సంకేతాలు ట్యుటోరియల్ దిగువన ఇవ్వబడ్డాయి మరియు సంకేతాల యొక్క దశలవారీ వివరణ క్రింద ఇవ్వబడింది:
ఆర్డునో లి-ఫై ట్రాన్స్మిటర్ కోడ్:
ట్రాన్స్మిటర్ వైపు, ఆర్డునో నానో 4x4 కీప్యాడ్ మరియు LED తో ఉపయోగించబడుతుంది. మొదట, అన్ని డిపెండెంట్ లైబ్రరీ ఫైల్స్ డౌన్లోడ్ చేయబడి, ఆర్డునో ఐడిఇ ద్వారా ఆర్డునోకు ఇన్స్టాల్ చేయబడతాయి. ఇక్కడ, కీప్యాడ్ లైబ్రరీ 4 * 4 కీప్యాడ్ను ఉపయోగించడానికి ఉపయోగించబడుతుంది, దీనిని ఈ లింక్ నుండి డౌన్లోడ్ చేసుకోవచ్చు. ఆర్డునోతో 4x4 కీప్యాడ్ను ఇంటర్ఫేస్ చేయడం గురించి ఇక్కడ మరింత తెలుసుకోండి.
# చేర్చండి
లైబ్రరీ ఫైళ్ళను విజయవంతంగా వ్యవస్థాపించిన తరువాత, లేదు. మేము ఇక్కడ 4 * 4 కీప్యాడ్ను ఉపయోగించినందున రెండింటికి 4 ఉన్న అడ్డు వరుసలు మరియు కాలమ్ విలువలు.
const బైట్ ROW = 4; const బైట్ COL = 4; చార్ కీస్కోడ్ = { {'1', '2', '3', 'ఎ'}, {'4', '5', '6', 'బి'}, {'7', '8', ' 9 ',' సి '}, {' * ',' 0 ',' # ',' డి '} };
అప్పుడు, ఆర్డునో పిన్స్ 4 * 4 కీప్యాడ్తో ఇంటర్ఫేస్ చేయడానికి ఉపయోగించబడతాయి. మా విషయంలో, మేము వరుసగా R1, R2, R3, R4 కోసం A5, A4, A3 మరియు A2 లను మరియు C1, C2, C3 మరియు C4 లకు A1, A0, 12, 11 ను ఉపయోగించాము.
బైట్ rowPin = {A5, A4, A3, A2}; బైట్ కోల్పిన్ = {A1, A0, 12, 11}; కీప్యాడ్ customKeypad = కీప్యాడ్ (makeKeymap (కీస్కోడ్), rowPin, colPin, ROW, COL);
సెటప్ () లోపల, అవుట్పుట్ పిన్ నిర్వచించబడింది, ఇక్కడ LED మూలం కనెక్ట్ చేయబడింది. అలాగే, పరికరాన్ని ఆన్ చేసేటప్పుడు ఇది ఆఫ్లో ఉంచబడుతుంది.
శూన్య సెటప్ () { పిన్మోడ్ (8, OUTPUT); డిజిటల్ రైట్ (8, తక్కువ); }
ఇన్సైడ్ అయితే లూప్, కీప్యాడ్ నుండి అందుకున్న విలువలు ఉపయోగించి చదివే customKeypad.getKey () మరియు అది పోల్చబడుతుంది ఉంటే- else ప్రతి కీ ప్రెస్లపై ఏకైక పప్పులు ఉత్పత్తి, లూప్. అన్ని కీలక విలువలకు టైమర్ విరామాలు ప్రత్యేకంగా ఉంచబడినట్లు కోడ్లో చూడవచ్చు.
చార్ customKey = customKeypad.getKey (); if (customKey) { if (customKey == '1') { DigitalWrite (8, HIGH); ఆలస్యం (10); డిజిటల్ రైట్ (8, తక్కువ); }
ఆర్డునో లి-ఫై రిసీవర్ కోడ్:
Li-Fi రిసీవర్ వైపు, సర్క్యూట్ రేఖాచిత్రంలో చూపిన విధంగా Arduino UNO ఒక LDR సెన్సార్తో అనుసంధానించబడి ఉంది. ఇక్కడ LDR సెన్సార్ వోల్టేజ్ డివైడర్ సర్క్యూట్ను రూపొందించడానికి రెసిస్టర్తో సిరీస్లో అనుసంధానించబడి ఉంటుంది మరియు సెన్సార్ నుండి అనలాగ్ వోల్టేజ్ అవుట్పుట్ ఆర్డ్యునోకు ఇన్పుట్ సిగ్నల్గా ఇవ్వబడుతుంది. ఇక్కడ మేము తగ్గించడానికి LCD తో I2C మాడ్యూల్ ఉపయోగిస్తున్నాము. ఈ మాడ్యూల్కు 2 డేటా పిన్లు SCL / SDA మరియు 2 పవర్ పిన్లు మాత్రమే అవసరం కాబట్టి Arduino తో కనెక్షన్లు.
I2C కమ్యూనికేషన్ కోసం Wire.h , LCD కోసం LiquidCrystal_I2C.h వంటి కోడ్లో అవసరమైన అన్ని లైబ్రరీ ఫైల్లను చేర్చడం ద్వారా కోడ్ను ప్రారంభించండి. ఈ లైబ్రరీలను Arduino తో ముందే ఇన్స్టాల్ చేస్తారు, కాబట్టి వాటిని డౌన్లోడ్ చేయవలసిన అవసరం లేదు.
# చేర్చండి
16 * 2 ఆల్ఫాన్యూమరిక్ ఎల్సిడి కోసం I2C మాడ్యూల్ను ఉపయోగించడం కోసం, లిక్విడ్క్రిస్టల్_ఐ 2 సి క్లాస్ ఉపయోగించి దీన్ని కాన్ఫిగర్ చేయండి. ఇక్కడ మన విషయంలో వరుసగా 0x3f, 16, మరియు 2 ఉన్న చిరునామా, అడ్డు వరుస మరియు కాలమ్ సంఖ్యను పాస్ చేయాలి.
లిక్విడ్ క్రిస్టల్_ఐ 2 సి ఎల్సిడి (0x3f, 16, 2);
సెటప్ () లోపల, సిగ్నల్ స్వీకరించడానికి పల్స్ ఇన్పుట్ పిన్ను ప్రకటించండి. అప్పుడు LCD లో స్వాగత సందేశాన్ని ముద్రించండి, ఇది ప్రాజెక్ట్ ప్రారంభంలో ప్రదర్శించబడుతుంది.
శూన్య సెటప్ () { పిన్మోడ్ (8, INPUT); సీరియల్.బెగిన్ (9600); lcd.init (); lcd.backlight (); lcd.setCursor (0, 0); lcd.print ("స్వాగతం"); lcd.setCursor (0, 1); lcd.print ("CIRCUIT DIGEST"); ఆలస్యం (2000); lcd.clear (); }
అయితే లూప్ లోపల, పల్స్ఇన్ ఫంక్షన్ ఉపయోగించి LDR నుండి పల్స్ ఇన్పుట్ వ్యవధి లెక్కించబడుతుంది మరియు పల్స్ రకం నిర్వచించబడుతుంది, ఇది మన విషయంలో తక్కువ. డీబగ్గింగ్ ప్రయోజనాల కోసం విలువ సీరియల్ మానిటర్లో ముద్రించబడుతుంది. వేర్వేరు సెటప్లకు ఇది భిన్నంగా ఉండవచ్చు కాబట్టి, వ్యవధిని తనిఖీ చేయాలని సూచించబడింది.
సంతకం చేయని దీర్ఘ వ్యవధి = పల్స్ఇన్ (8, అధిక); సీరియల్.ప్రింట్ల్న్ (వ్యవధి);
అన్ని ట్రాన్స్మిటర్ పప్పుల వ్యవధిని తనిఖీ చేసిన తరువాత, మనకు ఇప్పుడు 16 పల్స్ వ్యవధి శ్రేణులు ఉన్నాయి, ఇది సూచన కోసం గుర్తించబడింది. ఇప్పుడు ప్రసారం చేయబడిన ఖచ్చితమైన డేటాను పొందడానికి IF-ELSE లూప్ ఉపయోగించి వాటిని సరిపోల్చండి. కీ 1 కోసం ఒక నమూనా లూప్ క్రింద ఇవ్వబడింది:
if (వ్యవధి> 10000 && వ్యవధి <17000) { lcd.setCursor (0, 0); lcd.print ("స్వీకరించబడింది: 1"); }
ఆర్డునో ఉపయోగించి లి-ఫై ట్రాన్స్మిటర్ మరియు రిసీవర్
Arduinos రెండింటిలోనూ పూర్తి కోడ్ను అప్లోడ్ చేసిన తరువాత, రిసీవర్ వైపు కీప్యాడ్లోని ఏదైనా బటన్ను నొక్కండి మరియు అదే అంకె 16x2 LCD లో రిసీవర్ వైపు ప్రదర్శించబడుతుంది.
ఈ విధంగా కాంతి ద్వారా డేటాను ప్రసారం చేయడానికి లి-ఫై ఉపయోగపడుతుంది. మీరు వ్యాసాన్ని ఆస్వాదించారని మరియు దాని నుండి క్రొత్తదాన్ని నేర్చుకున్నారని ఆశిస్తున్నాము, మీకు ఏమైనా సందేహం ఉంటే, మీరు వ్యాఖ్య విభాగాన్ని ఉపయోగించవచ్చు లేదా ఫోరమ్లలో అడగవచ్చు.