यहाँ मेरे arduino पर प्लग किए गए HC-05 ब्लूटूथ डिवाइस से कनेक्ट करने के लिए आगे बढ़ने का मेरा तरीका है। यह ब्रायन के जवाब की तरह एक फाइल लिखने की जरूरत नहीं है, लेकिन विचार समान है। मैंने HC-05 डिवाइस पर बॉड 9600 रेट सेटअप के साथ इसका परीक्षण किया है।
पहला चरण: डिवाइस को पेयर करें और पिन प्रदान करें
मैंने GUI की जोड़ी से सेटअप करने की कोशिश की, लेकिन यह काम नहीं कर रहा था। यहाँ मेरे लिए काम करने का कमांड लाइन तरीका है। सबसे पहले, हम कमांड लाइन से डिवाइस को पेयर करते हैं। Daud :
sudo bluetoothctl
सुनिश्चित करें कि ब्लूटूथ डिवाइस शुरू किया गया है:
# power on
अब हम उस एजेंट को शुरू करते हैं जो "पिन को याद रखेगा" के लिए rfcomm
:
# agent on
अब हम अपने डिवाइस को खोजने के लिए स्कैन मोड को सक्षम करते हैं और इसे युग्मित करने में सक्षम होते हैं:
# scan on
कुछ सेकंड के बाद आपके डिवाइस का मैक दिखाई देना चाहिए। हम इसे बाद में निरूपित करेंगे। फिर, आपको बस डिवाइस को इस तरह पेयर करना होगा:
# pair <MAC>
आपको एक पिन टाइप करने के लिए कहा जाएगा, डिफ़ॉल्ट रूप से यह 1234
मेरे HC-05 डिवाइस पर है। आप यह नोट कर सकते हैं कि यह संभव है कि आप डिवाइस कनेक्ट करें फिर उस तरह के संदेश के साथ डिस्कनेक्ट करें:
[CHG] Device 20:16:10:24:29:77 UUIDs: 00001101-0000-1000-8000-00805f9b34fb
[CHG] Device 20:16:10:24:29:77 ServicesResolved: yes
[CHG] Device 20:16:10:24:29:77 Paired: yes
Pairing successful
[CHG] Device 20:16:10:24:29:77 ServicesResolved: no
[CHG] Device 20:16:10:24:29:77 Connected: no
लेकिन यह कोई समस्या नहीं है। आपको कनेक्ट करने की आवश्यकता नहीं है, इसलिए आप अब bluetoothctl
टाइप करके छोड़ सकते हैं Ctrl + D
।
एक प्रयोग करने योग्य फ़ाइल प्रदान करें /dev/rfcomm0
सबसे पहले, सुनिश्चित करें कि आपने पहले कोई rfcomm कमांड नहीं चलाया था। वास्तव में, भले ही आप Ctrl+C
कार्यक्रम के साथ करीब हों , यह अभी भी पृष्ठभूमि में चलता है।
sudo killall rfcomm
अब, आप चला सकते हैं
sudo rfcomm connect /dev/rfcomm0 20:16:10:24:29:77 1 &
ध्यान दें कि यदि आप rfcom के इनपुट पर लिखने की कोशिश करते हैं, तो कुछ नहीं हुआ। आपको किसी अन्य प्रोग्राम का उपयोग करने की आवश्यकता है।
तीसरा और अंतिम चरण: में लिखें /dev/rfcomm0
फ़ाइल पर लिखने के कई तरीके हैं, लेकिन ध्यान दें कि आगे बढ़ने के सभी तरीके रूट हैं। मैं यहां कई कार्यक्रमों का वर्णन करता हूं जो ऐसा कर सकते हैं (ताकि आप अपनी आवश्यकता के आधार पर चुन सकते हैं या उदाहरण के लिए आपके सिस्टम पर क्या स्थापित किया गया है)। यदि आप प्रोग्राम को रूट के रूप में चलाना भूल जाते हैं, तो आपको एक त्रुटि हो सकती है:
stty: /dev/rfcomm0: Device or resource busy
पहला विकल्प: कनेक्ट का उपयोग करना screen
स्क्रीन एक बहुत शक्तिशाली उपकरण है। आप इसे स्थापित कर सकते हैं (यह हमेशा उपयोगी है)
sudo apt-get install screen
और फिर चला
sudo screen /dev/rfcomm0
यदि आप इसे जड़ के रूप में चलाना भूल जाते हैं, तो आपको एक त्रुटि मिलेगी जैसे कि अलेक्जेंडर को मिला:
[screen is terminating]
इसे छोड़ने के लिए, "(CTRL + A) +: छोड़ें" टाइप करें
दूसरा विकल्प: कनेक्ट का उपयोग कर minicom
इसे स्थापित करो
sudo apt-get install minicom
और फिर चला
sudo minicom -D /dev/rfcomm0
यदि आप इसे रूट के रूप में चलाना भूल जाते हैं, तो आपके पास एक त्रुटि होगी
minicom: cannot open /dev/rfcomm0: Device or resource busy
इसे छोड़ने के लिए, "Ctrl + A X" टाइप करें।
तीसरा विकल्प: पाइथन स्क्रिप्ट मिनिटर्म
इस स्क्रिप्ट को डाउनलोड करें , और चलाएं:
chmod +x miniterm.py
sudo ./miniterm.py /dev/rfcomm0
सीधे फाइल में लिखें
सबसे पहले निम्न कमांड चलाएँ (9600 बॉड दर है):
sudo stty -F /dev/rfcomm0 cs8 9600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts
अब आप इस फाइल को क्लासिक फाइल की तरह लिख सकते हैं:
sudo su -c "echo 'message' > /dev/rfcomm0"
और सिद्धांत रूप में इसे पढ़ने से
sudo tail -f /dev/rfcomm0
लेकिन मुझे नहीं पता कि पढ़ा काम नहीं करता है, अगर आप में से किसी को भी एक विचार है ...