- अवयव आवश्यक
- संक्षिप्त परिचय Li-Fi
- Arduino का उपयोग करके Li-Fi ट्रांसमीटर सेक्शन
- Arduino का उपयोग करके Li-Fi रिसीवर सेक्शन
- ली-फाई के लिए Arduino कोडिंग
Li-Fi (लाइट फिडेलिटी) एक उन्नत तकनीक है जो दृश्य प्रकाश जैसे ऑप्टिकल संचार का उपयोग करके डेटा स्थानांतरित करने की अनुमति देती है। ली-फाई डेटा प्रकाश के माध्यम से यात्रा कर सकता है और फिर एलडीआर या फोटोडायोड जैसे किसी भी प्रकाश-संवेदनशील उपकरण का उपयोग करके रिसीवर की तरफ व्याख्या की जा सकती है। वाई-फाई की तुलना में Li-Fi संचार 100 गुना तेज हो सकता है।
यहाँ इस परियोजना में, हम दो Arduino का उपयोग करके Li-Fi संचार का प्रदर्शन करेंगे । यहां एलईडी और 4x4 कीपैड का उपयोग करके टेक्स्ट डेटा प्रसारित किया जाता है। और यह LDR का उपयोग करके रिसीवर की तरफ डिकोड किया जाता है। हमने पहले Li-Fi के बारे में विस्तार से बताया और ऑडियो संकेतों को स्थानांतरित करने के लिए Li-Fi का उपयोग किया।
अवयव आवश्यक
- Arduino UNO
- LDR सेंसर
- 4 * 4 कीपैड
- 16 * 2 अल्फ़ान्यूमेरिक एलसीडी
- एलसीडी के लिए I2C इंटरफ़ेस मॉड्यूल
- ब्रेड बोर्ड
- जंपर्स को जोड़ना
- 5 मिमी एलईडी
संक्षिप्त परिचय Li-Fi
जैसा कि ऊपर चर्चा की गई है, ली-फाई एक उन्नत संचार तकनीक है जो वाई-फाई संचार की तुलना में 100 गुना तेज हो सकती है। इस तकनीक का उपयोग करते हुए, दृश्यमान प्रकाश स्रोतों का उपयोग करके डेटा को स्थानांतरित किया जा सकता है। कल्पना कीजिए, यदि आप अपने प्रकाश स्रोत का उपयोग करके उच्च गति के इंटरनेट तक पहुंच सकते हैं। क्या यह बहुत दिलचस्प नहीं है?
Li-Fi डेटा के प्रसारण के लिए संचार माध्यम के रूप में दृश्यमान प्रकाश का उपयोग करता है। एक एलईडी प्रकाश स्रोत के रूप में कार्य कर सकता है और फोटोडायोड एक ट्रान्सीवर के रूप में कार्य करता है जो प्रकाश संकेतों को प्राप्त करता है और उन्हें वापस प्रसारित करता है। ट्रांसमीटर की तरफ प्रकाश नाड़ी को नियंत्रित करके, हम अद्वितीय डेटा पैटर्न भेज सकते हैं। यह घटना बेहद तेज गति से होती है और इसे मानव आंख से नहीं देखा जा सकता है। फिर रिसीवर की तरफ, फोटोडियोड या लाइट-डिपेंडेंट रेसिस्टर्स (LDR) डेटा को उपयोगी जानकारी में परिवर्तित करता है।
Arduino का उपयोग करके Li-Fi ट्रांसमीटर सेक्शन
जैसा कि ऊपर चित्र में दिखाया गया है, ली-फाई संचार के ट्रांसमीटर भाग में, कीपैड का उपयोग यहां इनपुट के रूप में किया गया है। इसका मतलब है कि हम कीपैड का उपयोग करके प्रेषित होने वाले पाठ का चयन करेंगे। फिर सूचना को नियंत्रण इकाई द्वारा संसाधित किया जाता है जो हमारे मामले में Arduino के अलावा कुछ भी नहीं है। Arduino बाइनरी दालों में सूचना को परिवर्तित करता है जिसे ट्रांसमिशन के लिए एक एलईडी स्रोत में खिलाया जा सकता है। फिर इन आंकड़ों को एलईडी लाइट को खिलाया जाता है जो रिसीवर के पक्ष में दृश्य प्रकाश दालों को भेजता है।
ट्रांसमीटर अनुभाग का सर्किट आरेख:
ट्रांसमीटर साइड के लिए हार्डवेयर सेटअप:
Arduino का उपयोग करके Li-Fi रिसीवर सेक्शन
रिसीवर सेक्शन में, LDR सेंसर ट्रांसमीटर साइड से दृश्य प्रकाश दालों को प्राप्त करता है और इसे व्याख्यात्मक विद्युत दालों में परिवर्तित करता है, जिसे Arduino (कंट्रोल यूनिट) को खिलाया जाता है। Arduino इस पल्स को प्राप्त करता है और इसे वास्तविक डेटा में परिवर्तित करता है और इसे 16x2 LCD डिस्प्ले पर प्रदर्शित करता है।
रिसीवर अनुभाग का सर्किट आरेख:
रिसीवर साइड के लिए हार्डवेयर सेटअप:
ली-फाई के लिए Arduino कोडिंग
जैसा कि ऊपर दिखाया गया है, हमारे पास Li-Fi ट्रांसमीटर और रिसीवर के लिए दो खंड हैं। प्रत्येक अनुभाग के लिए पूर्ण कोड ट्यूटोरियल के निचले भाग में दिए गए हैं और कोड का एक स्टेपवाइज विवरण नीचे दिया गया है:
Arduino Li-Fi ट्रांसमीटर कोड:
ट्रांसमीटर की तरफ, 4x4 कीपैड और एलईडी के साथ Arduino नैनो का उपयोग किया जाता है। सबसे पहले, सभी आश्रित पुस्तकालय फ़ाइलों को डाउनलोड करके Arduino IDE के माध्यम से Arduino पर स्थापित किया जाता है। यहां, कीपैड लाइब्रेरी का उपयोग 4 * 4 कीपैड का उपयोग करने के लिए किया जाता है जिसे इस लिंक से डाउनलोड किया जा सकता है। यहाँ Arduino के साथ 4x4 कीपैड को इंटरफेस करने के बारे में अधिक जानें।
#शामिल
लाइब्रेरी फ़ाइलों की सफल स्थापना के बाद, सं। पंक्तियों और स्तंभ मानों के लिए, जो दोनों के लिए 4 है क्योंकि हमने यहां 4 * 4 कीपैड का उपयोग किया है।
const बाइट ROW = 4; const बाइट COL = 4; char keyscode = { {1], '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', ' 9 ',' सी '}, {' * ',' 0 ',' # ',' डी '} };
फिर, Arduino पिन को परिभाषित किया जाता है जो कि 4 * 4 कीपैड के साथ इंटरफेस करने के लिए उपयोग किया जाता है। हमारे मामले में, हमने क्रमशः R1, R2, R3, R4 के लिए A5, A4, A3 और A2 का उपयोग किया है, और C1, C2, C3 और C4 के लिए क्रमशः A1, A0, 12, 11 का उपयोग किया है।
बाइट रोपिन = {ए 5, ए 4, ए 3, ए 2}; बाइट कॉलपिन = {A1, A0, 12, 11}; कीपैड customKeypad = कीपैड (MakeKeymap (कीकोड), rowPin, colPin, ROW, COL);
अंदर सेटअप (), आउटपुट पिन को परिभाषित किया गया है, जहां एलईडी स्रोत जुड़ा हुआ है। साथ ही, डिवाइस को चालू करते समय इसे बंद रखा जाता है।
शून्य सेटअप () { pinMode (8, OUTPUT); digitalWrite (8, LOW); }
अंदर है, जबकि पाश, कीपैड से प्राप्त मानों का उपयोग कर पाठ किया जाता है customKeypad.getKey () और उस में तुलना की जाती है , तो-और कुछ पाश, प्रत्येक कुंजी दबाव में अद्वितीय दालों उत्पन्न करने के लिए। यह कोड में देखा जा सकता है कि टाइमर अंतराल को सभी प्रमुख मूल्यों के लिए अद्वितीय रखा गया है।
char customKey = customKeypad.getKey (); if (customKey) { if (customKey == '1') { digitalWrite (8, HIGH); देरी (10); digitalWrite (8, LOW); }
Arduino Li-Fi रिसीवर कोड:
Li-Fi रिसीवर पक्ष में, Arduino UNO को LDR सेंसर के साथ इंटरैक्ट किया जाता है जैसा कि सर्किट आरेख में दिखाया गया है। यहां एलडीआर सेंसर एक वोल्टेज डिवाइडर सर्किट बनाने के लिए एक प्रतिरोधक के साथ श्रृंखला में जुड़ा हुआ है और सेंसर से एनालॉग वोल्टेज आउटपुट को इनपुट सिग्नल के रूप में Arduino को खिलाया जाता है। यहाँ हम कोई कम करने के लिए एलसीडी के साथ I2C मॉड्यूल का उपयोग कर रहे हैं। इस मॉड्यूल के रूप में Arduino के साथ कनेक्शन के लिए केवल 2 डेटा पिन SCL / SDA और 2 पावर पिन की आवश्यकता होती है।
की तरह कोड में सभी आवश्यक पुस्तकालय फ़ाइलें शामिल कर कोड शुरू Wire.h I2C संचार, के लिए LiquidCrystal_I2C.h एलसीडी के लिए, आदि इन पुस्तकालयों Arduino के साथ पहले से स्थापित किया जाएगा, तो वहाँ उन्हें डाउनलोड करने के लिए कोई जरूरत नहीं है।
#शामिल
16 * 2 अल्फ़ान्यूमेरिक एलसीडी के लिए I2C मॉड्यूल का उपयोग करने के लिए, इसे LiquidCrystal_I2C वर्ग का उपयोग करके कॉन्फ़िगर करें । यहां हमें अपने मामले में क्रमशः पता, पंक्ति, और कॉलम संख्या 0x3f, 16 और 2 पास करनी होगी।
लिक्विड क्रिस्टल_आई 2 सी एलसीडी (0x3f, 16, 2);
सेटअप के अंदर (), सिग्नल प्राप्त करने के लिए पल्स इनपुट पिन घोषित करें। फिर एलसीडी पर एक स्वागत योग्य संदेश प्रिंट करें जो परियोजना के आरंभ के दौरान प्रदर्शित किया जाएगा।
शून्य सेटअप () { pinMode (8, INPUT); सीरियल.बेगिन (9600); lcd.init (); एलसीडी प्रकाश(); lcd.setCursor (0, 0); lcd.print ("आपका स्वागत है"); lcd.setCursor (0, 1); lcd.print ("CIRCUIT DIGEST"); देरी (2000); lcd.clear (); }
अंदर है, जबकि पाश, लीडर से नाड़ी इनपुट अवधि का उपयोग कर गणना की जाती है pulseIn समारोह, और नाड़ी के प्रकार परिभाषित किया गया है जो हमारे मामले में कम है। मूल्य डिबगिंग उद्देश्यों के लिए धारावाहिक मॉनिटर पर मुद्रित किया जाता है। यह अवधि की जांच करने का सुझाव दिया गया है, क्योंकि यह अलग-अलग सेटअपों के लिए भिन्न हो सकता है।
अहस्ताक्षरित लंबी अवधि = नाड़ी (8, उच्च); सीरीयल.प्रिंट (अवधि);
सभी ट्रांसमीटर दालों के लिए अवधि की जाँच करने के बाद, अब हमारे पास 16 पल्स अवधि सीमाएं हैं, जो संदर्भ के लिए नीचे दी गई हैं। अब उनके द्वारा प्रसारित किए गए सटीक डेटा प्राप्त करने के लिए IF-ELSE लूप का उपयोग करके उनकी तुलना करें । कुंजी 1 के लिए एक नमूना लूप नीचे दिया गया है:
अगर (अवधि> 10000 && अवधि <17000) { lcd.setCursor (0, 0); lcd.print ("प्राप्त: 1"); }
Arduino का उपयोग करके Li-Fi ट्रांसमीटर और रिसीवर
दोनों Arduinos में पूरा कोड अपलोड करने के बाद, रिसीवर की तरफ कीपैड पर किसी भी बटन को दबाएं और उसी अंक को 16x2 एलसीडी पर रिसीवर की तरफ से प्रदर्शित किया जाएगा।
इस तरह से प्रकाश के माध्यम से डेटा संचारित करने के लिए Li-Fi का उपयोग किया जा सकता है। आशा है कि आपने लेख का आनंद लिया है और इसमें से कुछ नया सीखा है, यदि आपको कोई संदेह है, तो आप टिप्पणी अनुभाग का उपयोग कर सकते हैं या मंचों में पूछ सकते हैं।