विषयसूची:

ESP32 के साथ ब्लूटूथ (BLE) का उपयोग कैसे करें: 3 कदम
ESP32 के साथ ब्लूटूथ (BLE) का उपयोग कैसे करें: 3 कदम

वीडियो: ESP32 के साथ ब्लूटूथ (BLE) का उपयोग कैसे करें: 3 कदम

वीडियो: ESP32 के साथ ब्लूटूथ (BLE) का उपयोग कैसे करें: 3 कदम
वीडियो: How to Use Wi-Fi & Bluetooth feature of ESP32 | ESP-32 Wi-Fi and Bluetooth Tutorial in HINDI 2024, सितंबर
Anonim

#####ध्यान दें#####

इस इंस्ट्रक्शंस में दिखाई गई विधि पुरानी और पुरानी है। नवीनतम विधि के लिए यह वीडियो देखें।

###############

जबकि ESP32 एक व्यापक फीचर सूची (विकिपीडिया) समेटे हुए है, सबसे बड़ी विशेषता जो आंख को खींचती है वह BLE सपोर्ट के साथ बिल्ट-इन ब्लूटूथ v4.2 है। लेकिन वह कथन भ्रामक हो सकता है, जबकि हार्डवेयर है, ब्लूटूथ का उपयोग करने के लिए सॉफ़्टवेयर समर्थन गायब है। (यह विकास के अधीन है)

उन लोगों के लिए जो नहीं जानते कि BLE क्या है, यह ब्लूटूथ लो एनर्जी के लिए है। यह एक ब्लूटूथ प्रोटोकॉल है जो "क्लासिक" ब्लूटूथ की तुलना में काफी कम बिजली की खपत को बढ़ाता है।

इस निर्देश में मैं आपको दिखाऊंगा कि कैसे आप BLE पर अपने फोन पर ESP32 बोर्ड से डेटा भेजने के लिए अपने निपटान में सीमित (सॉफ़्टवेयर) संसाधनों का उपयोग कर सकते हैं।

कुछ अस्वीकरण…

इस गाइड के साथ आगे बढ़ने से पहले कुछ ध्यान देने योग्य बातों का मुझे उल्लेख करना चाहिए।

नोट १: जब मैं कहता हूं कि ब्लूटूथ समर्थन अभी तक उपलब्ध नहीं है, तो मेरा मतलब है कि arduino विकास के माहौल में।

समर्थन बहुत अच्छी तरह से आधिकारिक एसडीके के साथ-साथ आईडीएफ में भी उपलब्ध हो सकता है लेकिन मुझे उनके लिए कोई सक्षम निर्देश नहीं मिला है।

नोट २: मैं जिस विधि का उपयोग कर रहा हूं वह बहुत अधिक समाधान है और यह नहीं है कि आदर्श रूप से बीएलई को कैसे काम करना चाहिए। बीएलई में सेवाएं बनाने के लिए पुस्तकालय का समर्थन यहां आर्डिनो पर्यावरण के लिए नहीं है।

केवल एक चीज जो आप विश्वसनीय रूप से कर सकते हैं वह है एक बीकन बनाना जो उसके नाम का विज्ञापन करता है। एक YouTube टिप्पणी ने इसे बहुत ही सुंदर ढंग से रखा: "LOL, एक क्रूर हैक। लेकिन आप क्या कर सकते हैं?"

नोट ३: केवल एक प्रकार का डेटा जिसे आप भेज सकते हैं वह है स्ट्रिंग।

आप बहुत अच्छी तरह से स्ट्रिंग से और अन्य प्रकार के डेटा को कोड और डिकोड करने का निर्णय ले सकते हैं लेकिन यह इस गाइड के दायरे से बाहर है।

चरण 1: उदाहरण बिल्ड

Image
Image
उदाहरण बिल्ड
उदाहरण बिल्ड
उदाहरण बिल्ड
उदाहरण बिल्ड
उदाहरण बिल्ड
उदाहरण बिल्ड

यदि आप यहां केवल स्पष्टीकरण के लिए हैं तो आप इस चरण को छोड़ सकते हैं लेकिन इसके माध्यम से जाने से आपको थोड़ी अधिक स्पष्टता मिल सकती है।

