Advertising (reklam) — bu Bluetooth Low Energy-də bir mexanizmdir ki, Peripheral cihazı öz varlığı barədə məlumat verir, üç ayrılmış kanalda (37, 38, 39) qısa məlumat paketləri göndərir. Bluetooth Core Specification 5.4 (2023) iki reklam növü müəyyən edir: connectable — cihaz qoşulmağa hazırdır, və non-connectable — yalnız məlumat ötürən mayaklar (Beacon) tərəfindən istifadə olunur, ikitərəfli əlaqə qurmadan. Reklam parametrləri — interval 20 ms-dən 10.24 s-ə qədər, ötürücü gücü -20-dən +10 dBm-ə qədər və paket növü — cihazın aşkarlanma sürətinə və enerji istehlakına birbaşa təsir edir ki, bu da batareya ilə işləyən IoT cihazlarının hazırlanmasında kritik əhəmiyyət daşıyır.
Əsas məqamlar
Advertising (reklam) — bu BLE cihazının öz varlığı və əlçatanlığı barədə məlumat verdiyi dövri qısa məlumat paketlərinin göndərilməsi prosesidir. Klassik Bluetooth-dan fərqli olaraq, orada cihaz axtarışı saniyələr çəkir, BLE advertising cihazı millisaniyələr ərzində aşkarlamağa imkan verir, minimal enerji sərf edərək.
BLE arxitekturası cihazları iki rola ayırır: Peripheral (reklam edir) və Central (skan edir). Peripheral advertising paketləri göndərir, Central isə kanalı skan edir və qoşulma qərarı verir. Bu asimmetrik model BLE-nin əsas üstünlüyüdür: reklam edən cihaz enerjini yalnız qısa paketlər göndərməyə sərf edir, daimi kanal dinləməyə yox.
Advertising prosesi üç mərhələdən ibarətdir: advertising event (paketin hər üç kanalda göndərilməsi), scan request/response (Central ilə opsional mübadilə) və connection request (Central tərəfindən qoşulmanın başladılması). Hər mərhələ Link Layer səviyyəsində Bluetooth Controller tərəfindən idarə olunur.
BLE 40 kanaldan istifadə edir 2.4 GHz diapazonunda, bunlardan 37 (2402 MHz), 38 (2426 MHz) və 39 (2480 MHz) yalnız advertising üçün ayrılmışdır. Üç kanal — etibarlı aşkarlama və ötürmə qabiliyyəti arasında kompromisdir: bir kanal Wi-Fi və ya digər müdaxilələrlə məşğul ola bilər, lakin cihaz digər iki kanalda aşkarlanacaq.
Kanal 37 Wi-Fi kanalı 1-in yanında, kanal 39 — Wi-Fi kanalı 6-nın yanında, kanal 38 isə onların arasında, minimal müdaxilə zonasında yerləşir. Üç kanalın seçimi cihazın sıx radio mühitində belə aşkarlanacağına zəmanət verir — məsələn, onlarla Wi-Fi giriş nöqtəsi olan ticarət mərkəzində.
Peripheral advertising paketini ardıcıl olaraq hər üç kanalda göndərir — bu advertising event adlanır. Mərkəzi cihaz bir dəfəyə bir kanalı skan edir, Bluetooth Controller-də həyata keçirilən alqoritmə uyğun olaraq onlar arasında keçid edir. Toqquşmalar olmadıqda bir advertising event ərzində aşkarlanma ehtimalı 100%-ə yaxındır.
Bluetooth Core Specification bir neçə advertising PDU (Protocol Data Unit) növü müəyyən edir, hər biri öz təyinatı ilə. Əsas növlər: ADV_IND (connectable undirected advertising) — qoşulma imkanı olan standart reklam, ADV_NONCONN_IND (non-connectable undirected advertising) — yalnız qoşulmasız reklam, ADV_SCAN_IND (scannable undirected advertising) — scan request-i dəstəkləyir, ADV_DIRECT_IND (directed advertising) — müəyyən Central üçün reklam.
ADV_IND — ən geniş yayılmış növ, əksər BLE cihazlarında istifadə olunur. ADV_IND aldıqdan sonra Central connection request göndərə və qoşulma qura bilər. ADV_NONCONN_IND mayaklar (Beacon) tərəfindən istifadə olunur: cihaz reklam edir, lakin qoşulma sorğuları qəbul etmir — yalnız birtərəfli məlumat ötürmə.
| PDU növü | Təsvir | Qoşulma | Scan response |
|---|---|---|---|
| ADV_IND | Standart reklam | Bəli | Bəli |
| ADV_DIRECT_IND | Müəyyən Central üçün reklam | Bəli | Xeyr |
| ADV_NONCONN_IND | Qoşulmasız (mayaklar) | Xeyr | Xeyr |
| ADV_SCAN_IND | Skan dəstəyi ilə | Bəli | Bəli |
| ADV_EXT_IND | Extended advertising (BLE 5.0) | Bəli | Bəli |
ADV_DIRECT_IND hədəf Central-ın ünvanını ehtiva edir ki, bu da skan gözləmədən tez qoşulmağa imkan verir. Cihazlar artıq bir-birini “tanıdıqda” istifadə olunur — məsələn, əvvəllər qoşulmuş smartfona yenidən qoşularkən. Bu növ enerji istehlakını azaldır, çünki bütün kanallarda reklam tələb etmir.
Advertising interval — ardıcıl advertising event-lər arasındakı vaxtdır. Spesifikasiya 20 ms-dən 10.24 s-ə qədər intervala 0.625 ms addımı ilə icazə verir. Real interval sabit dəyər və təsadüfi gecikmənin (0–10 ms) cəmi kimi hesablanır ki, bu da bir neçə reklam edən cihaz arasında toqquşma ehtimalını azaldır.
Interval seçimi aşkarlanma sürəti və enerji istehlakı arasında balansdır. 20 ms intervalında cihaz 20–30 ms ərzində aşkarlanacaq, lakin orta cərəyan təxminən 1–2 mA olacaq. 1000 ms intervalında — aşkarlanma 1 saniyəyə qədər çəkəcək, lakin orta cərəyan 50–100 μA-a düşəcək. Əksər IoT cihazları üçün tövsiyə olunan interval 200–1000 ms-dir.
Texas Instruments Application Report SWRA478 (2024) məlumatına görə, advertising intervalının 100 ms-dən 1000 ms-ə artırılması enerji istehlakını 90% azaldır. Əgər cihaz dərhal aşkarlanma tələb etmirsə (məsələn, dəqiqədə bir məlumat göndərən temperatur sensoru), optimal interval 1000–2000 ms-dir.
Əlavə parametr — advertising timeout — cihazın reklam etdiyi maksimum vaxtdır. iOS-da Peripheral fon rejimində 180 saniyədən sonra reklamı avtomatik söndürür. Android-də məhdudiyyət yoxdur, lakin istehsalçılar öz limitlərini əlavə edə bilər.
Scan Response — Peripheral tərəfindən Central-dan scan request-ə cavab olaraq göndərilən əlavə məlumat paketidir (31 bayta qədər). Scan request Central tərəfindən advertising paketi aldıqdan sonra göndərilir, əgər qoşulmadan əvvəl daha çox məlumat lazımdırsa. Scan Response əlavə reklam tələb etmir — yalnız sorğu əsasında göndərilir, kanala qənaət edərək.
Tipik məlumat bölgüsü: advertising PDU-da (31 bayt) flaqalar (3 bayt), xidmət UUID-ləri (2–16 bayt) və istehsalçı məlumatları (qalan baytlar) yerləşdirilir. Scan response-da cihazın tam adı (28 bayta qədər) və əlavə UUID-lər və ya TX Power Level ötürülür. Bu bölgü Central-a scan response oxumadan UUID üzrə cihazları tez filtrləməyə imkan verir.
Advertising paketini layihələndirərkən nəzərə alın: əgər advertising PDU-da bütün 31 bayt məşğuldursa, Central cihazın scan response dəstəklədiyini müəyyən edə bilməyəcək. Advertising PDU-da scan response qabiliyyətini göstərmək üçün ən azı 3–5 bayt boş buraxmaq tövsiyə olunur.
Extended Advertising (BLE 5.0) — reklam mexanizminin genişləndirilməsidir ki, advertising paketinin ölçüsünü 31-dən 251 bayta qədər artırır və yeni paket növləri əlavə edir. Extended Advertising həmçinin açıq ərazidə əlaqə məsafəsini 1 km-ə qədər artırmaq üçün coded PHY-ni və bir neçə Central-ın sinxronizasiyası üçün dövri reklamı (Periodic Advertising) dəstəkləyir.
Əsas yeniliklər: ADV_EXT_IND — bir paketdə 251 bayta qədər məlumat ötürə bilən extended advertising PDU. Extended Advertising ilkin kanallardan (37, 38, 39) yalnız tam məlumatların hansı ikinci dərəcəli kanalda (0–36) ötürüldüyünü göstərmək üçün istifadə edir. Bu reklam kanallarına yükü azaldır və sistemin ümumi ötürmə qabiliyyətini artırır.
Periodic Advertising — Peripheral-ın ikinci dərəcəli kanallarda sabit intervalla məlumat göndərdiyi və Central-ın bu ardıcıllıqla sinxronlaşa bildiyi əlavə mexanizmdir. Müntəzəm məlumat yeniləməsi tələb edən xidmətlər üçün istifadə olunur — məsələn, audio yayımı və ya real vaxtda sensor göstəriciləri.
| Parametr | BLE standartı | Extended BLE 5.0 |
|---|---|---|
| Maks. paket ölçüsü | 31 bayt | 251 bayt |
| Kanallar | Yalnız 37, 38, 39 | + ikinci dərəcəli 0–36 |
| Məsafə | 100 m-ə qədər | 1000 m-ə qədər (coded PHY) |
| Sürət | 1 Mbps | 125 kbps – 2 Mbps |
| Periodic | Xeyr | Bəli |
iOS (Core Bluetooth) reklamı idarə etmək üçün CBPeripheralManager təqdim edir. Advertising parametrləri CBAdvertisementDataLocalNameKey (cihaz adı), CBAdvertisementDataServiceUUIDsKey (xidmət UUID-ləri), CBAdvertisementDataTxPowerLevelKey (güc) açarları ilə advertisementData lüğəti vasitəsilə təyin edilir. iOS advertising intervalını avtomatik idarə edir və onun əl ilə qurulmasına icazə vermir.
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) daha ətraflı nəzarət təmin edir. Əlçatandır: AdvertiseSettings — rejimin (LOW_POWER, BALANCED, LOW_LATENCY), ötürücü gücünün və intervalın qurulması; AdvertiseData — paket məlumatları. Android uyğun cihazlarda extended advertising (BLE 5.0) dəstəkləyir, lakin bazarda belə cihazların payı təxminən 30–40% təşkil edir.
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
);
Platformalararası BLE tətbiqi hazırlayarkən fərqləri nəzərə alın: iOS advertising intervalını birbaşa idarə etməyə imkan vermir, lakin bütün cihazlarda sabit işləməyə zəmanət verir; Android tam nəzarət təmin edir, lakin versiya və istehsalçıların parçalanması uyğunsuzluğa səbəb ola bilər. Hər iki platformanın real cihazlarında advertising-i sınaqdan keçirmək tövsiyə olunur.
Tez-tez verilən suallar
Connectable advertising (ADV_IND) Central-a cihazla ikitərəfli əlaqə qurmağa imkan verir. Non-connectable (ADV_NONCONN_IND) — yalnız birtərəfli məlumat ötürmə, qoşulma imkanı olmadan identifikator yayımlamaq üçün mayaklar (Beacon) tərəfindən istifadə olunur.
Standart advertising paketi — 31 bayt, scan response — daha 31 bayt. Extended Advertising (BLE 5.0+) məlumat ötürmək üçün ikinci dərəcəli kanallardan istifadə edərək limiti 251 bayta qədər artırır.
Əksər IoT cihazları üçün 500–1000 ms tövsiyə olunur. Sürətli aşkarlanma tələb olunarsa (məsələn, qulaqlıq qoşmaq üçün) — 20–50 ms. Nadir məlumat göndərən sensorlar üçün enerjiyə qənaət üçün 1000–2000 ms.
Üç kanal (37, 38, 39) aşkarlanma etibarlılığı və ötürmə qabiliyyəti arasında kompromisdir. Bir kanal Wi-Fi ilə məşğul ola bilər, lakin cihaz digər ikisində aşkarlanacaq. Kanal 38 Wi-Fi kanalları arasında minimal müdaxilə zonasında yerləşir.
Advertising BLE-də əsas enerji istehlakçısıdır. 1000 ms intervalında orta cərəyan 50–100 μA təşkil edir ki, bu da cihazın CR2032 batareyası ilə bir il işləməsinə imkan verir. 20 ms intervalında cərəyan 1–2 mA-a qədər artır, iş müddətini bir neçə həftəyə endirir.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun