क्या बाँधना बिना ब्लूटूथ संचार संभव है?


36

मैं एक ऐसे डिवाइस पर काम कर रहा हूं, जो किसी सिस्टम को "तुरन्त" सक्रिय रूप से सक्रिय कर सकता है। पहली बात जो दिमाग में आई वह थी आरएफआईडी तकनीक का उपयोग करना जिससे तत्काल और सस्ते संचार का फायदा हो। हालाँकि, मैं इस कार्य को पूरा करने के लिए अपने फ़ोन की ब्लूटूथ क्षमताओं का उपयोग करने में रुचि रखता हूं।

तो मेरा सवाल है, ब्लूटूथ संचार का उपयोग करने के लिए, क्या युग्मन के बिना संवाद करने का एक तरीका है? दूसरे शब्दों में, बहुत ही सरलीकृत स्तर पर, मान लीजिए कि मेरा ब्लूटूथ रिसीवर एक कोड "abc123" की उम्मीद कर रहा है। एक ब्लूटूथ डिवाइस, फोन की तरह, इस कोड को लगातार प्रसारित करने के लिए प्रोग्राम किया जाता है। कोड प्राप्त होने पर, सिस्टम एक बार पहुंच प्राप्त करने के लिए जो कुछ भी करना चाहता है उसे करने के लिए शुरू करता है। इस तरह की प्रणाली सुरक्षा की कीमत पर, निश्चित रूप से युग्मन बाधा को दूर करेगी।

तो क्या यह अवधारणा एक संभावना है? मुझे बहुत तकनीकी स्तर पर ब्लूटूथ लिंक प्रोटोकॉल की थोड़ी समझ है, लेकिन अगर कोई मुझे लीड दे सकता है, तो मैं उस बिंदु से सीखना शुरू कर सकता हूं। मेरी सीमित समझ को अड़चन मत समझो।


एक ब्लूटूथ मोड है जो ऐसा करता है, लेकिन मुझे नहीं पता कि इसे क्या कहा जाता है। इसका उपयोग स्थानीय विज्ञापनों को मोबाइल फोन पर भेजने के लिए किया जाता था।
जिप्पी

2
विभिन्न 433 मेगाहर्ट्ज मॉड्यूल हैं जो ऑन / ऑफ सिग्नल "तुरंत" प्रसारित करेंगे; अक्सर गेराज दरवाजा सलामी बल्लेबाजों में इस्तेमाल किया जाता है। वे सस्ते और संचालित करने में आसान हैं, हालांकि वे अंतर्निहित सुरक्षा प्रदान नहीं करते हैं।
pjc50

जवाबों:


25

हाँ, यह पूरी तरह से संभव है। मैंने पहले इस पर टिप्पणी की और तब से इस पर ध्यान दिया। आपके पास ट्रिगर ब्लूटूथ डिवाइस सक्रियण सिग्नल को उसके अनुकूल नाम के माध्यम से भेज सकता है ।

मैत्रीपूर्ण नाम मानव-पठनीय नाम है जो उस सूची में दिखाई देता है जब आप युग्मन के लिए एक ब्लूटूथ डिवाइस की खोज करते हैं। जिस गति से यह सक्रिय होता है वह इस बात पर निर्भर करता है कि प्राप्त उपकरण दोस्ताना नामों के लिए कितनी जल्दी मतदान करता है। आपने यह उल्लेख नहीं किया है कि आप किस प्रकार का उपकरण प्राप्त कर रहे हैं, लेकिन मुझे यह पीडीएफ (Pg.35) मिल रहा है, जो इन-रेंज ब्लूटूथ डिवाइसों के अनुकूल नामों को अपडेट करने की प्रक्रिया का विवरण देता है।

आप जितनी बार आवश्यकता हो, दोस्ताना नामों के लिए मतदान कर सकते हैं। यदि आपका ट्रिगर डिवाइस सक्रियण कोड में अपने अनुकूल नाम को बदल देता है abc123, तो प्राप्त करने वाला उपकरण उस नाम को बिना युग्मित किए देख सकता है और जो भी कार्य आप करने का प्रयास कर रहे हैं उसे सक्रिय कर सकते हैं। यह आपको सक्रियण कोड की एक भीड़ भी देता है, मुझे लगता है कि आप अनुकूल ब्लूटूथ नाम के लिए 248 बाइट्स प्राप्त कर सकते हैं।