पहले मैं एक उदाहरण प्रोजेक्ट बनाने जा रहा हूं और फिर मैं यह समझाने की कोशिश करूंगा कि यह कैसे काम करता है और आप ब्लूटूथ संचार को कैसे दोहरा सकते हैं। हम एक पोर्टेबल तापमान सेंसर बना रहे हैं जो आपके स्मार्टफोन पर लाइव फीड भेजता है। बिल्ड एक ली-पो पर दिनों तक चल सकता है और आसानी से बीएलई के लाभों को प्रदर्शित करता है।

आप अपने पेय को इंसुलेट करने के लिए एक कोस्टर के रूप में मॉड्यूल का उपयोग कर सकते हैं और जैसे ही आपका पेय इष्टतम तापमान तक पहुंचता है, एक सूचना प्राप्त कर सकते हैं। क्योंकि अगर आपको 40 डिग्री से ऊपर की चाय की चुस्की लेनी पड़े तो यह एक उपहास की बात होगी।

एकमात्र हार्डवेयर जो आपको चाहिए वह है ESP32 बोर्ड और एक डिजिटल तापमान सेंसर। मेरा बोर्ड बाहरी बैटरी का समर्थन करता है इसलिए मैं 3.7v ली-पीओ का उपयोग कर रहा हूं जिसे मैंने इस परियोजना को पोर्टेबल बनाने के लिए किसी पुराने डिवाइस से बचाया था।

हार्डवेयर

तापमान संवेदक के लिए कनेक्शन सरल हैं। लाल तार 3.3v से जुड़ता है, काला जमीन से जुड़ता है (gnd), पीला GPIO 2 से जुड़ता है जिसे मेरे बोर्ड पर D9 के रूप में चिह्नित किया गया है। लाल और पीले तार के बीच एक 4.7k ओम रोकनेवाला कनेक्ट करें। मैं रोकनेवाला का उपयोग नहीं कर रहा हूं, इसके बजाय मैं एक 3 पिन प्लग-सक्षम टर्मिनल का उपयोग कर रहा हूं जो मेरे सेंसर के साथ आया था। इसमें बिल्ट-इन पुल अप रेसिस्टर है।

ली-पीओ को वास्तव में एक जेएसटी कनेक्टर का उपयोग करके जोड़ा जाना चाहिए, लेकिन मुझे एक खरीदने के लिए परेशान नहीं किया जा सकता था, इसलिए मैंने कनेक्टर में कुछ (महिला से महिला) जम्पर केबल्स में जूता लगाया और बैटरी टर्मिनलों को एक और जोड़ी मिला दी। यह एक विश्वसनीय कनेक्शन और एक अस्थायी पावर स्विच के लिए बनाता है।

अब एक प्रोजेक्ट एनक्लोजर के रूप में, मैं एक स्टायरोफोम डिस्क का उपयोग कर रहा हूं जिसे एक बड़ी शीट से काट दिया गया है। यह एक महान इन्सुलेटर बनाता है। एक और बहुत छोटी डिस्क शीर्ष पर अटकी हुई है लेकिन थोड़ी सी तरफ। यह तारों की अतिरिक्त लंबाई को लपेटने के लिए है ताकि वे सभी जगह लटकें नहीं। अपने गोंद के एक उदार रोजगार और सेंसर जांच के लिए एक छोटे से छेद के बाद, आप सॉफ्टवेयर के लिए आगे बढ़ने के लिए तैयार हैं।

सॉफ्टवेयर

यदि आपके पास पहले से arduino IDE स्थापित नहीं है, तो इसे डाउनलोड करने के लिए इस लिंक पर जाएं। डिफ़ॉल्ट रूप से arduino सॉफ़्टवेयर विभिन्न ESP32 बोर्डों के लिए बोर्ड परिभाषाओं के साथ नहीं आता है। उन्हें इस लिंक पर जाने के लिए और एक ज़िप में फ़ाइलों को डाउनलोड करने के लिए। आपको उन्हें इस स्थान पर अनज़िप करने की आवश्यकता है:

C:/उपयोगकर्ता//दस्तावेज़/Arduino/हार्डवेयर/espserrif/ESP32

