- सामग्री की आवश्यकता
- ब्लूटूथ मॉड्यूल (HC-05)
- STM32 USART पोर्ट
- सर्किट आरेख और कनेक्शन
- प्रोग्रामिंग STM32F103C8
- Android फोन के साथ ब्लूटूथ मॉड्यूल को जोड़ने के लिए कदम
आज की दुनिया में ब्लूटूथ बहुत लोकप्रिय हो गया है और लगभग हर डिवाइस जैसे मोबाइल फोन, लैपटॉप, और कार इंफोटेनमेंट सिस्टम वायरलेस संचार के लिए ब्लूटूथ का उपयोग करता है । ब्लूटूथ का उपयोग न केवल डेटा ट्रांसफर करने के लिए किया जाता है, बल्कि किसी अन्य ब्लूटूथ डिवाइस को वायरलेस तरीके से नियंत्रित करने के लिए किया जाता है, जैसे ब्लूटूथ हेडसेट का उपयोग करके आप अपने मोबाइल फोन से वायरलेस तरीके से गाना सुन सकते हैं या अपने मोबाइल से गाने चलाने के लिए कार ऑडियो सिस्टम का उपयोग कर सकते हैं।
ब्लूटूथ एक वायरलेस तकनीक है जो 2.4GHz की आवृत्ति पर काम करती है। सामान्य ब्लूटूथ सिग्नल 10 मीटर त्रिज्या की सीमा में है। ब्लूटूथ आमतौर पर एम्बेडेड परियोजनाओं में वायरलेस तकनीक का सबसे अधिक उपयोग किया जाता है बशर्ते कि संचार की सीमा सीमित हो। ब्लूटूथ ने अपने कम बिजली की खपत और कम लागत के संचालन का लाभ जोड़ा है। यह आमतौर पर ब्लूटूथ एप्लिकेशन का उपयोग करके स्मार्ट फोन के साथ माइक्रोकंट्रोलर्स को इंटरफेस करने के लिए उपयोग किया जाता है।
हमने Arduino, 8051, PIC इत्यादि जैसे अन्य माइक्रोकंट्रोलरों के साथ ब्लूटूथ मॉड्यूल के इंटरफेस को देखा है। अब इस ट्यूटोरियल में हम STM32F103C8 के साथ HC-05 ब्लूटूथ मॉड्यूल को चालू करेंगे और Android मोबाइल का उपयोग करते हुए एक एलईडी चालू / बंद करेंगे ।
सामग्री की आवश्यकता
- STM32F103C8
- ब्लूटूथ मॉड्यूल (HC-05)
- एलईडी
- Android मोबाइल
- ब्रेड बोर्ड
- तारों को जोड़ना
सॉफ्टवेयर:
- ब्लूटूथ टर्मिनल (Android एप्लिकेशन)
ब्लूटूथ मॉड्यूल (HC-05)
यह ज्यादातर एम्बेडेड परियोजनाओं में ब्लूटूथ मॉड्यूल का उपयोग किया जाता है। यह एक धारावाहिक ब्लूटूथ मॉड्यूल है जो धारावाहिक संचार का उपयोग 100 मीटर से कम और 5V (3.3V न्यूनतम) पर करता है। इसका उपयोग दो माइक्रोकंट्रोलरों को वायरलेस रूप से और मोबाइल फोन और लैपटॉप के साथ जोड़ने के लिए किया जा सकता है। चूंकि कई Android एप्लिकेशन उपलब्ध हैं, यह वायरलेस ब्लूटूथ नियंत्रित प्रोजेक्ट बनाने के लिए बहुत उपयोगी है।
यह USART संचार का उपयोग करता है और USART संचार प्रोटोकॉल वाले माइक्रोकंट्रोलर्स के साथ हस्तक्षेप किया जा सकता है।
इसमें एक एकीकृत एंटीना है। इसमें मास्टर / स्लेव कॉन्फ़िगरेशन हैं जिन्हें एटी कमांड मोड में बदला जा सकता है जो तब उपयोगी होता है जब केवल एक डिवाइस को पीसी (मास्टर) से गुलाम (किसी भी एमसीयू) के लिए उदाहरण के लिए डेटा (मास्टर दास) भेजना चाहिए। एक मास्टर अन्य उपकरणों से कनेक्ट हो सकता है और दास मास्टर के अलावा अन्य कनेक्शन से कनेक्ट नहीं होता है।
काम करने का तरीका
इसमें दो मोड AT कमांड मोड और डेटा मोड हैं।
जब ब्लूटूथ संचालित होता है तो यह डेटा मोड को डिफ़ॉल्ट रूप से दर्ज करता है । इस मोड का उपयोग डेटा ट्रांसफर के लिए किया जा सकता है। पावर अप के दौरान एटी कमांड मोड में प्रवेश करने के लिए हमें मास्टर / स्लेव कॉन्फ़िगरेशन जैसे मॉड्यूल की डिफ़ॉल्ट सेटिंग्स को बदलने के लिए मॉड्यूल में मौजूद बटन को दबाने की जरूरत है।
ब्लूटूथ मॉड्यूल के पिन
- एन पिन (सक्षम) -इस पिन का उपयोग डेटा मोड या एटी कमांड मोड को सेट करने के लिए किया जाता है। डिफ़ॉल्ट रूप से यह डेटा मोड में है। जब पावर अप के दौरान बटन दबाया जाता है तो वह AT कमांड मोड में जाता है।
- + 5V पिन - इसका उपयोग मॉड्यूल को बिजली की आपूर्ति के लिए किया जाता है
- जीएनडी पिन - यह मॉड्यूल के लिए जमीन के लिए उपयोग किया जाता है
- TX पिन - यह पिन MCU के RX पिन से जुड़ा होता है
- RX पिन - यह पिन MCU के TX पिन से जुड़ा होता है
- स्टेट - यह पिन मॉड्यूल की स्थिति को इंगित करता है, संकेतों के बारे में नीचे देखें
एलईडी संकेत
- इसमें एक LED (RED) इंडिकेटर है जो ब्लूटूथ मॉड्यूल की स्थिति प्रदान करता है।
- जब ब्लूटूथ मॉड्यूल किसी भी डिवाइस से कनेक्ट नहीं होता है, तो सिग्नल कम हो जाता है और लाल एलईडी ब्लिंक लगातार चलता रहता है जो दर्शाता है कि मॉड्यूल पीएआरईडी नहीं है ।
- जब ब्लूटूथ मॉड्यूल किसी डिवाइस से कनेक्ट होता है तो सिग्नल हाई हो जाता है और लाल एलईडी ब्लिंक कुछ देरी के साथ होता है जो इंगित करता है कि मॉड्यूल PAIRED है ।
अन्य माइक्रोकंट्रोलर्स के साथ ब्लूटूथ मॉड्यूल HC-05 के बारे में अधिक जानने के लिए हमारी अन्य परियोजनाओं की जाँच करें:
- Arduino का उपयोग कर ब्लूटूथ नियंत्रित खिलौना कार
- 8051 का उपयोग कर ब्लूटूथ नियंत्रित होम ऑटोमेशन सिस्टम
- रास्पबेरी पाई का उपयोग करके आवाज नियंत्रित रोशनी
- स्मार्ट फोन Arduino और प्रसंस्करण का उपयोग कर एफएम रेडियो नियंत्रित
- G-Sensor और Arduino का उपयोग करके मोबाइल फ़ोन नियंत्रित रोबोट कार
- PIC Microcontroller के साथ ब्लूटूथ मॉड्यूल HC-06 को इंटरफेज करना
STM32 USART पोर्ट
STM32F103C8 (BLUE PILL) USART सीरियल कम्यूनिकेशन पोर्ट्स को नीचे दी गई पिन आउट इमेज में दिखाया गया है। ये नीले रंग के होते हैं (PA9-TX1, PA10- RX1, PA2-TX2, PA3- RX2, PB10-TX3, PB11- RX3)। इसके तीन ऐसे संचार चैनल हैं।
सर्किट आरेख और कनेक्शन
STM32 के साथ ब्लूटूथ मॉड्यूल को इंटरफेस करने के लिए सर्किट कनेक्शन नीचे दिए गए हैं
STM32F103C8 और ब्लूटूथ मॉड्यूल (HC-05) के बीच संबंध
- STM32F103C8 का TX पिन (PA9) ब्लूटूथ मॉड्यूल के RX पिन से जुड़ा है।
- STM32F103C8 का RX पिन (PA10) ब्लूटूथ मॉड्यूल के TX पिन से जुड़ा है।
- ब्लूटूथ मॉड्यूल का VCC (+ 5V) पिन STM32F103C8 के 5V पिन से जुड़ा है।
- ब्लूटूथ मॉड्यूल का GND पिन STM32F103C8 के GND पिन से जुड़ा है।
अन्य कनेक्शन
- STM32 (ब्लू पिल) का पिन (PA0) पिन एक श्रृंखला रोकनेवाला के माध्यम से एलईडी के सकारात्मक पिन से जुड़ा हुआ है। एलईडी का उपयोग यहां मिश्रित रंग के लिए किया जाता है।
- लेड का दूसरा पिन STM32 के GND से जुड़ा है।
प्रोग्रामिंग STM32F103C8
STM32 के साथ ब्लूटूथ को बदलना Arduino के समान है और STM32 में प्रोग्रामिंग Arduino IDE के समान है। Arduino IDE का उपयोग करके USB के साथ STM32 प्रोग्रामिंग के लिए इस ट्यूटोरियल को देखें।
जैसा कि पहले ही बताया गया है, इस परियोजना में, हम STM32F103C8 के साथ (HC-05) ब्लूटूथ मॉड्यूल को इंटरफ़ेस करेंगे और एलईडी को चालू और बंद करने के लिए ब्लूटूथ टर्मिनल एंड्रॉइड एप्लिकेशन के साथ एंड्रॉइड स्मार्ट फोन का उपयोग करेंगे।
नोट: STM32F103C8 पर कोड अपलोड करते समय RX और TX पिन को हटा दिया जाना चाहिए।
इस प्रोजेक्ट का पूरा कोड इस ट्यूटोरियल के अंत में एक प्रदर्शन वीडियो के साथ दिया गया है ।
इस परियोजना के लिए कोडिंग इतना सरल है। समान Arduino कोड का उपयोग किया जा सकता है लेकिन केवल पिन को बदलना चाहिए। क्योंकि हमारे पास STM32F103C8 में USART पिन के तीन सेट हैं, इसलिए हमें उस सही पिन को निर्दिष्ट करना होगा जिसे हमने ब्लूटूथ मॉड्यूल से कनेक्ट करने के लिए उपयोग किया था।
1. सबसे पहले हमें पिन को उनके संबंधित पिन नंबर के साथ इंट डेटा प्रकार के साथ नाम देना होगा
const int pinout = PA0;
2. अगला हमें एंड्रॉइड मोबाइल से सीरियल डेटा स्टोर करने के लिए एक चर की आवश्यकता है। डेटा एक चार या पूर्णांक निम्नानुसार हो सकता है
char inputdata = 0;
3. शून्य सेटअप में अगला (), हमें 900 की बॉड दर देकर STM32 ब्लू पिल और ब्लूटूथ मॉड्यूल के बीच धारावाहिक संचार शुरू करना चाहिए
सीरियल १.बेगिन (९ ६००);
हमने यहाँ Serial1 का उपयोग किया क्योंकि हमने HC-05 को TX1 और STM32 के RX1 से जोड़ा ।
हम Serial2 या Serial3 का भी उपयोग कर सकते हैं लेकिन तदनुसार पिन कनेक्ट होना चाहिए।
4. एक इंट्रो संदेश सीरियल डेटा के रूप में सीरियल 1 को भेजा जाता है , जो ब्लूटूथ मॉड्यूल HC05 के लिए है। यह मॉड्यूल एंड्रॉइड मोबाइल के ब्लूटूथ टर्मिनल ऐप पर डेटा भेजता है। इसलिए हम नीचे दिए गए कथनों का उपयोग करते हैं
Serial1.print ("CIRCUIT DIGEST \ n"); Serial1.print ("STM32 \ n" के साथ BLUETOOTH);
5. आगे हमें आउटपुट के रूप में पिनमोड (PA0) को सेट करने की जरूरत है, क्योंकि हम इस पिन के नेतृत्व में जुड़े हुए हैं
pinMode (पिनआउट, OUTPUT);
6. शून्य लूप () में अगला , हम सीरियल डेटा को पढ़ने के लिए निम्नलिखित डेटा चलाते हैं और तदनुसार एलईडी को चालू / बंद करते हैं
शून्य लूप () { अगर (सीरियल १. उपलब्ध है ()> ०) { इनपुटडेटा = सीरियल १.डर (); अगर (इनपुटडेटा == '1') { डिजिटलविराइट (पिनआउट, हाई); Serial1.print ("LED ON \ n"); } और अगर (इनपुटडेटा == '0') { डिजिटलविराइट (पिनआउट, एलओडब्ल्यू); Serial1.print ("LED OFF \ n"); } } }
यहाँ हम का उपयोग करता है, तो स्टेटमेंट इन कोड केवल निष्पादित करता है क्योंकि जब Serial1 पोर्ट ब्लूटूथ मॉड्यूल यही कारण है कि इस बयान प्रयोग किया जाता है से प्राप्त किसी भी डेटा है Serial1.available ()> 0 । अन्यथा अगर यह नहीं मिलेगा, तो यह तब तक इंतजार करता है जब तक यह धारावाहिक संचार शुरू नहीं करता है। अब यह प्राप्त डेटा को एक चर इनपुटडेटा = Serial1.read () में संग्रहीत करता है। फिर यह ब्लूटूथ टर्मिनल ऐप से भेजे गए मूल्य की जांच करता है। इसलिए यदि मान 1 है, तो यह LED को प्रिंट करता है और पिन को डिजिटल बनाता है।
Android फोन के साथ ब्लूटूथ मॉड्यूल को जोड़ने के लिए कदम
चरण 1: - Arduino IDE से STM32 में कोड अपलोड करने और सर्किट को पावर देने के बाद मोबाइल से ब्लूटूथ खोलें। UPLOADING कोड के दौरान RX और TX पिन हटाने के लिए रिमेंम्बर
चरण 2: - उपलब्ध उपकरणों में HC-05 का चयन करें और 1234 के रूप में पासवर्ड डालें
चरण 3: - बाँधने के बाद, ब्लूटूथ टर्मिनल ऐप खोलें और एक डिवाइस कनेक्ट करें और नीचे दिखाए अनुसार HC-05 का चयन करें
चरण 4: - HC-05 ब्लूटूथ मॉड्यूल के साथ जुड़ने के बाद, एलईडी को चालू और बंद करने के लिए टर्मिनल 1 या 0 में मान प्रदान करें। आपको एक संदेश भी प्राप्त होगा कि एलईडी चालू या बंद है।