सोमवार, 13 मई 2019

HC-05 Bluetooth module with Arduino

आज हम  HC-05  ब्लूटूथ मॉड्यूलको  Arduino Uno. के साथ कनेक्ट कर के  स्मार्ट फोन से आरडूइनो से जुडी हुई चीजें कैसे ऑन - ऑफ़ की जा सकती है यह सीखेंगे. 

The HC-05


मैंने यह ब्लूटूथ मॉड्यूल अमेज़न के वेबसाइट पर खरीदा. आप चाहो तो इन्हे इस लिंक पर  इस लिंक पर  देख सकते हो

यह ब्लू टूथ के लिए आरडूइनो के साथ इस्तेमाल करने के लिए सबसे लोकप्रिय ब्लूटूथ मॉड्यूल है. हालाँकि इसका नया व्हर्जन HC-06 भी इस समय मिल रहा है. लेकिन वह सिर्फ डाटा रिसीव करने के लिए काम आता है, जबकि HC-05 ट्रांसमीटर और रिसीवर दोनों काम कर सकता है.



ऊपर दिख रही पिनों में से हमें सिर्फ चार पिन इस्तेमाल करने हैं. VCC को आर्दुइनो के 3.3 v से जोडें. GND को आर्दुइनो के GND से जोडें.  RXD यह रिसीवर पिन है और TXD ट्रांसमीटर पिन है




 HC-05 के RXD को आरडूइनो के TX से और TXD को RX से जोडें.

☹️ यहाँ आम गलती होती है  RXD को  RX से और TXD को TX से  जोड़ने की.

जब हम आरडूइनो में प्रोग्राम अपलोड करते हैं तो उसके लिए RX, TX पिनों का इस्तेमाल होता है. ये पिने एक साथ दो सर्किट में नहीं काम कर सकती, इसलिए जब प्रोग्राम अपलोड करना हो तो उस समय , TX, RX से जुड़े हुए वायर हटा लें. प्रोग्राम अपलोड सक्सेस होने पर दुबारा उसे जोड़ दें.

Testing HC-05 module with Arduino

आप HC-05 ब्लूटूथ मॉड्यूलको आरडूइनो से ऐसे जोडें

VCC - 3.3 v
GND - GND
TXD - RX
RXD - TX

अब ब्रेड बोर्ड पर एक एलईडी को 330 Ohms का रेजिस्टर जोडें. रेजिस्टर का एक छोर एलईडी के छोटे पिन से (-ve ) एनोड से और दुसरा छोर ब्रेड बोर्ड के कॉमन रेल से जोडें. बाकी सभी ग्राउंड के वायर इसी रेल पर जोडें.
और एलईडी का  (+ve) कैथोड आरडूइनो के पिन 7 से जोडें. 

इस एक्सपेरिमेंट के लिए हम यह प्रोग्राम इस्तेमाल करेंगे

void setup() {
 Serial.begin(9600);
 pinMode(7, OUTPUT);
 digitalWrite(7, LOW);
  }


void loop() {
   if(Serial.available()>0)
   {     
      char x = Serial.read();
      switch(x)
      {
        case 'a': digitalWrite(7, HIGH);break; 
        case 'b': digitalWrite(7, LOW);break;
        default : break;
      }
        delay(50);
   } //end switch
} //end loop 


// यहाँ पर हमने pin 7 को आउटपुट पिन डिक्लेर किया है,  इसलिए हम एलईडी को इस पिन से जोड़ेंगे.
//Serial.begin()  यह फंक्शन आरडूइनो और ब्लूटूथ मॉड्यूल के बीच सिरिअल कम्युनिकेशन शुरू कर देता है (TX, RX) इन पिनो के थ्रू.

// digitalWrite(7,LOW) इससे एलईडी शुरू में ऑफ की जाती है.
//Serial.available() इस फंक्शन से हम ब्लूटूथ मॉड्यूल से सिरिअल पोर्ट पर कुछ डाटा भेजा जा रहा है या नहीं  ये चेक कर सकते हैं.
// अब  हमें एक करैक्टर वेरिएबल डिक्लेर करना पड़ता है. मैंने x इस्तेमाल किया है. सिरिअल पोर्ट पर आ रहा डाटा इस वेरिएबल में स्टोर कर के फिर उसे प्रोग्राम में हम इस्तेमाल करते  हैं.
// यहाँ पर हम switch- case का इस्तेमाल कर रहे हैं. आप अपने स्मार्ट फोनमें ब्लूटूथ टर्मिनल एप पर जब कोई करैक्टर टाइप करते हैं तो वह x वेरिएबल में स्टोर किया जाता है. अगर आपने a टाइप किया तो एलईडी ऑन हो जाएगी. और अगर आपने b टाइप किया तो एलईडी ऑफ हो जायेगी.
// हम इस एक्सपेरिमेंट के लिए एक ब्लूटूथ टर्मिनल एप का इस्तेमाल करेंगे. इसके इस्तेमाल से आप आरडूइनो के सभी इन/आउट पोर्ट (2 से लेकर 13 तक) कण्ट्रोल कर सकते हैं.

अगली बार हम आर्दुइनो के कई पोर्ट कनेक्ट करके देखेंगे.

आप इस प्रोग्राम का कोड   इस लिंक से  डाउनलोड कर सकते हैं

मैंने जो ऍप इस्तेमाल किया है उसका नाम Arduino Bluetooth Terminal by Fredrik Hauke. आप इसे  यहाँ से इंस्टाल  कर सकते हैं .

सर्किट में वोल्टेज डिवाइडर ऍड करें  

हमें आरडूइनो के TX पिन और HC-05 मॉड्यूल के RXD पिन के बीच वोल्टेज डिवाइडर.जोड़ना पडेगा.
क्योंकि आरडूइनो के TX पिन से 5v का आउटपुट सिग्नल भेजा जता है, जबकि  HC-05 के TX और RX पिन  3.3v के सिग्नल लेवल पर काम करते हैं.  आरडूइनो के TX पिन से आनेवाला 5v का सिग्नल HC-05 मॉड्यूल को हानि पहुंचा सकता है. इसलिए इस वोल्टेज को कम करने के लिए हम दो रजिस्टर्स का इस्तेमाल करेंगे. 1K और 2K. हम ये रजिस्टर्स ब्रेडबोर्ड के ऊपर जोड़ेंगे. 2 K के रजिस्टर का एक छोर ब्रेडबोर्ड के कॉमन रेल में जोड़ें. उसी  रो में याने लाईन में  1 K के रजिस्टर को भी जोडें. दोनों रजिस्टर्स के बीच कुछ जगह छोडें, जिसमें हम HC-05 मॉड्यूल के RXD पिन से आनेवाली वायर जोड़ सकें. 1 K के रजिस्टर का दुसरा छोर ब्रेडबोर्ड के दुसरे हिस्से में लगेगा, जिसको हम एक वायर से आरडूइनो के TX पिन से जोड़ेंगे.  तो इस तरह से हमारा वोल्टेज डिवाइडर बन गया.

 बाकी सर्किट पहले की तरह जोडें.
 आरडूइनो के ग्राउंड पिन को ब्रेडबोर्ड के कॉमन रेल से जोडें.
HC-05 के ग्राउंड पिन को ब्रेडबोर्ड के कॉमन रेल से जोडें.
HC-05 के VCC को आरडूइनो के 3.3 v पिन से जोडें.
HC-05 के TXD पिन को आरडूइनो के RX पिन से जोडें.
एलईडी के +ve को आरडूइनो के 7 नंबर वाली पिन से जोडें
 अब यह सर्किट वोल्टेज डिवाइडर के साथ तैयार है. .



अब आप आरडूइनो में प्रोग्राम अपलोड कर के इस सर्किट को पहले की तरह टेस्ट कर सकता हैं

4 एलईडी को ब्लूटूथ से कंट्रोल कैसे करें ?


अब तक हमने एक एलईडी को ब्लूटूथ से कंट्रोल कर के देखा, अब हम चार एलईडीज को कंट्रोल करेंगे.  
इसके लिए हम चार एलईडीज और 270 Ohms के चार रजिस्टर्स इस्तेमाल करेंगे. ये सारे कॉमपोनंट्स ब्रेडबोर्ड पर इस तरह लगेंगे.
चारों एलईडीज के निगेटिव्ह  और ब्रेडबोर्ड के कॉमन रेल के बीच एक एक रजिस्टर जोड़ दिया है .
अब HC-05 ब्लूटूथ मॉड्यूल के VCC और आर्डूईनो के 3.3v की पिन के बीच एक वायर जोड़ दिया.
अब आर्डूईनो के GND पिन और ब्रेडबोर्ड के कॉमन रेल के बीच एक वायर जोड दी.
अब ब्रेडबोर्ड के कॉमन रेल और ब्लूटूथ मॉड्यूल के बीच एक वायर जोड दी
अब ब्लूटूथ मॉड्यूल के TXD और आर्डूईनो के RX पिन के बीच एक वायर जोड दी
अब ब्लूटूथ मॉड्यूल के RX और व्होल्टेज डिवाइडर के दो रजिस्टर के बीच एक वायर जोड दी जैसे मैंने पहले बताया है.
अब 1K के रजिस्टर और आर्डूईनो के TX पिन के बीच एक वायर जोड दी
इसके बाद हम हरेक एलईडी के पॉजिटिव्ह से एक एक वायर आर्डूईनो के एक एक डिजिटल पोर्ट से जोडेंगे. यहाँ पर मैंने पिन 7, 8. 9, और 10 से जोड दिया है
अब इसके बाद ब्रेडबोर्ड के दो हिस्सोंके कॉमन रेल को एक वायर से जोड दिया. क्योंकि मैं ये सर्किट ब्रेडबोर्ड के दो  हिस्सोंमें फैला है
वायरिंग पूरी हो जाने पर प्रोग्राम का कोड डाऊनलोड कर के उसे कंप्यूटर पर ओपन करें और फिर आर्डूईनो में अपलोड करें. प्रोग्राम का कोड यहाँ से डाउनलोड करें
अब आप वही ऍप ओपन करें जिसे हमने पहले इंस्टाल किया था.
यहाँ पर कैपिटल A, B, C और D टाइप कर के उसे सेंड करने पर एक एक एलईडी ऑन होगा. और स्माल a, b, c, और d टाइप करने पर एलईडी ऑफ होंगे. आप एक से जादा कॅॅरेेक्टर भी सेंड कर के देख सकते हो.

कोई टिप्पणी नहीं:

एक टिप्पणी भेजें