आप जानबूझकर खुद को ब्लूजैकिंग तक खोल सकते हैं । मैं इससे परिचित नहीं हूं, लेकिन अगर सुरक्षा कोई समस्या नहीं है तो यह काम कर सकती है।


2
बिल्कुल सही, यह सबसे अधिक आशाजनक लगता है। मुझे दोस्ताना नाम पद्धति की सादगी पसंद है, और ब्लूजैकिंग एक महान उम्मीदवार के रूप में भी लगता है।
कैपकॉम

12

संक्षिप्त उत्तर हां है, बिना युग्मन के ब्लूटूथ का उपयोग करना संभव है। हालाँकि, यह अभी भी एक पॉइंट-टू-पॉइंट लिंक होने वाला है। युग्मन का उपयोग नहीं करने (मुख्य रूप से सुरक्षा की कमी और ऑपरेशन के इस मोड के लिए अच्छे समर्थन की कमी) के साथ संभावित मुद्दे भी हैं। क्या यह किया जा सकता है यह आपके रिसीवर के ब्लूटूथ हार्डवेयर पर निर्भर करता है। मैं मान रहा हूं कि आप ब्लूटूथ कम-ऊर्जा के बजाय 'मानक' ब्लूटूथ का उपयोग कर रहे हैं (जो पूरी तरह से अलग है और विशेष रूप से मोबाइल फोन में अच्छी तरह से समर्थित नहीं है)। यदि आप कम-ऊर्जा का उपयोग कर रहे हैं, तो आप ट्रांसमीटर एक कम-ऊर्जा उपकरण होंगे और आप रिसीवर कुछ ऐसा होगा जो संदेशों के लिए सुनता है। मैंने इसका उपयोग नहीं किया है, इसलिए मैं आपको इस बारे में कोई जानकारी नहीं दे सकता, इसलिए मैं 'सामान्य' ब्लूटूथ के साथ रहूँगा।

जैसा कि मैंने देखा, इसे दूर करने के लिए दो मुद्दे हैं:

  1. पिन बाँधना बंद करना

  2. स्वचालित कनेक्शन दीक्षा

मैं पहले नंबर 2 को कवर करूँगा क्योंकि मुझे यह आभास हो जाता है कि यह वही है जिसमें आप वास्तव में दिलचस्पी ले रहे हैं (माफी माँगता हूँ अगर मैं यह गलत पढ़ रहा हूँ)। फोन या अन्य 'मास्टर' डिवाइस से ऐसा करने के लिए, उसे दूरस्थ ब्लूटूथ डिवाइसों को लगातार खोजना होगा। जब यह उस एक को पहचान लेता है जो लागू होता है, तो यह स्वचालित रूप से इससे जुड़ जाएगा और कुछ डेटा या अन्य भेजेगा जो कि कार्रवाई की आवश्यकता होगी। दूसरों ने इस प्रक्रिया के लिए ब्लूटूथ के अनुकूल नाम के उपयोग का उल्लेख किया है और यह निश्चित रूप से इसे करने का एक तरीका है। ब्लूटूथ फ्रेंडली नामों (विशेषकर लेकिन Microsoft ब्लूटूथ स्टैक के साथ विशेष रूप से नहीं) के मेरे अनुभव यह है कि वे स्कैनिंग की एक मजबूत विधि नहीं हैं। आप संभवतः ब्लूटूथ डिवाइस क्लास का उपयोग करने के लिए बेहतर काम करेंगे, जो अद्वितीय डिवाइस पते के रूप में एक ही समय में प्रसारित किया जाता है। इस डिवाइस क्लास में मोबाइल फोन, लैपटॉप, डेस्कटॉप आदि जैसी चीजों के लिए बड़ी संख्या में पूर्व-निर्दिष्ट प्रविष्टियाँ हैं। यदि आप एक गैर-मानक डिवाइस कक्षाओं (जैसे 00:00:00) का उपयोग करते हैं, तो आप तुरंत सक्षम हो जाएंगे। ब्लूटूथ उपकरणों के विशाल बहुमत को फ़िल्टर करने के लिए। फिर आप शेष डिवाइस से कनेक्ट कर सकते हैं और अपनी कार्रवाई शुरू करने के लिए किसी प्रकार का अनुरोध-स्वीकार संचार कर सकते हैं। यदि आप इसे उपयुक्त रूप से अस्पष्ट करते हैं (या दूसरे विचार के रूप में मैत्रीपूर्ण नाम की जांच करते हैं), तो इसे किसी भी गलत उपकरण को स्पष्ट रूप से फ़िल्टर करना चाहिए।


नंबर 1 के बारे में, यदि आप क्षणिक कनेक्शन बना रहे हैं, तो पिन पेयरिंग विशेष रूप से तर्कसंगत नहीं है, लेकिन यह अभी भी सबसे अच्छा तरीका हो सकता है कि आप क्या करना चाहते हैं। यदि आप पिन पेयरिंग से बचना चाहते हैं, तो इसे बंद किया जा सकता है और अन-पेयर कनेक्शन बनाया जा सकता है। आप यह कैसे करते हैं यह ब्लूटूथ रिसीवर कार्यान्वयन पर निर्भर करता है, लेकिन यहां कुछ उदाहरण दिए गए हैं:

  1. Bluegiga WT12: SET BT AUTH * कमांड का उपयोग करें
  2. राष्ट्रीय सेमीकंडक्टर LMX9838: सुरक्षा मोड 1 (कोई जोड़ी) के साथ GAP_SET_SECURITY_MODE कमांड का उपयोग करें

आदि।

डिवाइस से कनेक्ट करना फिर युग्मन के बिना किया जा सकता है। यदि कनेक्शन शुरू करने वाला उपकरण रिसीवर के समान है, तो यह बहुत सीधा है। यदि आप विंडोज पीसी का उपयोग कर रहे हैं, तो आप श्रमसाध्य के माध्यम से एक नई कनेक्शन प्रक्रिया बना सकते हैं और "पिन का उपयोग न करें" चुनें, हालांकि विंडोज संभवतः कनेक्ट होने पर आपसे पिन मांगेगा (0000 आमतौर पर काम करता है, लेकिन यह बहुत परतदार है)। यदि आप अजगर के साथ अजगर का उपयोग कर रहे हैं, तो यह बहुत आसान है:

import bluetooth
sock = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
sock.connect((<insert MAC address>, <insert port number>))

यदि, हालांकि, आप मोबाइल फोन से कनेक्ट करना चाहते हैं, तो यह बहुत अधिक जटिल हो जाता है। Android SDK वास्तव में अनपेक्षित कनेक्शन का समर्थन नहीं करता है:

RFCOMM कनेक्शन स्थापित करने से पहले वर्तमान Android ब्लूटूथ API के उपकरणों की आवश्यकता होती है। (जब आप ब्लूटूथ APIs के साथ एन्क्रिप्टेड कनेक्शन शुरू करते हैं तो पेयरिंग स्वचालित रूप से की जाती है।)

