- ESP32 ब्लूटूथ के साथ आरंभ करना
- ब्लूटूथ कम ऊर्जा (BLE) और ESP32 क्लासिक ब्लूटूथ को समझना
- ESP32 के लिए Arduino IDE तैयार करना
- ESP32 के लिए सीरियल ब्लूटूथ कार्यक्रम
- ESP32 के साथ सीरियल ब्लूटूथ का परीक्षण
ब्लूटूथ मॉड्यूल जैसे HC-05 और HC-06 को Arduino IDE के साथ सेट-अप और क्विक उपयोग करना आसान है, लेकिन उच्च बिजली की खपत जैसी उनकी अपनी सीमा है और वे पुराने ब्लूटूथ V2.0 पर काम करते हैं। इसके अलावा, हाल ही में मैंने खुद को एक नया ESP32 DEV किट दिया है, इन मॉड्यूल्स में इन -बिल्ट वाई-फाई और ब्लूटूथ, पर्याप्त ADC और DAC पिन, ऑडियो सपोर्ट, एसडी कार्ड सपोर्ट, डीप स्लीप मोड इत्यादि जैसे फीचर्स हैं । IoT परियोजनाओं के निर्माण के लिए सब कुछ।
और जिस तरह कोई भी शौक़ीन इसे पसंद करेगा, ESP32 को अब आधिकारिक तौर पर Arduino IDE का समर्थन प्राप्त है। पहले हमें नील कोलबंस लाइब्रेरी के साथ एक बहुत बड़ा काम करना है, लेकिन अब इस आदमी की हार्ड प्रोग्रामिंग प्रोग्रामिंग ESP32 के लिए Arduino IDE के साथ धन्यवाद केक चलना है। इसलिए, मैंने अपना Arduino IDE लॉन्च किया और BLE प्रोग्राम्स के बारे में पूरी तरह से जाना, जिसके माध्यम से मुझे कुछ भी समझ नहीं आया। सर्फिंग और यूट्यूबिंग के लंबे समय के बाद मुझे एहसास हुआ कि ESP32 का उपयोग करके ब्लूटूथ लो एनर्जी (BLE) के साथ काम करना है तो समझने के लिए और भी बहुत कुछ है । मैंने BLE को अलग-अलग लेखों में शामिल करने का निर्णय लिया, इसलिए यहां हम स्मार्ट फोन के साथ एलईडी को टॉगल करने के लिए ESP32 के क्लासिक सीरियल ब्लूटूथ का उपयोग करेंगे। यदि आप यह जांचने में रुचि रखते हैं कि BLE सुविधाओं का उपयोग कैसे करें तो ESP32 BLE सर्वर और ESP32 BLE क्लाइंट पर इस लेख को देखें।
ESP32 ब्लूटूथ के साथ आरंभ करना
पहला कार्यक्रम जिसे मैं आज़माना चाहता था, वह एक साधारण प्रोग्राम था, जिसके इस्तेमाल से मैं अच्छे पुराने HC-05 दिनों की तरह ही मोबाइल फ़ोन ब्लूटूथ टर्मिनल एप्लीकेशन से LED को चालू या बंद कर सकता हूँ। लेकिन यह पता चला है कि, ब्लूटूथ लो एनर्जी (BLE) इसके लिए इंडेंट नहीं है। मुझे यह भी पता चला कि ESP32 मॉड्यूल में दो प्रकार के ब्लूटूथ हैं, एक है क्लासिक ब्लूटूथ और दूसरा है BLE ब्लूटूथ लो एनर्जी। ठीक है, लेकिन क्यों?…. हमारे पास दो प्रकार के ब्लूटूथ क्यों हैं और मुझे अपनी परियोजना के लिए क्या उपयोग करना चाहिए?
ब्लूटूथ कम ऊर्जा (BLE) और ESP32 क्लासिक ब्लूटूथ को समझना
जैसा कि नाम इंगित करता है ब्लूटूथ लो एनर्जी, क्लासिक ब्लूटूथ की तुलना में कम बिजली की खपत करता है। यह पूर्व-निर्धारित आवधिक अपडेट के साथ आवश्यकतानुसार डेटा भेजकर प्राप्त किया जाता है। लेकिन क्लासिक ब्लूटूथ के विपरीत इसका उपयोग फाइल या म्यूजिक ट्रांसफर करने के लिए नहीं किया जाता है। क्या आपने कभी सोचा है कि आपका फ़ोन अपने आप कैसे पहचान लेता है कि आपके द्वारा अभी-अभी ली गई ब्लूटूथ डिवाइस एक ऑडियो डिवाइस या लैपटॉप या फ़ोन है, आपने भी देखा होगा कि वायरलेस ऑडियो प्लेयर या फिटनेस बैंड में बैटरी स्तर स्वचालित रूप से आश्चर्यजनक स्थिति में दिखाया जाता है आपका मोबाइल; ये सभी बीएलई उपकरणों की विशेषताओं के साथ संभव हैं। एक BLE डिवाइस ब्लूटूथ V4.0 के साथ काम करता है और सर्वर या एक क्लाइंट के रूप में कम शक्ति के साथ काम कर सकता हैबीम, स्मार्ट घड़ियों, फिटनेस बैंड आदि के लिए एक आदर्श विकल्प ।
दूसरी ओर क्लासिक ब्लूटूथ केवल साधारण सादा पुराना ब्लूटूथ है जिसका उपयोग हम फाइल और अन्य डेटा ट्रांसफर करने के लिए करते हैं। लगभग सभी बीएलई उपकरणों में क्लासिक ब्लूटूथ कार्यक्षमता होती है। HC-05 जैसे मॉड्यूल में उपयोग किया जाने वाला ब्लूटूथ, ब्लूटूथ SSP (सीरियल पोर्ट प्रोटोकॉल) नामक क्लासिक ब्लूटूथ का एक संस्करण है, जिसका अर्थ है कि ब्लूटूथ मानक सीरियल प्रोटोकॉल का पालन करता है, जो बिना ज्यादा ओवरहेड के डेटा भेजना और प्राप्त करना आसान बनाता है। इस ट्यूटोरियल के अंत में हम सीखेंगे कि ESP32 में सीरियल ब्लूटूथ कार्यक्षमता का उपयोग कैसे करें।
इस लेख में हम एक स्मार्टफोन के साथ इसे जोड़ने के लिए ESP32 पर सीरियल ब्लूटूथ फ़ंक्शन का उपयोग करेंगे और प्ले स्टोर से किसी भी मौजूदा ब्लूटूथ टर्मिनल ऐप का उपयोग करके ESP32 को कमांड भेजेंगे और तदनुसार बोर्ड को चालू करें ।
बाद के लेखों में हम सर्वर के साथ ही क्लाइंट के रूप में ईएसपी 32 बीएलई को कवर करेंगे। BLE सर्वर का उपयोग आमतौर पर BLE डेटा को अन्य ब्लूटूथ डिवाइस पर भेजने के लिए किया जाता है और BLE क्लाइंट का उपयोग अन्य BLE डिवाइस को स्कैन करने के लिए किया जाता है।
ESP32 के लिए Arduino IDE तैयार करना
ध्यान दें कि Arduino IDE डिफ़ॉल्ट रूप से ESP32 बोर्ड का समर्थन नहीं करता है; आपको बोर्ड मैनेजर का उपयोग करके उन्हें डाउनलोड और इंस्टॉल करना होगा। यदि यह ESP32 के साथ आपका पहला कार्यक्रम है तो अपने Arduino में ESP32 बोर्ड को जोड़ने और एक परीक्षण स्केच अपलोड करने के लिए इस आरंभ किए गए ट्यूटोरियल का पालन करें।
इसके अलावा, आप ESP32 के साथ और अधिक परियोजनाओं को कर सकते हैं, इसके साथ किसी भी माइक्रोकंट्रोलर का उपयोग किए बिना।
ESP32 के लिए सीरियल ब्लूटूथ कार्यक्रम
ESP32 ब्लूटूथ का उपयोग करके एक एलईडी को चालू करने का पूरा कार्यक्रम इस पृष्ठ के अंत में दिया गया है। इस शीर्षक के तहत, छोटे स्निपेट में कोड को तोड़ने और उन्हें समझने की कोशिश करते हैं। यदि आपने पहले से ही HC-05 जैसे अन्य ब्लूटूथ मॉड्यूल का उपयोग किया है, तो आपको यह ESP32 ब्लूटूथ क्लासिक उदाहरण कार्यक्रम बहुत समान लगेगा ।
कार्यक्रम का विचार ईएसपी 32 का उपयोग करके सीरियल ब्लूटूथ कनेक्शन को इनिशियलाइज़ करना है और पेयर डिवाइस से डेटा सुनना है । यदि आने वाला डेटा '1' है तो हम एलईडी को चालू करते हैं और यदि यह '0' है तो हमें एलईडी को बंद कर देना चाहिए। हम हेडर फाइल जोड़कर हमारे कार्यक्रम शुरू BluetoothSerial जो Bluetoth एसएसपी के रूप में काम करने के लिए ESP32 ब्लूटूथ बनाता है।
# "BluetoothSerial.h" // सीरियल सीरियल के लिए Header File, Arduino में डिफ़ॉल्ट रूप से जोड़ा जाएगा
इस लाइब्रेरी के पीछे बहुत सारी चीजें चल रही हैं, लेकिन हमने चीजों को सरल रखने के लिए इसमें गहराई तक नहीं जाना चुना। अगली चीज़ जो हमें चाहिए वो है हमारे ब्लूटूथ से जुड़े ऑपरेशन के लिए एक वस्तु । यहां मैंने मेरा नाम ESP_BT रखा है, लेकिन आप कोई भी नाम चुन सकते हैं।
BluetoothSerial ESP_BT; // ब्लूटूथ के लिए ऑब्जेक्ट
अगला, शून्य सेटअप () फ़ंक्शन के अंदर । हम बॉड दर 9600 के साथ सीरियल संचार शुरू करते हैं और एक नाम के साथ ब्लूटूथ सिग्नल को इनिशियलाइज़ करते हैं । यहाँ मैंने इसे "ESP32_LED_Control " नाम दिया है, यह वह नाम होगा जो जोड़ी बनाने की कोशिश करने पर हमारे फोन से मिलेगा। अंत में मैंने इन-बिल्ट एलईडी पिन को आउटपुट पिन घोषित किया है क्योंकि हम ब्लूटूथ सिग्नल के आधार पर इसे टॉगल करने जा रहे हैं।
शून्य सेटअप () { Serial.begin (9600); // 9600 ESP_BT.begin ("ESP32_LED_Control") में सीरियल मॉनिटर शुरू करें ; // आपके ब्लूटूथ सिग्नल का नाम Serial.println ("ब्लूटूथ डिवाइस रेडी टू पेयर"); पिनमोड (LED_BUILTIN, OUTPUT); // निर्दिष्ट करें कि एलईडी पिन आउटपुट है }
अनंत शून्य लूप फ़ंक्शन के अंदर, हम जांचते हैं कि क्या ब्लूटूथ मॉड्यूल से कोई डेटा आ रहा है, यदि हाँ तो डेटा को पढ़ने और संग्रहित आवक में संग्रहीत किया जाता है । हम Arduino द्वारा प्राप्त किए जा रहे चेक को पार करने के लिए इस मान को सीरियल मॉनिटर पर भी प्रिंट करते हैं।
अगर (ESP_BT.available ()) // चेक करें कि क्या हमें ब्लूटूथ से कुछ भी मिलता है { आने वाली = ESP_BT.read (); // पढ़ें हम क्या प्राप्त करते हैं Serial.print ("प्राप्त:"); धारावाहिक.प्रदर्शन (आने वाले);
अब, जो भी डेटा प्राप्त होता है, वह आवक चर में संग्रहीत होता है, इसलिए हम इस चर की अपेक्षा मूल्य के साथ सीधे तुलना कर सकते हैं और आवश्यक कार्रवाई कर सकते हैं। लेकिन ब्लूटूथ से भेजा जाने वाला मूल्य चार्ट के रूप में होगा और Arduino उस char का दशमलव मान पढ़ेगा जो फोन से भेजा जा रहा है। हमारे मामले में '' 0 '' के लिए दशमलव का मान 48 होगा और '1' के लिए दशमलव का मान 49 होगा। आप यह समझने के लिए ASCII चार्ट का उल्लेख कर सकते हैं कि हर वर्ण के लिए दशमलव मान क्या होगा।
यहां हमने आने वाले वेरिएबल की तुलना क्रमश: 0 और 1 के लिए 48 और 49 के साथ की है । यदि यह 1 है तो हम एलईडी को बंद कर देते हैं और ब्लूटूथ को एक पावती संदेश भी देते हुए कहते हैं कि एलईडी को बंद कर दिया गया था और इसके विपरीत 0 से।
अगर (आने वाली == 49) { digitalWrite (LED_BUILTIN, HIGH); ESP_BT.println ("LED ON ON"); } अगर (इनकमिंग == 48) { digitalWrite (LED_BUILTIN, LOW); ESP_BT.println ("LED बंद हो गया"); }
ESP32 के साथ सीरियल ब्लूटूथ का परीक्षण
अपने ईएसपी को अपने Arduino IDE से कनेक्ट करें और सही बोर्ड और पोर्ट चुनें जैसा कि ट्यूटोरियल शुरू करने पर चर्चा की गई है। चूंकि यह 3 rd पार्टी बोर्ड मैनेजर है, इसलिए कोड को संकलित और अपलोड करने में थोड़ा अधिक समय लग सकता है। एक बार अपलोड होने के बाद सीरियल मॉनिटर (केवल डिबगिंग के लिए) और अपने फोन पर ब्लूटूथ सेटिंग खोलें। आपको ESP32_LED_Control जोड़ी के साथ एक ब्लूटूथ डिवाइस मिलनी चाहिए ।
अब आप अपने स्मार्टफोन पर कोई भी ब्लूटूथ टर्मिनल ऐप खोल सकते हैं, मैं "ब्लूटूथ टर्मिनल" नाम का उपयोग कर रहा हूं जिसे Google ऐप स्टोर से डाउनलोड किया गया था। ब्लूटूथ एप्लिकेशन को उस डिवाइस से कनेक्ट करें जिसे हमने अभी जोड़ा है और 1 टाइप करें और भेजें दबाएं।
ESP32 मॉड्यूल को इसे प्राप्त करना चाहिए और हमारे कार्यक्रम के अनुसार एलईडी को चालू करना चाहिए और आपको एक पावती संदेश भी देना होगा जिसमें कहा गया है कि एलईडी ऊपर दिखाए गए स्क्रीनशॉट की तरह चालू है । आप सीरियल मॉनीटर को भी देख सकते हैं जो उस डेटा को दिखाएगा जो ESP32 ब्लूटूथ द्वारा दशमलव प्रारूप में प्राप्त किया जा रहा है जो कि आपका Arduino 0 के लिए 48 और 1 के लिए 49 पढ़ेगा जैसा कि पहले बताया गया है। मेरी टर्मिनल विंडो का स्नैपशॉट नीचे दिखाया गया है।
इसी तरह, आपको मोबाइल एप्लिकेशन से 0 भेजकर भी एलईडी बंद करने में सक्षम होना चाहिए। पूरा काम नीचे दिए गए वीडियो में दिखाया गया है । आशा है कि आप ट्यूटोरियल को समझ गए हैं और कुछ उपयोगी सीख गए हैं। यदि आपको कोई संदेह है तो नीचे टिप्पणी अनुभाग में उन्हें छोड़ने के लिए स्वतंत्र महसूस करें या अन्य तकनीकी मदद के लिए हमारे मंचों का उपयोग करें।