Advertising (विज्ञापन) Bluetooth Low Energy में एक तंत्र है जिसके द्वारा एक Peripheral उपकरण तीन समर्पित चैनलों (37, 38, 39) पर छोटे डेटा पैकेट प्रेषित करके अपनी उपस्थिति की घोषणा करता है। Bluetooth Core Specification 5.4 (2023) दो प्रकार के विज्ञापन को परिभाषित करता है: connectable — उपकरण कनेक्शन के लिए तैयार है, और non-connectable — बीकन (Beacon) द्वारा उपयोग किया जाता है जो द्वि-दिशात्मक संचार स्थापित किए बिना केवल डेटा प्रेषित करते हैं। विज्ञापन पैरामीटर — अंतराल 20 ms से 10.24 s, ट्रांसमीटर शक्ति -20 से +10 dBm और पैकेट प्रकार — सीधे उपकरण का पता लगाने की गति और उसकी ऊर्जा खपत को प्रभावित करते हैं, जो बैटरी से चलने वाले IoT उपकरणों के विकास में महत्वपूर्ण है।
मुख्य बातें
Advertising (विज्ञापन) छोटे डेटा पैकेट के आवधिक प्रेषण की प्रक्रिया है जिसके द्वारा एक BLE उपकरण अपनी उपस्थिति और उपलब्धता की घोषणा करता है। क्लासिक Bluetooth के विपरीत, जहां उपकरण का पता लगाने में सेकंड लगते हैं, BLE advertising मिलीसेकंड में उपकरण का पता लगाने की अनुमति देता है, जबकि न्यूनतम ऊर्जा की खपत करता है।
BLE आर्किटेक्चर उपकरणों को दो भूमिकाओं में विभाजित करता है: Peripheral (विज्ञापन करता है) और Central (स्कैन करता है)। Peripheral विज्ञापन पैकेट भेजता है, जबकि Central हवा को स्कैन करता है और कनेक्ट करने का निर्णय लेता है। यह असममित मॉडल BLE का एक प्रमुख लाभ है: विज्ञापन देने वाला उपकरण लगातार हवा सुनने के बजाय केवल छोटे पैकेट भेजने पर ऊर्जा खर्च करता है।
विज्ञापन प्रक्रिया तीन चरणों से मिलकर बनी है: advertising event (तीनों चैनलों पर पैकेट भेजना), scan request/response (Central के साथ वैकल्पिक आदान-प्रदान) और connection request (Central द्वारा कनेक्शन शुरू करना)। प्रत्येक चरण Link Layer स्तर पर Bluetooth Controller द्वारा प्रबंधित किया जाता है।
BLE 40 चैनलों का उपयोग करता है 2.4 GHz बैंड में, जिनमें से 37 (2402 MHz), 38 (2426 MHz) और 39 (2480 MHz) विशेष रूप से विज्ञापन के लिए समर्पित हैं। तीन चैनल खोज विश्वसनीयता और थ्रूपुट के बीच एक समझौता है: एक चैनल Wi-Fi या अन्य हस्तक्षेप द्वारा व्यस्त हो सकता है, लेकिन उपकरण अन्य दो पर पाया जाएगा।
चैनल 37 Wi-Fi चैनल 1 के पास, चैनल 39 Wi-Fi चैनल 6 के पास, और चैनल 38 उनके बीच न्यूनतम हस्तक्षेप के क्षेत्र में स्थित है। तीन चैनलों का चयन सुनिश्चित करता है कि उपकरण घने रेडियो वातावरण में भी पाया जाएगा — उदाहरण के लिए, दर्जनों Wi-Fi एक्सेस पॉइंट वाले शॉपिंग सेंटर में।
Peripheral तीनों चैनलों पर क्रमिक रूप से विज्ञापन पैकेट भेजता है — इसे advertising event कहा जाता है। केंद्रीय उपकरण एक बार में एक चैनल स्कैन करता है, Bluetooth Controller में लागू एल्गोरिदम के अनुसार उनके बीच स्विच करता है। टकराव के अभाव में एक advertising event के भीतर खोज की संभावना 100% के करीब है।
Bluetooth Core Specification कई प्रकार के advertising PDU (Protocol Data Unit) को परिभाषित करता है, प्रत्येक का अपना उद्देश्य होता है। मुख्य प्रकार हैं: ADV_IND (connectable undirected advertising) — कनेक्शन क्षमता के साथ मानक विज्ञापन, ADV_NONCONN_IND (non-connectable undirected advertising) — बिना कनेक्शन के केवल विज्ञापन, ADV_SCAN_IND (scannable undirected advertising) — scan request का समर्थन करता है, ADV_DIRECT_IND (directed advertising) — विशिष्ट Central के लिए विज्ञापन।
ADV_IND सबसे सामान्य प्रकार है जो अधिकांश BLE उपकरणों में उपयोग होता है। ADV_IND प्राप्त करने पर, Central कनेक्शन अनुरोध भेज सकता है और कनेक्शन स्थापित कर सकता है। ADV_NONCONN_IND बीकन (Beacon) में उपयोग होता है: उपकरण विज्ञापन करता है लेकिन कनेक्शन अनुरोध स्वीकार नहीं करता — केवल एक-दिशात्मक डेटा प्रेषण।
| PDU प्रकार | विवरण | कनेक्शन | Scan response |
|---|---|---|---|
| ADV_IND | मानक विज्ञापन | हाँ | हाँ |
| ADV_DIRECT_IND | विशिष्ट Central को विज्ञापन | हाँ | नहीं |
| ADV_NONCONN_IND | बिना कनेक्शन (बीकन) | नहीं | नहीं |
| ADV_SCAN_IND | स्कैन समर्थन के साथ | हाँ | हाँ |
| ADV_EXT_IND | विस्तारित विज्ञापन (BLE 5.0) | हाँ | हाँ |
ADV_DIRECT_IND में लक्ष्य Central का पता होता है, जो स्कैनिंग की प्रतीक्षा किए बिना त्वरित कनेक्शन स्थापित करने की अनुमति देता है। इसका उपयोग तब किया जाता है जब उपकरण पहले से एक-दूसरे को “जानते” हों — उदाहरण के लिए, पहले से युग्मित स्मार्टफोन से पुनः कनेक्ट करने के बाद। यह प्रकार ऊर्जा खपत को कम करता है क्योंकि इसे सभी चैनलों पर विज्ञापन की आवश्यकता नहीं होती।
Advertising interval क्रमिक advertising events के बीच का समय है। विनिर्देश 0.625 ms के चरण के साथ 20 ms से 10.24 s तक के अंतराल की अनुमति देता है। वास्तविक अंतराल एक निश्चित मान और यादृच्छिक विलंब (0–10 ms) के योग के रूप में गणना की जाती है, जो कई विज्ञापन देने वाले उपकरणों के बीच टकराव की संभावना को कम करता है।
अंतराल का चयन खोज गति और ऊर्जा खपत के बीच संतुलन है। 20 ms के अंतराल पर, उपकरण 20–30 ms में पाया जाएगा, लेकिन औसत धारा लगभग 1–2 mA होगी। 1000 ms के अंतराल पर, खोज में 1 सेकंड तक लग सकता है, लेकिन औसत धारा 50–100 µA तक गिर जाएगी। अधिकांश IoT उपकरणों के लिए अनुशंसित अंतराल 200–1000 ms है।
Texas Instruments Application Report SWRA478 (2024) के अनुसार, विज्ञापन अंतराल को 100 ms से 1000 ms तक बढ़ाने से ऊर्जा खपत 90% कम हो जाती है। यदि उपकरण को तत्काल खोज की आवश्यकता नहीं है (उदाहरण के लिए, तापमान सेंसर जो प्रति मिनट एक बार डेटा प्रेषित करता है), तो इष्टतम अंतराल 1000–2000 ms है।
एक अतिरिक्त पैरामीटर advertising timeout है — अधिकतम समय जिसके दौरान उपकरण विज्ञापन करता है। iOS में, Peripheral स्वचालित रूप से पृष्ठभूमि में 180 सेकंड के बाद विज्ञापन बंद कर देता है। Android में ऐसी कोई सीमा नहीं है, लेकिन निर्माता अपनी सीमाएँ जोड़ सकते हैं।
Scan Response एक अतिरिक्त डेटा पैकेट (31 बाइट तक) है जो Peripheral Central के scan request के जवाब में भेजता है। Scan request Central द्वारा विज्ञापन पैकेट प्राप्त करने के बाद भेजा जाता है यदि उसे कनेक्ट करने से पहले अधिक जानकारी की आवश्यकता होती है। Scan Response को अतिरिक्त विज्ञापन की आवश्यकता नहीं है — यह केवल अनुरोध पर भेजा जाता है, जिससे एयरटाइम की बचत होती है।
विशिष्ट डेटा वितरण: advertising PDU (31 बाइट) में फ़्लैग (3 बाइट), सेवा UUID (2–16 बाइट) और निर्माता डेटा (शेष बाइट) होते हैं। scan response में पूर्ण उपकरण नाम (28 बाइट तक) और अतिरिक्त UUID या TX Power Level होता है। यह पृथक्करण Central को scan response पढ़े बिना UUID द्वारा उपकरणों को तुरंत फ़िल्टर करने की अनुमति देता है।
विज्ञापन पैकेट डिज़ाइन करते समय ध्यान रखें: यदि सभी 31 बाइट advertising PDU में व्यस्त हैं, तो Central यह निर्धारित नहीं कर पाएगा कि उपकरण scan response का समर्थन करता है या नहीं। Scan response क्षमता को इंगित करने के लिए advertising PDU में कम से कम 3–5 बाइट खाली छोड़ने की अनुशंसा की जाती है।
विस्तारित विज्ञापन (Extended Advertising BLE 5.0) विज्ञापन तंत्र का एक विस्तार है जो विज्ञापन पैकेट के आकार को 31 से 251 बाइट तक बढ़ाता है और नए पैकेट प्रकार जोड़ता है। Extended Advertising खुले क्षेत्रों में संचार सीमा को 1 किमी तक बढ़ाने के लिए coded PHY और कई Central को सिंक्रोनाइज़ करने के लिए आवधिक विज्ञापन (Periodic Advertising) का भी समर्थन करता है।
मुख्य नवाचार: ADV_EXT_IND — विस्तारित advertising PDU जो एक ही पैकेट में 251 बाइट तक डेटा प्रेषित कर सकता है। Extended Advertising प्राथमिक चैनलों (37, 38, 39) का उपयोग केवल यह इंगित करने के लिए करता है कि किस द्वितीयक चैनल (0–36) पर पूर्ण डेटा प्रेषित किया जाता है। यह विज्ञापन चैनलों पर भार कम करता है और सिस्टम की कुल थ्रूपुट क्षमता बढ़ाता है।
आवधिक विज्ञापन (Periodic Advertising) एक अतिरिक्त तंत्र है जिसमें Peripheral निश्चित अंतराल पर द्वितीयक चैनलों पर डेटा भेजता है, और Central इस अनुक्रम के साथ सिंक्रोनाइज़ हो सकता है। इसका उपयोग उन सेवाओं के लिए किया जाता है जिन्हें नियमित डेटा अपडेट की आवश्यकता होती है — उदाहरण के लिए, ऑडियो स्ट्रीमिंग या रीयल-टाइम सेंसर रीडिंग।
| पैरामीटर | मानक BLE | विस्तारित BLE 5.0 |
|---|---|---|
| अधिकतम पैकेट आकार | 31 बाइट | 251 बाइट |
| चैनल | केवल 37, 38, 39 | + द्वितीयक 0–36 |
| सीमा | 100 मी तक | 1000 मी तक (coded PHY) |
| गति | 1 Mbps | 125 kbps – 2 Mbps |
| आवधिक | नहीं | हाँ |
iOS (Core Bluetooth) विज्ञापन प्रबंधन के लिए CBPeripheralManager प्रदान करता है। विज्ञापन पैरामीटर advertisementData शब्दकोश में कुंजियों CBAdvertisementDataLocalNameKey (उपकरण नाम), CBAdvertisementDataServiceUUIDsKey (सेवा UUID), CBAdvertisementDataTxPowerLevelKey (शक्ति स्तर) के साथ सेट किए जाते हैं। iOS स्वचालित रूप से विज्ञापन अंतराल प्रबंधित करता है और इसे मैन्युअल रूप से सेट करने की अनुमति नहीं देता।
import CoreBluetooth
class AdvertiserManager: NSObject, CBPeripheralManagerDelegate {
private var peripheralManager: CBPeripheralManager!
func startBLEAdvertising() {
let data: [String: Any] = [
CBAdvertisementDataLocalNameKey: "BLE Beacon",
CBAdvertisementDataServiceUUIDsKey: [
CBUUID("180F")
],
CBAdvertisementDataIsConnectable: true
]
peripheralManager.startAdvertising(data)
}
}
Android (BluetoothLeAdvertiser) अधिक विस्तृत नियंत्रण प्रदान करता है। उपलब्ध: AdvertiseSettings — मोड कॉन्फ़िगरेशन (LOW_POWER, BALANCED, LOW_LATENCY), ट्रांसमीटर शक्ति और अंतराल; AdvertiseData — पैकेट डेटा। Android संगत उपकरणों पर विस्तारित विज्ञापन (BLE 5.0) का समर्थन करता है, लेकिन बाजार में ऐसे उपकरणों का हिस्सा लगभग 30–40% है।
BluetoothLeAdvertiser advertiser =
BluetoothAdapter.getDefaultAdapter()
.getBluetoothLeAdvertiser();
AdvertiseSettings settings = new AdvertiseSettings.Builder()
.setAdvertiseMode(
AdvertiseSettings.ADVERTISE_MODE_LOW_POWER
)
.setTxPowerLevel(
AdvertiseSettings.ADVERTISE_TX_POWER_MEDIUM
)
.build();
AdvertiseData data = new AdvertiseData.Builder()
.setIncludeDeviceName(true)
.addServiceUuid(new ParcelUuid(
UUID.fromString(
"0000180F-0000-1000-8000-00805F9B34FB"
)
))
.build();
advertiser.startAdvertising(
settings, data, advertiseCallback
);
क्रॉस-प्लेटफ़ॉर्म BLE एप्लिकेशन विकसित करते समय अंतरों पर विचार करें: iOS सीधे विज्ञापन अंतराल को नियंत्रित करने की अनुमति नहीं देता लेकिन सभी उपकरणों पर स्थिर संचालन सुनिश्चित करता है; Android पूर्ण नियंत्रण प्रदान करता है, लेकिन संस्करण और निर्माता विखंडन असंगतता का कारण बन सकता है। दोनों प्लेटफ़ॉर्म के वास्तविक उपकरणों पर विज्ञापन का परीक्षण करने की अनुशंसा की जाती है।
अक्सर पूछे जाने वाले प्रश्न
Connectable विज्ञापन (ADV_IND) Central को उपकरण के साथ द्वि-दिशात्मक कनेक्शन स्थापित करने की अनुमति देता है। Non-connectable (ADV_NONCONN_IND) केवल एक-दिशात्मक डेटा प्रेषण है, जो कनेक्शन क्षमता के बिना पहचानकर्ता प्रसारित करने के लिए बीकन (Beacon) में उपयोग किया जाता है।
मानक विज्ञापन पैकेट 31 बाइट है, scan response अतिरिक्त 31 बाइट है। विस्तारित विज्ञापन (BLE 5.0+) डेटा प्रेषण के लिए द्वितीयक चैनलों का उपयोग करके सीमा बढ़ाकर 251 बाइट कर देता है।
अधिकांश IoT उपकरणों के लिए 500–1000 ms अनुशंसित है। यदि तेज़ खोज आवश्यक है (जैसे हेडफ़ोन कनेक्ट करने के लिए), 20–50 ms का उपयोग करें। कम बार डेटा भेजने वाले सेंसर के लिए, ऊर्जा बचाने के लिए 1000–2000 ms का उपयोग करें।
तीन चैनल (37, 38, 39) खोज विश्वसनीयता और थ्रूपुट के बीच एक समझौता है। एक चैनल Wi-Fi द्वारा व्यस्त हो सकता है, लेकिन उपकरण अन्य दो पर पाया जाएगा। चैनल 38 Wi-Fi चैनलों के बीच न्यूनतम हस्तक्षेप के क्षेत्र में स्थित है।
विज्ञापन BLE में मुख्य ऊर्जा उपभोक्ता है। 1000 ms के अंतराल पर, औसत धारा 50–100 µA है, जो उपकरण को CR2032 बैटरी पर एक वर्ष तक चलने की अनुमति देती है। 20 ms के अंतराल पर, धारा बढ़कर 1–2 mA हो जाती है, जिससे संचालन समय कई सप्ताह तक कम हो जाता है।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें