ब्लूटूथ के माध्यम से एंड्रॉइड स्मार्टफ़ोन के साथ संचार करने के लिए ESP32 को कैसे सेट अप और प्रोग्राम करें

Blututha Ke Madhyama Se Endro Ida Smartafona Ke Satha Sancara Karane Ke Li E Esp32 Ko Kaise Seta Apa Aura Programa Karem



ESP32 क्षमताओं की एक विस्तृत श्रृंखला वाला एक माइक्रोकंट्रोलर बोर्ड है। इसमें बिल्ट-इन वाई-फाई और ब्लूटूथ मॉड्यूल हैं। इन दोनों मॉड्यूल का उपयोग करके आप ESP32 को वायरलेस तरीके से प्रोग्राम कर सकते हैं। इसके साथ, आपको ESP32 बाह्य उपकरणों को नियंत्रित करने के लिए लंबे-तार कनेक्शन के बारे में चिंता करने की ज़रूरत नहीं है।

इस लेख में, हम एक ESP32 बोर्ड को एंड्रॉइड फोन से कनेक्ट करेंगे और ब्लूटूथ पर डेटा संचार करेंगे। इसके अलावा, हम सीधे एंड्रॉइड स्मार्टफोन के माध्यम से ESP32 के GPIO पिन से जुड़े एक एलईडी को नियंत्रित करेंगे।

सामग्री:







ESP32 ब्लूटूथ LE क्या है?

ESP32 एक माइक्रोकंट्रोलर बोर्ड है जो ब्लूटूथ क्लासिक और ब्लूटूथ लो एनर्जी दोनों को सपोर्ट करता है जिसे स्मार्ट ब्लूटूथ भी कहा जाता है। BLE या स्मार्ट ब्लूटूथ ऊर्जा-कुशल संचार के लिए विशिष्ट है या कम दूरी के संचार या छोटे डेटा ट्रांसफर के लिए डिज़ाइन किया गया है।



ESP32 की BLE कार्यक्षमता इसे ब्लूटूथ संचार में सर्वर या क्लाइंट के रूप में कार्य करने में सक्षम बनाती है। यह पढ़ने और लिखने की सेवाओं जैसे कार्यों को संभाल सकता है। यह कनेक्शन को एन्क्रिप्ट भी कर सकता है और यूएआरटी-बीएलई पास-थ्रू मोड में डेटा ट्रांसमिशन के लिए सीरियल पोर्ट प्रोफाइल (एसपीपी) कनेक्शन स्थापित कर सकता है। ESP32 ब्लूटूथ 4.2 प्रोटोकॉल का समर्थन करता है, जिसका अर्थ है कि यह फिजिकल लेयर (PHY) और लिंक लेयर (LL) जैसी विभिन्न परतों के साथ संगत है। इसमें अन्य के अलावा होस्ट कंट्रोलर इंटरफ़ेस (HCI) का भी समर्थन है।



ESP32 क्लासिक और BLE ब्लूटूथ के लिए अंतर तालिका की जाँच करें।





विशेषता क्लासिक ब्लूटूथ कम ऊर्जा वाला ब्लूटूथ (बीएलई)
संचार प्रकार सतत, दोतरफा संचार रुक-रुक कर, मुख्य रूप से एकतरफ़ा डेटा विस्फोट
ऑपरेशनल रेंज 100 मीटर तक पहुंच सकता है आमतौर पर 100 मीटर के अंदर संचालित होता है
बिजली के उपयोग 1 वॉट तक खपत करता है 10 मिलीवाट से लेकर 500 मिलीवाट तक होती है
स्थानांतरण गति डेटा ट्रांसफर दरें 1 से 3 मेगाबिट प्रति सेकंड तक भिन्न होती हैं 125 किलोबिट प्रति सेकंड से 2 मेगाबिट प्रति सेकंड का समर्थन करता है
प्रतिक्रिया समय विलंबता लगभग 100 मिलीसेकंड 6 मिलीसेकंड विलंबता के साथ त्वरित प्रतिक्रिया
आवाज समर्थन ध्वनि प्रसारण से सुसज्जित ध्वनि संचरण कार्यक्षमता का अभाव

इसके बारे में अधिक जानने के लिए इन ESP32 ब्लूटूथ लेखों को देखें।

एंड्रॉइड स्मार्टफ़ोन के साथ ब्लूटूथ पर संचार करने के लिए ESP32 को कैसे प्रोग्राम करें

ESP32 को प्रोग्राम करने के लिए ताकि यह ब्लूटूथ प्रोटोकॉल का उपयोग करके एंड्रॉइड फोन के साथ संचार कर सके, आपको ESP32 ब्लूटूथ सीरियल लाइब्रेरी सेट करनी होगी। इसके लिए, आपके पास एक ESP32 बोर्ड के साथ एक Arduino IDE सेटअप होना चाहिए।



ESP32 ब्लूटूथ सेट करने के बाद आपको ब्लूटूथ सीरियल एंड्रॉइड एप्लिकेशन इंस्टॉल करना होगा। यह आपको ब्लूटूथ सीरियल संचार का उपयोग करके एंड्रॉइड फोन से ESP32 पर निर्देश भेजने देगा।

आइए इनमें से प्रत्येक चरण पर करीब से नज़र डालें:

ESP32 ब्लूटूथ को एंड्रॉइड फोन से कनेक्ट करने के चरण

ब्लूटूथ संचार के लिए ESP32 बोर्ड को प्रोग्राम करने के लिए, इन दिए गए चरणों का पालन करें:

चरण 1: Arduino IDE में ESP32 बोर्ड स्थापित करना

Arduino IDE पर ESP32 स्थापित करने के लिए, बस इस आलेख में दिए गए गाइड का पालन करें।

Arduino IDE में ESP32 बोर्ड स्थापित करना

स्थापना के बाद, ESP32 बोर्ड को Arduino IDE का उपयोग करके कनेक्ट और प्रोग्राम किया जा सकता है।

चरण 2: ESP32 ब्लूटूथ कोड अपलोड करें

एक बार ESP32 बोर्ड स्थापित हो जाने पर, आपको Arduino IDE में विभिन्न पूर्व-स्थापित लाइब्रेरी और उनके उदाहरण दिखाई देंगे। ये सभी लाइब्रेरी ESP32 बोर्ड से संबंधित हैं। ब्लूटूथ सीरियल संचार के लिए, हम ESP32 का उपयोग करने जा रहे हैं BluetoothSerial.h लाइब्रेरी उदाहरण कोड.

उदाहरण कोड खोलने के लिए, Arduino IDE खोलें और यहां जाएं: फ़ाइल > उदाहरण > BluetoothSerial > SerialtoSerialBT

इस उदाहरण कोड को खोलने के लिए, सुनिश्चित करें कि ESP32 बोर्ड चयनित है।

उदाहरण कोड खोलने के बाद, आपको अपनी Arduino IDE विंडो में निम्नलिखित कोड दिखाई देगा:

//लिनक्सहिंट में आपका स्वागत है

#शामिल करें 'ब्लूटूथ सीरियल.एच'

//#USE_PIN परिभाषित करें // यदि आप पेयरिंग के दौरान पिन चाहते हैं तो इसे अनकम्मेंट करें
कॉन्स्ट चार * नत्थी करना = '1234' ; // एक कस्टम पेयरिंग पिन परिभाषित करें

स्ट्रिंग डिवाइस_नाम = 'ईएसपी32' ;

#यदि !परिभाषित(CONFIG_BT_ENABLED) || !परिभाषित(CONFIG_BLUEDROID_ENABLED)
#त्रुटि ब्लूटूथ सक्षम नहीं है! इसे सक्षम करने के लिए `makemenuconfig` चलाएँ
#अगर अंत

#यदि !परिभाषित(CONFIG_BT_SPP_ENABLED)
#त्रुटि सीरियल ब्लूटूथ गायब है या सक्षम नहीं है। यह केवल ESP32 चिप के लिए उपलब्ध है।
#अगर अंत

ब्लूटूथ सीरियल सीरियलबीटी ;

खालीपन स्थापित करना ( ) {
धारावाहिक। शुरू ( 115200 ) ;
सीरियलबीटी। शुरू ( डिवाइस का नाम ) ; // ब्लूटूथ डिवाइस का नाम
धारावाहिक। printf ( 'युक्ति ' % एस ' शुरू हो गया। \एन अपने डिवाइस को पेयर करना प्रारंभ करें! \एन ' , डिवाइस का नाम। c_str ( ) ) ;
//Serial.printf('डिवाइस '%s' MAC पते %s के साथ प्रारंभ हो गया है।\nइसे ब्लूटूथ के साथ जोड़ना शुरू करें!\n', डिवाइस_नाम.c_str(), SerialBT.getMacString());
#ifdef USE_PIN
सीरियलबीटी. सेटपिन ( नत्थी करना ) ;
धारावाहिक। println ( 'पिन का उपयोग करना' ) ;
#अगर अंत
}

खालीपन कुंडली ( ) {
अगर ( धारावाहिक। उपलब्ध ( ) ) {
सीरियलबीटी। लिखना ( धारावाहिक। पढ़ना ( ) ) ;
}
अगर ( सीरियलबीटी. उपलब्ध ( ) ) {
धारावाहिक। लिखना ( सीरियलबीटी. पढ़ना ( ) ) ;
}
देरी ( बीस ) ;
}

कोड अपलोड करने के बाद आपको स्क्रीन पर निम्न संदेश दिखाई देगा। यह संदेश बताता है कि आपका ESP32 बोर्ड युग्मन के लिए तैयार है।

चरण 3: कोड स्पष्टीकरण

कोड की शुरुआत आवश्यक लाइब्रेरीज़ को शामिल करने और ब्लूटूथ उपलब्धता की जाँच से हुई। यह ब्लूटूथ डिवाइस नाम और पिन के लिए वेरिएबल भी सेट करता है।

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

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

चरण 4: एंड्रॉइड एप्लिकेशन इंस्टॉल करें

एक बार कोड अपलोड हो जाने के बाद, अगला कदम ब्लूटूथ कनेक्शन के लिए एंड्रॉइड एप्लिकेशन को इंस्टॉल और कॉन्फ़िगर करना है।

प्ले स्टोर खोलें और इंस्टॉल करें सीरियल ब्लूटूथ टर्मिनल आवेदन पत्र।

इंस्टालेशन के बाद स्मार्टफोन ब्लूटूथ सेटिंग्स खोलें और अपने फोन को ESP32 ब्लूटूथ से कनेक्ट करें। यदि आपने Arduino IDE कोड में एक पिन परिभाषित किया है तो आपको पिन दर्ज करना होगा अन्यथा यह सीधे कनेक्ट हो जाएगा।

अब सीरियल ब्लूटूथ एप्लिकेशन खोलें और चुनें उपकरण विकल्प।

नए खुले मेनू से, ESP32 डिवाइस चुनें। यह सूची वर्तमान में सक्रिय सभी ब्लूटूथ डिवाइस दिखाती है।

जैसा कि आप देख सकते हैं, ESP32 ब्लूटूथ आपके एंड्रॉइड स्मार्टफोन से जुड़ा है।

कनेक्शन का परीक्षण करने के लिए, हम एक स्ट्रिंग भेजने जा रहे हैं। यहां मैंने दो अलग-अलग स्ट्रिंग्स भेजी हैं.

आप देखेंगे कि वही दो स्ट्रिंग्स Arduino IDE टर्मिनल पर भी प्रदर्शित होंगी।

आइए अब एक कदम आगे बढ़ें और एंड्रॉइड स्मार्टफोन के माध्यम से ESP32 ब्लूटूथ का उपयोग करके एलईडी जैसे बाहरी परिधीय को नियंत्रित करें।

चरण 5: ब्लूटूथ के माध्यम से एंड्रॉइड फोन का उपयोग करके एलईडी को नियंत्रित करें

ESP32 और Android ब्लूटूथ का उपयोग करके एक एलईडी को नियंत्रित करने के लिए, पहले उपरोक्त कोड को संशोधित करें और एलईडी के लिए एक GPIO पिन परिभाषित करें। उसके बाद, आपको एलईडी को चालू और बंद करने के लिए मान सेट करना होगा।

आगे बढ़ने के लिए नीचे दिया गया कोड अपलोड करें।

#include // ब्लूटूथ सीरियल संचार लाइब्रेरी शामिल करें

#एलईडी_पिन को परिभाषित करें 15 // एलईडी पिन को परिभाषित करें

ब्लूटूथ सीरियल सीरियलबीटी ; // एक BluetoothSerial ऑब्जेक्ट बनाएं
बाइट BT_INP ; // ब्लूटूथ इनपुट स्टोर करने के लिए वेरिएबल

// जांचें कि क्या एसडीके कॉन्फ़िगरेशन में ब्लूटूथ और ब्लूड्रॉइड सक्षम हैं
#यदि !परिभाषित(CONFIG_BT_ENABLED) || !परिभाषित(CONFIG_BLUEDROID_ENABLED)
#त्रुटि ब्लूटूथ सक्षम नहीं है. इसे सक्षम करने के लिए `makemenuconfig` चलाएँ।
#अगर अंत

खालीपन स्थापित करना ( ) {
​पिनमोड ( LED_पिन , आउटपुट ) ; // एलईडी पिन को आउटपुट के रूप में सेट करें
धारावाहिक। शुरू ( 115200 ) ;
सीरियलबीटी. शुरू ( 'ईएसपी32' ) ; // ब्लूटूथ को 'ESP32' नाम से प्रारंभ करें
धारावाहिक। println ( 'ब्लूटूथ डिवाइस पेयर करने के लिए तैयार है।' ) ; // इंगित करें कि ब्लूटूथ तैयार है
}

खालीपन कुंडली ( ) {
// जांचें कि क्या ब्लूटूथ से पढ़ने के लिए कोई डेटा उपलब्ध है
अगर ( सीरियलबीटी. उपलब्ध ( ) ) {
BT_INP = सीरियलबीटी. पढ़ना ( ) ; // ब्लूटूथ से आने वाली बाइट पढ़ें
धारावाहिक। लिखना ( BT_INP ) ; // पढ़े गए बाइट को सीरियल मॉनिटर पर इको करें
}

// प्राप्त ब्लूटूथ डेटा की जांच करें और एलईडी स्थिति सेट करें
अगर ( BT_INP == '1' ) {
डिजिटल लिखें ( LED_पिन , उच्च ) ; // यदि '1' प्राप्त होता है तो एलईडी चालू करें
} अन्य अगर ( BT_INP == '0' ) {
डिजिटल लिखें ( LED_पिन , कम ) ; // यदि '0' प्राप्त होता है तो एलईडी बंद कर दें
}
}

यह कोड ब्लूटूथ का उपयोग करके एलईडी को नियंत्रित करने के लिए ESP32 माइक्रोकंट्रोलर के लिए है। इसमें ब्लूटूथ संचार के लिए एक लाइब्रेरी शामिल है। इसके बाद, यह LED पिन को परिभाषित करता है और ESP32 नामक डिवाइस के साथ ब्लूटूथ सेट करता है। मुख्य लूप ब्लूटूथ डेटा पढ़ता है और प्राप्त कमांड के आधार पर एलईडी को चालू या बंद कर देता है (चालू के लिए 1, बंद के लिए 0)।

सर्किट आरेख

सर्किट आरेख सरल है, जिसमें पिन पर एक एलईडी जुड़ा हुआ है डी15 ESP32 का. आप एलईडी नियंत्रण के लिए किसी अन्य GPIO को परिभाषित कर सकते हैं।

संबंधित: ESP32 पिनआउट संदर्भ-अंतिम गाइड

हार्डवेयर

हार्डवेयर में, आपको एक ब्रेडबोर्ड, एक ESP32 बोर्ड और एक LED की आवश्यकता होगी। ESP32 को सिस्टम से कनेक्ट करें और प्रोग्राम को उस पर अपलोड करें।

अब एंड्रॉइड फोन ब्लूटूथ सीरियल संचार एप्लिकेशन से 1 और 0 भेजें।

आपको एंड्रॉइड फोन से प्राप्त Arduino IDE टर्मिनल पर वही इनपुट दिखाई देगा।

उत्पादन

एक बार जब आप उच्च या 1 मान भेजेंगे तो एलईडी चालू हो जाएगी, इसी तरह जब आप कम मान भेजेंगे तो एलईडी बंद हो जाएगी।

एक कस्टम बटन सेट करें

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

टिप्पणी: बटन सेटिंग खोलने के लिए, बटन को देर तक दबाएँ।

हाई बटन मान सेट करने के लिए, निम्नलिखित सेटिंग्स परिभाषित करें।

LOW बटन मान के लिए समानता, आपको नीचे दी गई सेटिंग्स को परिभाषित करने की आवश्यकता है।

हमने ब्लूटूथ का उपयोग करके ESP32 बोर्ड को एंड्रॉइड फोन से सफलतापूर्वक कनेक्ट कर लिया है। अब आप इसका उपयोग करके कई प्रोजेक्ट बना सकते हैं। जैसे, आप रिले सर्किट के माध्यम से ESP32 ब्लूटूथ का उपयोग करके अपने घरेलू उपकरणों को नियंत्रित कर सकते हैं।

संबंधित: Arduino IDE का उपयोग करके ESP32 के साथ रिले

निष्कर्ष

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