आपके पीसी पर आपका उपयोगकर्ता नाम कहां है। सुनिश्चित करें कि विभिन्न फ़ाइलें ESP32 फ़ोल्डर के अंतर्गत उपलब्ध हैं और किसी अन्य फ़ोल्डर के अंतर्गत नहीं हैं।

अब यदि आप arduino सॉफ़्टवेयर शुरू करते हैं और टूल-> बोर्ड पर जाते हैं तो आपको नीचे स्क्रॉल करते समय विभिन्न ESP32 बोर्ड देखने चाहिए।

अधिकांश डिजिटल तापमान सेंसर माइक्रो नियंत्रकों के साथ संचार करने के लिए वनवायर प्रोटोकॉल का उपयोग करते हैं, इसलिए हमें पुस्तकालय प्राप्त करने की आवश्यकता है। स्केच पर जाएं-> पुस्तकालय शामिल करें-> पुस्तकालयों का प्रबंधन करें और वनवायर की खोज करें और पुस्तकालय को स्थापित करें जिसमें बहुत सारे लेखक हैं। आपको ऑनवायर हब की आवश्यकता नहीं है। अनदेखी करो इसे।

अब आप इस स्टेप से जुड़े कोड को डाउनलोड करके ओपन कर सकते हैं (temperature-example.ino)।

अगर आप मुझसे अलग सेंसर का इस्तेमाल कर रहे हैं तो आपको उसके हिसाब से कोड बदलना होगा। GetTemp() के अंतर्गत कोड बदलें। अंतिम तापमान को के रूप में लौटाएं

वापसी;

तापमान युक्त फ्लोट कहां है।

बोर्ड में प्लग इन करें, सही बोर्ड का चयन करें और टूल के नीचे से पोर्ट और हिट अपलोड करें।

यदि कोड अपलोड करने से इनकार करता है, तो सेंसर को डिस्कनेक्ट करें और GPIO 0 को जमीन से कनेक्ट करें। अपलोड के बाद कनेक्शन पुनर्स्थापित करें।

आपका ईएसपी अब दुनिया के सामने आप कॉफी का तापमान चिल्ला रहा होगा लेकिन आपको किसी ऐसे व्यक्ति की आवश्यकता है जो इसे समझ सके।

एंड्रॉइड ऐप

क्षमा करें iPhone उपयोगकर्ता (… वास्तव में नहीं)।

यहां से एपीके डाउनलोड करें और इंस्टॉल करें। जब आप ऐप शुरू करते हैं तो आपको एक बहुत ही सरल इंटरफ़ेस के साथ स्वागत किया जाएगा।

अगर आपको 'विज्ञापन समर्थित नहीं' कहते हुए एक त्रुटि संदेश मिलता है, तो ठीक क्लिक करें और इसे अनदेखा करें लेकिन अगर आपको यह संदेश मिलता है कि 'बीएलई समर्थित नहीं है' तो आपके फोन में ब्लूटूथ 4.0 या उच्चतर नहीं है और यह चलने में सक्षम नहीं होगा अप्प।

सुनिश्चित करें कि आपके फोन पर ब्लूटूथ चालू है और 'स्कैनिंग शुरू करें' पर क्लिक करें, जब तक कि esp सीमा में है और आप पर संचालित कुछ तापमान मान प्राप्त करना चाहिए।

संभावित त्रुटियां:

  • -1000:: इसका मतलब है कि आपका डिवाइस ईएसपी नहीं ढूंढ सका। सुनिश्चित करें कि ब्लूटूथ चालू है और ESP को पुनरारंभ करने का प्रयास करें।
  • एसएनए:: इसका मतलब है कि आपका फोन ईएसपी से डेटा प्राप्त कर रहा है लेकिन ईएसपी को जीपीआईओ 2 पर तापमान सेंसर नहीं मिला। सुनिश्चित करें कि कनेक्शन सुरक्षित हैं, देखें कि क्या आप सही मूल्य के प्रतिरोधी का उपयोग कर रहे हैं। अपने बोर्ड स्कीमैटिक्स के साथ दोबारा जांचें कि आप जीपीआईओ 2 से जुड़े हैं और डी 2 के रूप में चिह्नित पिन नहीं हैं।

चरण 2: स्पष्टीकरण

BLE सामान्य रूप से कैसे काम करता है कि एक उपकरण एक बीकन की तरह अपने नाम का विज्ञापन करता है, इस नाम को कोई भी देख सकता है और इसका उपयोग डिवाइस की पहचान करने के लिए किया जाता है। फिर डिवाइस विभिन्न सेवाओं को बना सकता है जो दूसरों द्वारा इससे कनेक्ट होने पर देखी जाती हैं। इन सेवाओं में डेटा की विभिन्न धाराएँ हो सकती हैं।

उदाहरण के लिए। 'वेदर स्टेशन' नाम का एक उपकरण इसके तहत 'तापमान', 'आर्द्रता' और 'पवन' की तरह काम कर सकता है। जब आपका स्मार्टफोन जैसा कोई अन्य बीएलई डिवाइस उपकरणों के लिए स्कैन करता है, तो यह मौसम स्टेशन को देखेगा और जब यह इससे जुड़ता है, तो यह विभिन्न सेवाओं के अनुरूप डेटा स्ट्रीम प्राप्त करने में सक्षम होगा।

पुस्तकालय (ESP32 के लिए) जो वर्तमान में हमारे लिए उपलब्ध हैं, हमें एक बीकन बनाने की अनुमति देते हैं जिसे दूसरे खोज सकते हैं लेकिन यह इसकी सीमा है। हम सेवाएँ नहीं बना सकते हैं और न ही कोई उपकरण इससे जुड़ सकता है।

तो मैं सेवाओं को बनाए बिना डेटा कैसे भेज रहा हूं, यह बीकन स्टफिंग नामक वाईफाई प्रोटोकॉल के समान तकनीक को नियोजित कर रहा है। इसका मतलब है कि मैं बीकन नाम के भीतर ही भेजे जाने वाले डेटा को शामिल कर रहा हूं। यह मुझे बीकन से कनेक्ट करने के लिए अन्य उपकरणों की आवश्यकता के बिना डेटा का विज्ञापन करने में सक्षम बनाता है।

ble.begin (बीकनएमएसजी); //beaconMsg विज्ञापित नाम है

हम ESP के प्रारूप में इसके नाम के साथ एक बीकन बनाने के लिए SimpleBLE लाइब्रेरी का उपयोग कर रहे हैं। जहां 'ईएसपी' हमेशा नाम की शुरुआत में अपरिवर्तित रहता है और इसे हर 100 मिलीसेकंड में getValue () फ़ंक्शन द्वारा लौटाए गए नवीनतम डेटा से बदल दिया जाता है।

फ्लोट गेटवैल्यू () {रिटर्न सेंसरवैल्यू;}

एंड्रॉइड ऐप 'ईएसपी' से शुरू होने वाले बीएलई डिवाइस नामों की तलाश करता है, एक बार मिल जाने पर, यह नाम को विभाजित करता है और केवल अंत से डेटा प्रदर्शित करता है।

संचार केवल एक ही तरीका है, ऐप कुछ भी वापस नहीं भेजता है।

चरण 3: निष्कर्ष

दिन के अंत में, यह विधि ठीक से कार्यान्वित बीएलई पुस्तकालय के लिए कोई प्रतिस्थापन नहीं है, लेकिन यह कुछ परियोजनाओं को पूरा करने के लिए पर्याप्त हो सकता है जब तक कि पूर्ण बीएलई समर्थन Arduino के लिए नहीं आता है। उम्मीद है कि इस इंस्ट्रक्शंस से आपको कुछ मदद मिली होगी।

मुझे ये उत्पाद भेजने के लिए DFRobot.com को बहुत-बहुत धन्यवाद:

  • ESP32 फायरबीटल बोर्ड
  • फायरबीटल विस्तार शील्ड
  • DS18B20 तापमान सेंसर

मुझे हाल ही में यह पुस्तकालय मिला है। रीडएमई का दावा है कि आप डेटा प्राप्त करने के लिए अन्य बीएलई उपकरणों से जुड़ सकते हैं (स्वयं का विज्ञापन नहीं कर सकते)। मैंने इसकी कोशिश नहीं की है, लेकिन यदि आप रुचि रखते हैं तो आप इसे देख सकते हैं।

आप प्रोजेक्ट वीडियो यहां देख सकते हैं: YouTube

सिफारिश की: