मैं एक कच्चे सीरियल टर्मिनल को ब्लूटूथ कनेक्शन से कैसे जोड़ सकता हूं?


10

मैं एक कुलस्टेशन से जुड़ने की कोशिश कर रहा हूं जो ब्लूटूथ ड्राइवरों की पेशकश नहीं करता है। जैसा कि मैं विशुद्ध रूप से नैदानिक ​​कारणों से कर रहा हूं, मैं स्थापित धारावाहिक कनेक्शन से कच्चे आउटपुट को देखना चाहता हूं।

मुझे एक ब्लूटूथ कनेक्शन से टर्मिनल तक सभी आउटपुट को पाइप करने के लिए क्या करना होगा ?


क्या आप ब्लूटूथ-> सीरियल, सीरियल-> ब्लूटूथ, या टू-वे कर रहे हैं?
नानोफारड

कुल मिलाकर ब्लूटूथ <-> उबंटू ब्लूटूथ। यह देखते हुए कि कुल मिलाकर USB पर मानक सीरियल कॉन्फ़िगरेशन है, मुझे संदेह है कि यह ब्लूटूथ पर एक सीरियल कनेक्शन स्थापित कर रहा है। बेशक, मैं पूरी तरह से गलत हो सकता है, जिस बिंदु पर जवाब है कि मैं गलत हूं और ब्लूटूथ एक्सवाईजेड का उपयोग पूरी तरह से स्वीकार्य है।
ब्रायन बॉल्सन-स्टैंटन

दो-तरफ़ा सबूत के संदर्भ में, मैंने "स्क्रीन" के माध्यम से एक खाली सीरियल कनेक्शन स्थापित करने में कामयाबी हासिल की है, जो कीबोर्ड पर एक कुंजी मारने पर डिवाइस पर एक त्रुटि बीप का कारण बनता है। इसलिए मुझे संदेह है कि मैं वहां आधा हूं, मुझे अभी नहीं पता कि कौन सा आधा है।
ब्रायन बॉसुन-स्टैंटन

क्या आप एक त्वरित चित्र बना सकते हैं? मैं समझ नहीं पा रहा हूं कि यह सीरियल ओवर है या ब्लूटूथ ओवर सीरियल, साथ ही कौन कहां से डेटा पर गुजर रहा है। बस इसे GIMP या किसी और चीज़ में करें और यहाँ अपलोड करें
nanofarad

बहुत अच्छी तरह से काम करता है लेकिन मैं RFCOMM के साथ कुछ गड़बड़ियों में भागता हूं। जब मैं SCREEN से जुड़ता हूं, तो कुछ AT-Sequences स्वचालित रूप से "ATE1 E0" <RETURN: तीन बार टाइप हो जाते हैं। उसके कारण, कुछ "लॉगिन विफल" रास्पि पक्ष में दिखाई देता है। उसके बाद, मैं टर्मिनल सत्र w / o को किसी भी आगे के ग्लिच में सफलतापूर्वक लॉगिन और उपयोग कर सकता हूं।
कोडी

जवाबों:


5

ब्रायन के जवाब के अतिरिक्त। स्क्रीन मेरे लिए काम नहीं करता, तुरंत प्रदर्शित करता है[screen is terminating]

इसलिए मुझे यह मिनिटर्म पाइथन स्क्रिप्ट मिली । उपयोग समान है:

sudo miniterm.py /dev/rfcomm0

12

1) hcitool scanडिवाइस का मैक पता खोजने के लिए उपयोग करें ।

डिवाइस को एक ज्ञात पिन के साथ दास मोड में सेट किया जाना चाहिए। यदि आप एक ज्ञात पिन का उपयोग नहीं करते हैं, तो ubuntu एक बनाता है और आपके पास आम तौर पर आपके मापने के उपकरण के क्लंकी मेनू में इसे दर्ज करने का समय नहीं होगा।

2) मुझे पूरी तरह से यकीन नहीं है कि यह आवश्यक है, लेकिन ब्लूटूथ गिनी मेनू में, डिवाइस को जोड़ी।

3) /etc/bluaxy/rfcomm.conf में

rfcomm0 {
        bind no;
        device 00:07:80:44:4F:37;
        channel 1;
        comment "Serial Port";
        }

"बाइंड नं" महत्वपूर्ण है, अन्यथा यह स्वचालित रूप से बाँधने की कोशिश करेगा, जो वास्तव में डिवाइस को एक्सेस करने के लिए सभी प्रकार की समस्याओं को प्रस्तुत करता है (जैसा कि इसके जुड़े होने के बारे में यह काफी उपयुक्त है)

4) sudo rfcomm connect 0

यदि आपके पास त्रुटियां हैं, तो ब्लूटूथ सेवा को पुनरारंभ करें।

5) screen /dev/rfcomm0

इस तरह प्रसारित होने वाले वास्तविक धारावाहिक आदेशों के लिए, अपने विक्रेता से संपर्क करें और भीख माँगें।


3
मुझे "मिसिंग देव पैरामीटर" मिलता है जब मैं "rfcomm connect 0" चलाने की कोशिश करता हूं
someonewithpc

क्या आपने अपनी गोपनीय फाइल को सही ढंग से संपादित किया है?
ब्रायन बॉल्सन-स्टैंटन

5
Sudo rfcomm कनेक्ट rfcomm0 00: 07: 80: 44: 4F: 37
elopio

@ एलोपिया का ऑनलाइनर बहुत ही सरल है। इसने मेरे लिए काम किया
ptetteh227

10

यहाँ मेरे 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

लेकिन मुझे नहीं पता कि पढ़ा काम नहीं करता है, अगर आप में से किसी को भी एक विचार है ...


/def/rfcomm0होना चाहिए/dev/rfcomm0
stewSquared
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.