- कार्य स्पष्टीकरण:
- आवश्यक घटक:
- सर्किट आरेख:
- NRF24L01 + वायरलेस ट्रांसीवर मॉड्यूल के साथ काम करना:
- Arduinos प्रोग्रामिंग:
- प्रसंस्करण कार्यक्रम:
- परिक्षण:
कर्मियों और गोपनीय डेटा को साझा करने के लिए एक स्थानीय नेटवर्क बनाना हमारी आधुनिक दुनिया में एक आम आदमी के लिए लगभग असंभव हो गया है। यह मुख्य रूप से है क्योंकि व्हाट्सएप, फेसबुक, हैंगआउट और लगभग हर चीज जैसे सभी सामान्य चैट विधियों में एक इंटरनेट कनेक्शन शामिल है।
क्या होगा, अगर हम इंटरनेट के माध्यम के बिना डेटा साझा कर सकते हैं ?
यह कितना अच्छा होगा यदि आप अपने घर या कार्यस्थल के लोगों के साथ नेट पैक या इंटरनेट कनेक्शन के बिना संवाद कर सकते हैं ?
क्या होगा यदि हम अपनी चैट-स्क्रीन को अपनी कल्पनाओं के साथ अनुकूलित कर सकें ?
यह सब एक माइक्रोकंट्रोलर और एक वायरलेस ट्रांसमिशन माध्यम के साथ संभव है। यह Arduino चैट रूम nRF24L01 प्रोजेक्ट का उपयोग करके आपको अपने स्थानीय क्षेत्र में कम लागत वाला चैट रूम स्थापित करने के लिए मार्गदर्शन करेगा।
तो चलो अंदर कूदते हैं और देखें कि यह कैसे काम करता है।
कार्य स्पष्टीकरण:
मूल रूप से इस चीज़ को काम करने के लिए हमें एक जोड़ी Arduino बोर्डों और सस्ते वायरलेस मॉड्यूल की आवश्यकता होगी। वायरलेस मॉड्यूल जिनका हम यहां उपयोग कर रहे हैं वे nRF24L01 हैं । इन मॉड्यूल को चुनने का कारण यह है कि ये ज़िगबी के उत्तराधिकारी हैं और सेट अप कनेक्शन के साथ काम करना आसान है। इसके अलावा ये मॉड्यूल 2.4 GHz (ISM बैंड) पर काम करते हैं, जिसमें फ़्रीक्वेंसी होपिंग स्प्रेड स्पेक्ट्रम और शॉक बर्स्ट विकल्प होते हैं, जो हमें हस्तक्षेप की समस्याओं से आराम दिलाता है।
हमारे Arduino और NRF24L01 एक सीरियल संचार स्थापित करने के लिए एक साथ जुड़े हुए हैं ताकि वे एक दूसरे से बात कर सकें। NRF24L01 आधे डुप्लेक्स ट्रांसीवर मॉड्यूल हैं, इसलिए वे डेटा भेज और प्राप्त कर सकते हैं। डेटा उपयोगकर्ता से एकत्र किया जाता है और इस डेटा को किसी भी (या एक विशेष) मॉड्यूल द्वारा प्राप्त किया जा सकता है और इसे अपनी स्क्रीन पर प्रदर्शित किया जा सकता है।
परंतु!!!!! क्या हम Arduino के डिबग स्क्रीन का उपयोग करके चैट करने जा रहे हैं? बिलकूल नही। हम 'प्रोसेसिंग' की मदद से अपनी स्वयं की चैट स्क्रीन को बनाने और कस्टमाइज़ करने जा रहे हैं। प्रोसेसिंग एक सॉफ्टवेयर है जो UART का उपयोग करके Arduino के साथ संचार करने में सक्षम है। हम प्रसंस्करण भाषा के साथ एक.exe फ़ाइल बनाएंगे, जो जावा रनटाइम के साथ किसी भी कंप्यूटर पर चल सकती है। चैट करने के लिए हमें बस अपने Arduino में प्लग करना होगा और इस.exe फ़ाइल, और Booooom को खोलना होगा !! हम अपने निजीकृत पूरी तरह से निःशुल्क चैट रूम में हैं ।
यह परियोजना सिर्फ चैट रूम में दो सदस्यों को जोड़ने तक सीमित है, लेकिन nRF24L01 में 6 पाइपलाइन हैं, और इसलिए हमारे चैट रूम में अधिकतम 6 सदस्य हो सकते हैं। यह चार्ट कमरा nRF24L01 मॉड्यूल के आधार पर 100 मीटर की सीमा के भीतर काम कर सकता है ।
तो चलिए शॉपिंग करते हैं !!!!
आवश्यक घटक:
- Arduino (कोई भी संस्करण या मॉडल) - 2Nos
- nRF24L01 + वायरलेस ट्रांसीवर मॉड्यूल - 2Nos
- 3.3 वोल्टेज नियामक - 2Nos। (अनिवार्य नहीं)
- तारों को जोड़ना
- ब्याज (लोलज़)
सर्किट आरेख:
ArRino nRF24L01 के साथ मेगा:
ArFino नैनो nRF24L01 के साथ:
हमारी परियोजना में कोई जटिल कनेक्शन शामिल नहीं है। मैंने एक Arduino मेगा और एक Arduino नैनो का उपयोग किया है और nRF24L01 के साथ उनके कनेक्शन ऊपर दिखाए गए हैं। आप किसी भी Arduino मॉडल का उपयोग कर सकते हैं।
NRF24L01 + वायरलेस ट्रांसीवर मॉड्यूल के साथ काम करना:
हालाँकि, शोर से मुक्त काम करने के लिए हमारे nRF24L01 को बनाने के लिए हम निम्नलिखित बातों पर विचार करना चाहते हैं। मैं इस nRF24L01 + पर लंबे समय से काम कर रहा हूं और सीखा है कि निम्नलिखित बिंदु आपको दीवार पर हिट होने में मदद कर सकते हैं।
1. बाजार में nRF24L01 + के अधिकांश मॉड्यूल नकली हैं। ईबे और अमेज़ॅन पर हम जो सस्ते मिल सकते हैं वे सबसे खराब हैं (चिंता न करें, कुछ ट्विक्स के साथ हम उन्हें काम दे सकते हैं)
2. मुख्य समस्या बिजली की आपूर्ति है आपका कोड नहीं। अधिकांश कोड ऑनलाइन ठीक से काम करेंगे, मेरे पास खुद एक काम करने वाला कोड है जिसे मैंने व्यक्तिगत रूप से परीक्षण किया है, मुझे बताएं कि क्या आपको उनकी आवश्यकता है।
3. ध्यान दें क्योंकि जो मॉड्यूल NRF24L01 + के रूप में मुद्रित होते हैं वे वास्तव में Si24Ri (हाँ एक चीनी उत्पाद) हैं।
4. क्लोन और नकली मॉड्यूल अधिक बिजली की खपत करेंगे, इसलिए nRF24L01 + डेटाशीट के आधार पर अपने पावर सर्किट को विकसित न करें, क्योंकि Si24Ri में 250mA के बारे में उच्च वर्तमान खपत होगी।
5. वोल्टेज तरंगों और वर्तमान तरंगों से सावधान रहें, ये मॉड्यूल बहुत संवेदनशील हैं और आसानी से जल सकते हैं। (;-(अब तक 2 मॉड्यूल को तला हुआ)
6. मॉड्यूल के Vcc और Gnd के पार युगल संधारित्र (10uF और 0.1uF) को जोड़ने से आपकी आपूर्ति शुद्ध होने में मदद मिलती है और यह अधिकांश मॉड्यूल के लिए काम करता है।
फिर भी अगर आपको टिप्पणी अनुभाग पर रिपोर्ट करने या इसके माध्यम से पढ़ने में समस्या है।
Arduinos प्रोग्रामिंग:
Arduino नैनो और मेगा दोनों के लिए कार्यक्रम सीई और सीएस पिन में परिवर्तन के लिए समान होगा। मैं इस कार्यक्रम को छोटे खंडों में विभाजित करके समझाऊंगा।
चूंकि Arduino और nRF24L01 SPI के माध्यम से संचार करते हैं, इसलिए हमने SPI लाइब्रेरी के लिए कॉल किया है। हमने अपने RF मॉड्यूल के काम करने के लिए अपने Maniacbug RF24 लिब को भी शामिल किया है। फ़ाइल को यहां से डाउनलोड करें, और उन्हें अपने आईडीई में जोड़ें।
#शामिल
हमारे NRF मॉड्यूल क्रमशः 8 और 10 से CE और CS से जुड़े हुए हैं।
RF24 myRadio (8, 10);
हम एक संरचित डेटा पैकेज बनाते हैं जिसे पैकेज कहा जाता है । चर पाठ का उपयोग हवा पर डेटा प्रसारित करने के लिए किया जाएगा।
संरचना पैकेज {चार पाठ; // हवा पर प्रसारित करने के लिए पाठ}; typedef संरचना पैकेज पैकेज; पैकेज डेटा;
में शून्य सेटअप () समारोह, हम 9600 के बॉड दर और सेटअप मिन बिजली की खपत और 250kbps गति के साथ 115 के लिए हमारी मॉड्यूल आरंभ कर देगा। आप बाद में इन मूल्यों के साथ फील कर सकते हैं।
शून्य सेटअप () {Serial.begin (9600); देरी (1000); //Serial.print("Setup Initialized "); myRadio.begin (); myRadio.setChannel (115); // 115 बैंड ऊपर WIFI सिग्नल myRadio.setPALevel (RF24_PA_MIN); // MIN पावर कम रेज myRadio.setDataRate (RF24_250KBPS); // न्यूनतम गति}
मॉड्यूल को ट्रांसमिशन मोड में काम करने के लिए बनाया गया है यदि डेटा सीरियल बफर के माध्यम से प्राप्त होता है, अन्यथा यह रिसीवर मोड में होगा जो हवा पर डेटा की तलाश कर रहा है। उपयोगकर्ता के डेटा को एक चार्ट में संग्रहीत किया जाता है और उन्हें प्रेषित करने के लिए WriteData () में भेजा जाता है।
शून्य लूप () {जबकि (Serial.available ()> 0) // उपयोगकर्ता से मान प्राप्त करें {val = Serial.peek (); if (इंडेक्स <19) // सरणी के आकार से एक कम {inChar = Serial.read (); // एक चरित्र पढ़ें inData =Char; // इसे इंडेक्स ++ स्टोर करें; // वृद्धि जहां अगले लिखने के लिए inData = '\ 0'; // नल स्ट्रिंग को समाप्त करता है} यदि (वैल == '#') {strcpy (data.text, inData); राइटडाटा (); // मॉड्यूल को ट्रांसमिशन मोड में रखें जबकि (इंडेक्स! = 0) {inData = ''; सूचकांक--; }}} ReadData (); // मॉड्यूल प्राप्त मोड रखें}
void WriteData () फ़ंक्शन 0xF0F0F0F0AA पते पर डेटा लिखता है, इस पते का उपयोग अन्य मॉड्यूल पर लेखन पाइप के रूप में किया जाता है।
शून्य लिखता () {myRadio.stopListening (); // प्राप्त करना बंद करो और myRadio.openWritingPipe (0xF0F0F0F066) ट्रांसमिनिट शुरू करो; // इस 40-बिट एड्रेस myRadio.write (और डेटा, sizeof (डेटा)) पर डेटा भेजता है; देरी (300); }
शून्य रीडडाटा () फ़ंक्शन इस पते पर 0xF0F0F0F066 पर डेटा लिखता है, इस पते का उपयोग अन्य मॉड्यूल पर रीडिंग पाइप के रूप में किया जाता है।
शून्य रीडडाटा () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // कौन सा पाइप पढ़ना है, 40 बिट एड्रेस myRadio.startListening (); // ट्रांसमिट करना बंद करें और यदि (myRadio.available ()) {जबकि (myRadio.available ())) {myRadio.read (& data, sizeof (data)) फिर से शुरू हो रहा है; } Serial.println (data.text); }}
यही है, हमारा प्रोग्रामिंग हिस्सा खत्म हो गया है। यदि आप यहां कुछ चीजें नहीं समझ सकते हैं, तो नीचे दिए गए कोड अनुभाग में दिए गए दोनों Arduinos के लिए दो कार्यक्रमों की जांच करें, मैंने चीजों को बेहतर तरीके से समझाने के लिए टिप्पणी लाइनें जोड़ी हैं।
प्रसंस्करण कार्यक्रम:
Is प्रोसेसिंग’ ओपन सोर्स सॉफ्टवेयर है जो ग्राफिक्स डिजाइनिंग के लिए कलाकारों द्वारा उपयोग किया जाता है। इस सॉफ्टवेयर का उपयोग सॉफ्टवेयर और Android एप्लिकेशन विकसित करने के लिए किया जाता है। यह विकसित करने के लिए काफी आसान है और Android विकास IDE के समान है। इसलिए मैंने स्पष्टीकरण को छोटा कर दिया है।
दोनों चैट स्क्रीन के लिए प्रोसेसिंग कोड यहाँ दिया गया है:
- चैट स्क्रीन 1 प्रोसेसिंग कोड
- चैट स्क्रीन 2 प्रोसेसिंग कोड
उन पर राइट क्लिक करें और Arduinos सेट करने के बाद उन्हें डाउनलोड करने के लिए 'Save link as..' पर क्लिक करें और अपने कंप्यूटर में खोलें। आपको इन *.pde फ़ाइलों को खोलने के लिए 'प्रोसेसिंग' सॉफ़्टवेयर स्थापित करना होगा और फिर चैट बॉक्स खोलने के लिए उन्हें 'रन' करना होगा। प्रश्नों के लिए टिप्पणी अनुभाग खुला है। ट्रांसमीटर और रिसीवर मॉड्यूल के लिए प्रसंस्करण स्केच समान हैं।
नीचे दिए गए कोड अनुभाग में "port = new Serial (यह, Serial.list (), 9600); // 4 पोर्ट को 9600 बॉड्रेट में पढ़ता है" महत्वपूर्ण है क्योंकि यह उस पोर्ट से डेटा का निर्णय करता है।
शून्य सेटअप () {आकार (510,500); port = new Serial (यह, Serial.list (), 9600); // 9600 बॉड्रेट प्रिंटल पर 4 वें पोर्ट को पढ़ता है (Serial.list ()); पृष्ठभूमि (0); }
यहाँ मैंने अपने Arduino से 4th पोर्ट के डेटा को पढ़ा है।
उदाहरण के लिए यदि आपके पास COM COM COM COM COM है
फिर उपरोक्त कोड COM से डेटा पढ़ेगा।
परिक्षण:
अब चूंकि हमारी प्रोसेसिंग और Arduino स्केच तैयार है, इसलिए प्रोग्राम को Arduino पर अपलोड करें और इसे अपने लैपटॉप में प्लग इन करें। अपना प्रसंस्करण स्केच खोलें और टाइप करना शुरू करें और "एंटर" दबाएं आपका संदेश अन्य Arduino को प्रेषित किया जाएगा जो प्राप्त किए गए पाठ को अन्य कंप्यूटर से जुड़े किसी अन्य प्रसंस्करण अनुप्रयोग पर प्रदर्शित करेगा। आगे पूर्ण प्रदर्शन के लिए नीचे दिए गए वीडियो की जांच करें ।
तो इस तरह से आप अपने स्थानीय क्षेत्र में अपने दोस्तों और परिवार से बात कर सकते हैं बिना किसी इंटरनेट कनेक्शन के, इस सस्ते Arduino Chat Room का उपयोग करके ।