( http://developer.android.com/guide/topics/connectivity/bluaxy.html से )। इस के आसपास तरीके हैं, लेकिन वे बहुत जटिल हैं और अच्छी तरह से समर्थित नहीं हैं। यदि आप एक iPhone का उपयोग कर रहे हैं, तो ब्लूटूथ कनेक्टिविटी कीड़े (लाइसेंस आदि) की एक पूरी अलग-अलग कैन है, इसलिए मैं अभी के लिए छोड़ दूँगा।


कहा कि सब के बाद, बहुत ज्यादा हर एपीआई मैं कभी देखा है अनुमति देता है बाँधना औरबाहर ले जाने के लिए अनुचित (अजगर / pybluez के उल्लेखनीय अपवाद के साथ, लेकिन यह विंडोज पर माइक्रोसॉफ्ट स्टैक के आसपास सिर्फ एक आवरण है, इसलिए आप हमेशा निम्न स्तर के फ़ंक्शन को सीधे कॉल कर सकते हैं)। इसलिए, जब आपने एक उपकरण को सही डिवाइस वर्ग के साथ देखा है, तो न केवल स्वचालित रूप से युग्मित करें (पूर्वनिर्धारित युग्मन पिन संख्या के साथ), कनेक्शन बनाएं, आवश्यक डेटा भेजें, डिस्कनेक्ट करें और फिर अप्रकाशित करें। इसमें से किसी को भी किसी भी उपयोगकर्ता के हस्तक्षेप की आवश्यकता नहीं होगी और जब तक आप इसे हजारों बार नहीं कर रहे हैं (जो संभावित रूप से EEPROM पहनने के साथ समस्या पैदा कर सकता है), तो इससे आपको कोई समस्या नहीं होनी चाहिए। ब्लूटूथ के उपयोग की एक गैर-मानक विधि के रूप में अच्छी तरह से काम करने के लिए विभिन्न एपीआई प्राप्त करने की कोशिश करने से यह आपको बहुत परेशानी से बचाएगा।


1
शानदार प्रतिक्रिया के लिए धन्यवाद! मुझे देखने के लिए बहुत कुछ।
कैपकॉम

10

यह ब्लूटूथ स्मार्ट (या ब्लूटूथ लो एनर्जी / ब्लूटूथ 4.0) नामक ब्लूटूथ ब्रांड के भीतर एक तकनीक के साथ पूरा किया जा सकता है और आपके पास मौजूद फोन पर भी निर्भर करता है।

नियमित ब्लूटूथ पर कम ऊर्जा के साथ मुख्य लाभ यह है कि यह बहुत कम बिजली की खपत करता है, और एक डिवाइस का अपेक्षित जीवनकाल कनेक्शन अंतराल के आधार पर वर्षों तक हो सकता है, और यह सिक्का सेल बैटरी पर विज्ञापन कितना है।

इस समस्या को हल करने के लिए आप चिप के विज्ञापन डेटा के अंदर प्रश्न को कोड डाल सकते हैं। ( ब्लूटूथ 4.0 कोर स्पेस। वॉल्यूम 3, भाग सी, धारा 11.1.4 या 11.1.10)

3 प्रमुख चिप निर्माता हैं जो कम ऊर्जा चिप्स (TI, CSR और नॉर्डिक सेमीकंडक्टर) का उत्पादन करते हैं

नॉर्डिक में एक कनेक्टिविटी चिप है जिसे nRF8001 (एक कनेक्टिविटी चिप, पूरी तरह से योग्य डिवाइस) और एक SoC nRF51822 कहा जाता हैNRF8001 का उपयोग करने का लाभ यह है कि आप अपने पसंद के प्रोसेसर का उपयोग कर सकते हैं, और ब्लूटूथ विनिर्देश के बारे में परेशान होने की जरूरत नहीं है क्योंकि यह चिप द्वारा नियंत्रित किया जाता है। NRF51822 का लाभ यह है कि यह चिप पर एक सिस्टम है और BOM को कम करता है, यह Cortex-M0 चल रहा है और रिलीज़ होने पर पूरी तरह से योग्य होना चाहिए।

TI में 8051 SoC चिप cc2540 और CSR में SoC चिप CSR gyEnergy है

यह सब आपकी आवश्यकता और प्रोसेसर और कार्यक्षमता / लागत में वरीयता के लिए उबलता है


3

हां, उपकरणों को जोड़े बिना ब्लूटूथ संचार संभव है। insecureRfcomसुरक्षित RFCOM के सम्मान का उपयोग करें । इसमें डाटा ट्रांसफर के लिए पेयरिंग की जरूरत नहीं है।



1

एक सफल युग्मन का परिणाम लिंक कुंजी है, जो युग्मित उपकरण साझा करता है और उन्हें संवाद करने में सक्षम बनाता है।

यदि सिस्टम पर लिंक कुंजी को सेट करना संभव है, तो हां, कोई युग्मन की आवश्यकता नहीं है। बस दोनों डिवाइस पर एक ही लिंक कुंजी सेट करें। इस कनेक्शन के बाद सफलतापूर्वक ओपन किया जा सकता है जैसे कि दो उपकरणों ने जोड़ा था।

उदाहरण के लिए लिनक्स पर infoफ़ाइल को रखने के बाद फ़ाइल को / par / lib / ब्लूटूथ / लोकल-डिवाइस-एड्रेस / रिमोट-डिवाइस-एड्रेस / के तहत प्रत्येक पैराड डिवाइस के लिए स्टोर किया जाता है।

बाद Generalखंड follwing शामिल हैं: [LinkKey] Key=FF00112233445566778899AABBCCDDEE Type=5 PINLength=0

यह सीधे युग्मन के बिना सेट किया जा सकता है। यदि रिमोट डिवाइस पर समान लिखा गया है। उपकरणों को जोड़ा जाता है।

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