विषयसूची:
वीडियो: ESP8266 प्रत्यक्ष डेटा संचार: 3 चरण
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:22
परिचय
Arduinos और nRF24l01 मॉड्यूल के साथ कुछ प्रोजेक्ट करने के दौरान मैं सोच रहा था कि क्या मैं इसके बजाय ESP8266 मॉड्यूल का उपयोग करके कुछ प्रयास बचा सकता हूं। ESP8266 मॉड्यूल का लाभ यह है कि इसमें बोर्ड पर एक माइक्रो नियंत्रक होता है, इसलिए किसी अतिरिक्त Arduino बोर्ड की आवश्यकता नहीं होती है। इसके अतिरिक्त ESP8266 का मेमोरी आकार बहुत बड़ा है और गति के संबंध में ESP8266 Arduino के 16MHz के बजाय अधिकतम 160MHz पर चलता है। बेशक कुछ नकारात्मक पक्ष हैं।
ESP8266 केवल 3.3V पर चलता है, इसमें कम पिन होते हैं और Arduino के पास अच्छे एनालॉग इनपुट गायब हैं (इसमें एक है, लेकिन केवल 1.0V के लिए और 3.3V नहीं)। इसके अतिरिक्त Arduino + nRF24l01 के लिए कई और कोड उदाहरण हैं तो ESP8266 के लिए हैं, खासकर जब सीधे डेटा ट्रांसफर की बात आती है।
इसलिए एक परियोजना को ध्यान में रखते हुए, मैंने सभी WWW और HTTP सामग्री के बिना दो ESP8266 के बीच तेज़ और हल्के डेटा स्थानांतरण के विषय पर ध्यान दिया।
उदाहरणों के लिए इंटरनेट पर खोज करते समय (नीचे दिए गए अधिकांश कोड को विभिन्न स्थानों पर नेट से चुना गया था) मुझे कई सवालों का सामना करना पड़ा कि बिना अच्छे "ऐसा करें" उदाहरणों के बिना सीधे डेटा ट्रांसफर को कैसे कार्यान्वित किया जाए। कुछ उदाहरण कोड था, लेकिन ज्यादातर इस सवाल के साथ कि यह काम क्यों नहीं करता।
इसलिए कुछ पढ़ने और समझने की कोशिश करने के बाद, मैंने नीचे दिए गए उदाहरण बनाए जो दो ESP8266 के बीच डेटा के तेज़ और सरल हस्तांतरण की अनुमति देते हैं।
चरण 1: सीमाएं और पृष्ठभूमि (टीसीपी बनाम यूडीपी)
वहां पहुंचने के लिए, nRF24l01 की तुलना में कुछ सीमाओं को स्पष्ट करना होगा।
Arduino वातावरण में ESP8266 का उपयोग करने के लिए, उपयोग करने के लिए मूल पुस्तकालय ESP8266WiFi.h है। अलग-अलग हो सकते हैं, लेकिन अधिकांश उदाहरण उल्लिखित का उपयोग करते हैं। इसका उपयोग करते समय, आपको अपने संचार को वाईफाई स्तर पर लाने की आवश्यकता है।
इसलिए, संवाद करने के लिए कम से कम एक एक्सेस प्वाइंट (एपी) / सर्वर और एक क्लाइंट होना चाहिए। एपी नेटवर्क का नाम और आईपी पते प्रदान करता है और क्लाइंट इस सर्वर से जुड़ जाएगा।
तो nRF24l01 की तुलना में, जहां दोनों सिरों पर कोड कमोबेश एक जैसा है (ट्रांसमिशन चैनलों को छोड़कर) ESP8266 का कोड मौलिक रूप से अलग है, क्योंकि एक को AP के रूप में और दूसरे को क्लाइंट के रूप में कॉन्फ़िगर किया गया है।
अगला विषय यह है कि nRF24l01 को केवल कुछ बाइट्स भेजने के बजाय, ESP8266 हस्तांतरण प्रोटोकॉल के लिए देखे जाने की आवश्यकता है।
दो सामान्य उपयोग किए जाने वाले प्रोटोकॉल हैं: टीसीपी और यूडीपी।
टीसीपी (ट्रांसमिशन कंट्रोल प्रोटोकॉल) एक प्रोटोकॉल है जो एक सर्वर और क्लाइंट के बीच बिना किसी नुकसान के ट्रांसमिशन की अनुमति देता है। प्रोटोकॉल में "हैंडशेक" (दोनों पक्षों के बीच भेजे गए बहुत सारे झंडे और अभिस्वीकृति) और पैकेट नंबरिंग और खोए हुए पैकेट की पहचान और पुन: संचरण के लिए पता लगाना शामिल है। इसके अतिरिक्त, इन सभी हैंडशेक का उपयोग करके प्रोटोकॉल नेटवर्क में एक ही समय में कई पैकेट भेजने के कारण खोए हुए डेटा को रोकता है। डेटा पैकेट प्राप्त होने तक प्रतीक्षा करते हैं।
यूडीपी (यूजर डेटाग्राम प्रोटोकॉल) में सभी हैंडशेक, पैकेट नंबरिंग और री-ट्रांसमिशन का अभाव है। इसलिए इसका ओवरहेड छोटा होता है और कनेक्शन बनाए रखने के लिए सभी हैंडशेक की आवश्यकता नहीं होती है। यूडीपी में कुछ बुनियादी त्रुटि का पता लगाना शामिल है, लेकिन कोई सुधार नहीं (दूषित पैकेज अभी गिरा दिया गया है)। यदि प्राप्त करने वाला पक्ष डेटा प्राप्त करने के लिए स्वतंत्र है, तो जानकारी के बिना डेटा भेजा जाता है। एक ही समय में, कई पैकेट टकरा सकते हैं, क्योंकि जब भी जरूरत होती है, प्रत्येक पक्ष डेटा भेजता है। सभी हैंडशेक को छोड़कर, यूडीपी की एक अतिरिक्त अच्छी विशेषता है जिसे "मल्टीकास्ट" और "ब्रॉडकास्ट" कहा जाता है। "मल्टीकास्ट" मामले में डेटा पैकेट सदस्यों के एक पूर्वनिर्धारित समूह को भेजे जाते हैं, एक "प्रसारण" में डेटा पैकेट सभी जुड़े सदस्यों को भेजे जाते हैं। यह कई सदस्यों द्वारा प्राप्त होने वाली धाराओं के मामले में डेटा ट्रांसफर को काफी कम कर देता है (उदाहरण के लिए कई रिसीवरों को वीडियो फीड भेजकर या कई कनेक्टेड डिवाइसों को वर्तमान समय भेजकर)।
Youtube पर कुछ अच्छे वीडियो हैं जो इसे और भी बेहतर तरीके से समझाते हैं।
इसलिए डेटा भेजते समय, अपनी ज़रूरतों को जानना ज़रूरी है:
- गैर-दूषित डेटा, हैंडशेक द्वारा कई साथियों का प्रबंधन → टीसीपी
- रीयल टाइम डेटा, तेज़ कनेक्शन → यूडीपी
मैंने सबसे पहले एक टीसीपी आधारित संचार (एक सर्वर और एक क्लाइंट के बीच) के कार्यान्वयन के साथ शुरुआत की। इसका परीक्षण करते समय, मुझे ट्रांसमिशन में रुकने की समस्या थी। शुरुआत में डेटा का तेजी से आदान-प्रदान हुआ, फिर थोड़ी देर बाद गति में नाटकीय रूप से गिरावट आई। मैंने निष्कर्ष निकाला कि यह टीसीपी दृष्टिकोण (जो गलत था!) की एक सामान्य समस्या थी, इसलिए फिर यूडीपी के आधार पर समाधान में बदल दिया गया। अंत में मैंने दोनों को काम करने के लिए अप्रोच किया। तो दोनों समाधान प्रदान किया जाएगा।
नीचे दिए गए रेखाचित्रों में TCP और UDP के लिए समान हैं कि वे:
- किसी भी मौजूदा वाईफाई नेटवर्क से स्वतंत्र हैं। तो यह इंटरनेट और कनेक्टेड राउटर्स से दूर कहीं भी काम करेगा।
- सीरियल मॉनिटर के माध्यम से मुद्रित होने के लिए ASCII डेटा भेज रहे हैं।
- ट्रांसमिशन की गति का विश्लेषण करने के लिए मिलिस () - फ़ंक्शन द्वारा प्राप्त डेटा भेज रहे हैं।
- एकाधिक क्लाइंट के लिए परीक्षण नहीं किया जाता है (अभी नेटवर्क स्थापित करने के लिए हार्डवेयर होने के कारण)
चरण 2: हार्डवेयर
पूरे सेट अप का परीक्षण करने के लिए मैंने दो ESP8266 मॉड्यूल का उपयोग किया। एक मॉड्यूल एक ESP-01 + USB-to-UART अडैप्टर है। अन्य मॉड्यूल एक ESP-12 आधारित मॉड्यूल है जिसमें USB कनेक्शन, वोल्टेज नियामक और कुछ मज़ेदार सामान जैसे स्विच, LDR और बहु-रंग एलईडी शामिल हैं।
ESP-01 के लिए USB-to-UART मॉड्यूल को प्रोग्रामर के रूप में उपयोग करने में सक्षम होने के लिए थोड़ा संशोधित करने की आवश्यकता है (फिर से Csongor Varga द्वारा Youtube)।
रेखाचित्र चलाने के लिए, आपको ESP8266 पुस्तकालय स्थापित करने की आवश्यकता है (जैसा कि इंटरनेट में कई स्थानों पर वर्णित है)। दोनों ही मामलों में (टीसीपी और यूडीपी) एक सर्वर और क्लाइंट स्केच प्रत्येक होता है। कौन सा स्केच किस मॉड्यूल में लोड किया गया है इससे कोई फर्क नहीं पड़ता।
स्वीकृतियाँ
जैसा कि उल्लेख किया गया है, रेखाचित्र वेब पर मिले कई बिट्स और टुकड़ों पर आधारित हैं। मुझे अब याद नहीं है कि मुझे क्या मिला, और मूल कोड क्या है या मैंने क्या बदला है। इसलिए मैं सभी महान उदाहरणों को प्रकाशित करने के लिए सामान्य रूप से बड़े समुदाय को धन्यवाद देना चाहता था।
चरण 3: रेखाचित्र
कोड में टीसीपी और यूडीपी प्रत्येक के लिए दो स्केच प्रत्येक (जैसा कि समझाया गया है), एक सर्वर स्केच और क्लाइंट स्केच शामिल हैं।
सिफारिश की:
लाइव Arduino डेटा से सुंदर प्लॉट बनाएं (और डेटा को एक्सेल में सहेजें): 3 चरण
लाइव Arduino डेटा से सुंदर प्लॉट बनाएं (और डेटा को एक्सेल में सहेजें): हम सभी Arduino IDE में अपने P…लॉटर फ़ंक्शन के साथ खेलना पसंद करते हैं। हालाँकि, यह बुनियादी अनुप्रयोगों के लिए उपयोगी हो सकता है, लेकिन डेटा अधिक के रूप में मिट जाता है अंक जोड़े जाते हैं और यह आंखों के लिए विशेष रूप से सुखद नहीं है। Arduino IDE प्लॉटर नहीं करता है
Arduino UNO और SD-Card के साथ आर्द्रता और तापमान रीयल टाइम डेटा रिकॉर्डर कैसे बनाएं - प्रोटीन में DHT11 डेटा-लॉगर सिमुलेशन: 5 चरण
Arduino UNO और SD-Card के साथ आर्द्रता और तापमान रीयल टाइम डेटा रिकॉर्डर कैसे बनाएं | प्रोटीन में DHT11 डेटा-लॉगर सिमुलेशन: परिचय: नमस्ते, यह लियोनो मेकर है, यहां YouTube लिंक है। हम Arduino के साथ रचनात्मक प्रोजेक्ट बना रहे हैं और एम्बेडेड सिस्टम पर काम कर रहे हैं। डेटा-लॉगर: डेटा लॉगर (डेटा-लॉगर या डेटा रिकॉर्डर भी) एक इलेक्ट्रॉनिक डिवाइस है जो समय के साथ डेटा रिकॉर्ड करता है
MotoStudent इलेक्ट्रिक रेसिंग बाइक के लिए डेटा अधिग्रहण और डेटा विज़ुअलाइज़ेशन सिस्टम: 23 चरण
MotoStudent इलेक्ट्रिक रेसिंग बाइक के लिए डेटा अधिग्रहण और डेटा विज़ुअलाइज़ेशन सिस्टम: एक डेटा अधिग्रहण प्रणाली हार्डवेयर और सॉफ़्टवेयर का एक संग्रह है जो बाहरी सेंसर से डेटा एकत्र करने के लिए एक साथ काम कर रहा है, इसे बाद में संग्रहीत और संसाधित करता है ताकि इसे ग्राफिक रूप से देखा जा सके और विश्लेषण किया जा सके, इंजीनियरों को बनाने की अनुमति
आरटीएल-एसडीआर प्रत्यक्ष नमूनाकरण मोड: ३ चरण
आरटीएल-एसडीआर प्रत्यक्ष नमूनाकरण मोड: कई डोंगल 30 मेगाहर्ट्ज से कम आवृत्तियों का उपयोग करने में सक्षम नहीं हैं, हालांकि कुछ उपकरणों को संशोधित करने के लिए एक विधि कॉल डायरेक्ट सैम्पलिंग का उपयोग करना संभव है। डायरेक्ट सैंपलिंग में हम डोंगल के 'ब्रेन' पर सीधे एक सिग्नल लागू करते हैं जो प्रभावी रूप से टी को दरकिनार कर देता है
रीयल-टाइम स्मार्ट स्क्रीन डेटा के लिए IoT डेटा साइंस PiNet अर्थात: 4 चरण
रीयल-टाइम स्मार्ट स्क्रीन डेटा के लिए IoT डेटा साइंस PiNet: आप डेटा साइंस या किसी मात्रात्मक क्षेत्र में अपने शोध प्रयासों को सुपरचार्ज करने के लिए डेटा विज़ुअलाइज़ेशन के लिए स्मार्ट डिस्प्ले के IoT नेटवर्क को आसानी से एक साथ रख सकते हैं। आप "पुश" ग्राहकों को अपने भूखंडों के बारे में अपने भीतर से