- ब्लूटूथ संचार के लिए आवश्यक संकुल स्थापित करना:
- ब्लूटूथ पर रास्पबेरी पाई के साथ युग्मन उपकरण:
- सर्किट आरेख:
- Android App BlueTerm के साथ एलईडी का नियंत्रण:
- प्रोग्रामिंग स्पष्टीकरण:
रास्पबेरी पाई IoT परियोजनाओं के लिए बहुत लोकप्रिय है क्योंकि इसकी इंटरनेट पर वायरलेस संचार की सहज क्षमता है। रास्पबेरी पाई 3 में इनबिल्ट वाई-फाई और ब्लूटूथ है, और ब्लूटूथ एक बहुत लोकप्रिय वायरलेस संचार प्रोटोकॉल है। इसलिए आज हम ब्लूटूथ का उपयोग करके एंड्रॉइड ऐप के माध्यम से रास्पबेरी पाई GPIO पिन को नियंत्रित करने जा रहे हैं ।
यहां हम रास्पबेरी 2 पाई मॉडल बी का उपयोग कर रहे हैं जिसमें इनबिल्ट ब्लूटूथ नहीं है, इसलिए हम एक साधारण यूएसबी ब्लूटूथ डोंगल का उपयोग कर रहे हैं । इसके अलावा हमें केवल एक अवरोधक (220R) और एक एलईडी की जरूरत है जो GPIO को नियंत्रित करता है। यहां हम वायरलेस संचार के लिए RFCOMM ब्लूटूथ प्रोटोकॉल का उपयोग कर रहे हैं।
पायथन में ब्लूटूथ के लिए प्रोग्रामिंग सॉकेट प्रोग्रामिंग मॉडल का अनुसरण करता है और ब्लूटूथ उपकरणों के बीच संचार RFCOMM सॉकेट के माध्यम से किया जाता है। RFCOMM (रेडियो फ्रिक्वेंसी कम्युनिकेशन) एक ब्लूटूथ प्रोटोकॉल है जो कि RS-232 सीरियल पोर्ट प्रदान करता है और इसे सीरियल पोर्ट एमुलेशन भी कहा जाता है। ब्लूटूथ सीरियल पोर्ट प्रोफाइल इस प्रोटोकॉल पर आधारित है। RFCOMM अपने व्यापक समर्थन और publically उपलब्ध API के कारण ब्लूटूथ अनुप्रयोगों में बहुत लोकप्रिय है। यह L2CAP प्रोटोकॉल के लिए बाध्य है।
हमने अपने पिछले प्रोजेक्ट में ब्लूटूथ मॉड्यूल HC-06 का भी उपयोग किया है: रास्पबेरी पाई का उपयोग करके आवाज नियंत्रित एल ई डी। कुछ अच्छे IoT प्रोजेक्ट्स के साथ हमारे पिछले रास्पबेरी पाई प्रोजेक्ट्स को भी देखें।
ब्लूटूथ संचार के लिए आवश्यक संकुल स्थापित करना:
शुरू करने से पहले, हमें रास्पबेरी पाई में ब्लूटूथ संचार स्थापित करने के लिए कुछ सॉफ्टवेयर स्थापित करने की आवश्यकता है । आपके पास रास्पबेरी पाई के साथ एक रास्पियन जेसी स्थापित मेमोरी कार्ड होना चाहिए। रास्पबियन ओएस को स्थापित करने के लिए इस लेख को देखें और रास्पबेरी पाई के साथ शुरुआत करें। तो अब हमें सबसे पहले नीचे दिए गए आदेशों का उपयोग करके रास्पियन को अपडेट करना होगा:
sudo apt-get update sudo apt-get उन्नयन
फिर हमें कुछ ब्लूटूथ से संबंधित पैकेजों को स्थापित करने की आवश्यकता है:
sudo apt-get install ब्लूटूथ ब्लूटूथ ब्लूज़
फिर रास्पबेरी पाई को रिबूट करें:
सूद रिबूट
ब्लूज़ एक ओपन सोर्स प्रोजेक्ट और आधिकारिक लिनक्स ब्लूटूथ प्रोटोकॉल स्टैक है। यह सभी कोर ब्लूटूथ प्रोटोकॉल का समर्थन करता है और अब आधिकारिक लिनक्स कर्नेल का हिस्सा बन गया है।
ब्लूमैन ब्लूटूथ डिवाइस को प्रबंधित और नियंत्रित करने के लिए डेस्कटॉप इंटरफ़ेस प्रदान करता है।
अंत में हमें ब्लूटूथ संचार के लिए अजगर लाइब्रेरी की आवश्यकता है ताकि हम पायथन भाषा का उपयोग करके RFCOMM के माध्यम से डेटा भेज और प्राप्त कर सकें:
sudo apt-get install अजगर-ब्लूटूथ
रास्पबेरी पाई के लिए GPIO समर्थन लाइब्रेरी भी स्थापित करें:
sudo apt-get Install python-rpi.gpio
अब हम रास्पबेरी पाई में ब्लूटूथ संचार के लिए आवश्यक पैकेज स्थापित करने के साथ किया जाता है।
ब्लूटूथ पर रास्पबेरी पाई के साथ युग्मन उपकरण:
रास्पबेरी पाई के साथ, मोबाइल फोन की तरह, ब्लूटूथ डिवाइस को बाँधना बहुत आसान है। यहाँ हमने अपना Android Smart Phone रास्पबेरी पाई के साथ जोड़ा है । हमने पहले Pi में BlueZ स्थापित किया है, जो हमारे ब्लूटूथ डिवाइस को प्रबंधित करने के लिए "bluetoothctl" नामक एक कमांड लाइन उपयोगिता प्रदान करता है। लेकिन इससे पहले, अपने USB ब्लूटूथ डोंगल को रास्पबेरी पाई के साथ कनेक्ट करें और जाँच करें कि यह पता लगाया गया है या नहीं, नीचे दिए गए कमांड का उपयोग करके:
lsusb
अब नीचे दिए गए आदेश द्वारा bluetoothctl उपयोगिता खोलें:
सुडो ब्लूटूथ
आप 'हेल्प' लिखकर bluetoothctl यूटिलिटी के सभी कमांड चेक कर सकते हैं । अभी के लिए हमें दिए गए क्रम में नीचे कमांड दर्ज करने की आवश्यकता है:
# पावर ऑन # एजेंट ऑन # सर्चेबल ऑन # पेराईबल ऑन # स्कैन
अंतिम कमांड "स्कैन ऑन" के बाद, आपको सूची में अपना ब्लूटूथ डिवाइस (मोबाइल फोन) दिखाई देगा। सुनिश्चित करें कि आपका मोबाइल ब्लूटूथ चालू है और पास के उपकरणों द्वारा दिखाई दे रहा है। फिर आप डिवाइस के मैक पते को कॉपी करें और दिए गए कमांड का उपयोग करके इसे जोड़े:
जोड़ा
फिर आपको अपने टर्मिनल कंसोल में पासकोड या पिन के लिए संकेत दिया जाएगा और फिर वहां पासकोड टाइप करें और एंटर दबाएं। जब संकेत दिया जाए तो अपने मोबाइल फोन में उसी पासकोड को टाइप करें और अब आपको रास्पबेरी पाई के साथ सफलतापूर्वक जोड़ा जाएगा। हमने इस पूरी प्रक्रिया को अंत में दिए गए अपने वीडियो में भी बताया है ।
जैसा कि पहले बताया गया है, आप मोबाइल फोन को पेयर करने के लिए डेस्कटॉप इंटरफेस का भी उपयोग कर सकते हैं । ब्लूमैन को स्थापित करने के बाद, आपको नीचे दिखाए गए अनुसार रास्पबेरी पाई डेस्कटॉप के दाईं ओर एक ब्लूटूथ आइकन दिखाई देगा, जिसका उपयोग करके आप आसानी से युग्मन कर सकते हैं।
सर्किट आरेख:
सर्किट आरेख बहुत सरल है, हमने बस रास्पबेरी पाई के पिन 40 (GPIO 21) को 220 मीटर के प्रतिरोधक के साथ एक एलईडी से जोड़ा है:
Android App BlueTerm के साथ एलईडी का नियंत्रण:
अब मोबाइल फोन को पार करने के बाद, हमें एक ब्लूटूथ सीरियल एडेप्टर का उपयोग करके रास्पबेरी पाई के साथ संचार के लिए एक एंड्रॉइड ऐप इंस्टॉल करना होगा । जैसा कि पहले बताया गया था कि RFCOMM / SPP प्रोटोकॉल ब्लूटूथ पर धारावाहिक संचार का अनुकरण करता है, इसलिए हमने यहाँ BlueTerm App स्थापित किया जो इस प्रोटोकॉल का समर्थन करता है।
आप किसी अन्य ब्लूटूथ टर्मिनल ऐप का भी उपयोग कर सकते हैं जो RFCOMM सॉकेट के माध्यम से संचार का समर्थन करता है।
BlueTerm App को डाउनलोड करने और इंस्टॉल करने के बाद, टर्मिनल से नीचे दिए गए पायथन प्रोग्राम को चलाएं और उसी समय BlueTerm App से युग्मित रास्पबेरी डिवाइस को कनेक्ट करें ।
सफल कनेक्शन के बाद आप कनेक्टेड दिखाई देंगे : ऐप के शीर्ष दाएं कोने पर raspberrypi जैसा कि नीचे दिखाया गया है:
अब आप बस ब्लूटर्म ऐप से '1' या '0' दर्ज करके क्रमशः GPIO पिन हाई और LOW कर सकते हैं, जो इस पिन से जुड़े LED को चालू और बंद कर देता है। प्रोग्राम से बाहर निकलने के लिए 'q' दबाएं। आप अपनी आवाज़ का उपयोग करके GPIO को नियंत्रित करने के लिए Google Voice टंकण कीबोर्ड का उपयोग कर सकते हैं। अंत में दिए गए वीडियो में पूरा डेमो देखें।
तो यह है कि आप ब्लूटूथ पर एंड्रॉइड ऐप का उपयोग करके जीपीआईओ पिन को वायरलेस तरीके से कैसे नियंत्रित कर सकते हैं । यह भी जांचें कि Arduino के साथ ब्लूटूथ का उपयोग कैसे करें।
प्रोग्रामिंग स्पष्टीकरण:
एंड्रॉइड ऐप के साथ रास्पबेरी पाई GPIO को नियंत्रित करने के लिए पायथन कार्यक्रम बहुत सरल और आत्म-व्याख्यात्मक है। केवल हमें ब्लूटूथ RFCOMM संचार से संबंधित कोड के बारे में थोड़ा जानने की जरूरत है। पहले हमें ब्लूटूथ सॉकेट लाइब्रेरी आयात करने की आवश्यकता है जो हमें पायथन भाषा के साथ ब्लूटूथ को नियंत्रित करने में सक्षम बनाती है; हमने पिछले अनुभाग में उसी के लिए पुस्तकालय स्थापित किया है।
आयात ब्लूटूथ
नीचे ब्लूटूथ संचार के लिए जिम्मेदार कोड है:
1 डेटा = client_socket.recv (1024)
यहाँ हम उन्हें लाइन से समझ सकते हैं:
server_socket = bluetooth.BluaxySocket (bluetooth.RFCOMM): ब्लूटूथ RFCOMET संचार के लिए सॉकेट बनाना।
server_socket.bind (("", port): - सर्वर होस्ट '' को स्क्रिप्ट को पोर्ट में बांधता है।
server_socket.listen (1) : सर्वर एक समय में एक कनेक्शन स्वीकार करने के लिए सुनता है।
client_socket, पता = server_socket.accept () : सर्वर क्लाइंट के कनेक्शन अनुरोध को स्वीकार करता है और मैक पते को चर पते पर असाइन करता है , client_socket क्लाइंट का सॉकेट है
data = client_socket.recv (1024): क्लाइंट सॉकेट client_socket के माध्यम से डेटा प्राप्त करें और इसे चर डेटा पर असाइन करें । एक बार में अधिकतम 1024 वर्ण प्राप्त किए जा सकते हैं।
अंत में सभी प्रोग्रामिंग के बाद, नीचे दिए गए कोड का उपयोग करके क्लाइंट और सर्वर कनेक्शन को बंद करें:
client_socket.close () server_socket.close ()
अन्य सभी कोड आसान और आत्म-व्याख्यात्मक हैं। नीचे पूर्ण कोड की जाँच करें। इस परियोजना को संशोधित करने का प्रयास करें और आप इसे वायरलेस रूप से कई अन्य चीजों को नियंत्रित करने के लिए उपयोग कर सकते हैं, जैसे रिले का उपयोग करके आप घरेलू उपकरणों को नियंत्रित कर सकते हैं या एंड्रॉइड फोन के माध्यम से रोबोट कार को भी नियंत्रित कर सकते हैं।