Bluetooth və Bluetooth Low Energy qısa məsafələrdə məlumat ötürmək üçün simsiz rabitə standartlarıdır. Bluetooth Classic (BR/EDR) audio və fayllar üçün sabit bir axın kanalı təmin edir, BLE isə sensorlar və periferiya qurğuları ilə enerji səmərəli iş üçün optimallaşdırılmışdır. Bluetooth SIG, 2025 məlumatlarına görə, hər il BLE dəstəyi ilə 5 milyarddan çox cihaz göndərilir — standart IoT, geyilən elektronika və mobil aksesuarların əsasına çevrilmişdir.
Əsas məqamlar
Bluetooth — ISM 2.4 GHz diapazonunda işləyən və 100 metrə qədər məsafədə cihazlar arasında əlaqə üçün nəzərdə tutulmuş simsiz fərdi şəbəkə (WPAN) standartıdır. IEEE 802.15.1 spesifikasiyası fiziki və MAC səviyyələrini müəyyənləşdirir, Bluetooth SIG yığını isə konkret ssenarilər üçün yuxarı səviyyəli profilləri müəyyənləşdirir: audio qulaqlıqlar (HSP), fayl ötürülməsi (OPP), klaviatura daxiletməsi (HID).
Standart 4.0 versiyasından (2010) etibarən iki qola ayrılmışdır: Bluetooth Classic (BR/EDR — Basic Rate / Enhanced Data Rate) və Bluetooth Low Energy (BLE, əvvəllər Bluetooth Smart). Classic fasiləsiz axınlar — audio zənglər, musiqi, fayllar üçün nəzərdə tutulmuşdur. BLE məlumatların onlarla saniyə və ya dəqiqə fasilələrlə qısa paketlərlə ötürüldüyü tətbiqlər — ürək döyüntü sensorları, etiketlər, temperatur sensorları üçün yaradılmışdır.
Bluetooth SIG (2025) məlumatlarına görə, yeni smartfonların 99%-i hər iki versiyanı dəstəkləyir və BLE ekosisteminə Blood Pressure-dən Environmental Sensing-ə qədər 15-dən çox profil növü daxildir.
Classic və BLE arasında seçim ssenaridən asılıdır: audio axını ötürülməsi üçün yalnız Classic uyğundur, saatda bir dəfə sensor sorğusu üçün isə yalnız BLE. BR/EDR 1 MHz addımla 79 kanaldan və adaptiv tezlik modulyasiyasından (AFH) istifadə edir, bu da Wi-Fi müdaxilələrinə qarşı dayanıqlılığı təmin edir.
| Parametr | Bluetooth Classic (BR/EDR) | Bluetooth Low Energy (BLE) |
|---|---|---|
| Ötürmə sürəti | 1–3 Mbit/s (EDR) | 125 kbit/s – 2 Mbit/s (LE 2M PHY) |
| Pik cərəyan | 10–30 mA | 5–15 mA |
| Yayım vaxtı | ~100 ms | ~3 ms |
| Topologiya | Piconet (1 master, 7 slave-dək) | Broadcaster / Observer / Peripheral / Central |
| Profillər | HFP, A2DP, HSP, SPP, OPP | GATT əsaslı (HRS, BLS, CTS və s.) |
| Tipik cihazlar | Qulaqlıqlar, dinamiklər, avtomobil hands-free dəstləri | Fitness bilərziklər, etiketlər, ürək döyüntü sensorları, IoT sensorları |
| Uyğunluq | Fiziki səviyyədə BLE ilə uyğun deyil | İki rejimli çiplər hər iki yığını dəstəkləyir |
BLE 5.x açıq ərazidə məsafəni 1 km-ə qədər artırmaq üçün LE Coded PHY və LC3 kodeki ilə LE Audio əlavə etdi — yeni versiya audio ssenarilərdə Classic və BLE arasındakı sərhədi tədricən bulandırır.
BLE yığını üç səviyyəyə bölünür: Controller (fiziki və əlaqə səviyyələri), Host (L2CAP, ATT, GATT, Security Manager) və Application (tətbiqdə profil tətbiqi). Bu bölgü çip istehsalçısına Controller-i firmware-də tətbiq etməyə, mobil tətbiq tərtibatçısına isə yalnız GATT abstraksiyaları ilə işləməyə imkan verir.
Link Layer (LL) yayım vaxtını idarə edir: cihaz Standby, Advertising, Scanning, Initiating və Connection vəziyyətləri arasında keçid edir. Connected vəziyyətində Central və Peripheral connection interval — məlumat paketlərinin mübadilə tezliyi barədə razılaşır. Tipik interval 7.5–1000 ms təşkil edir; mübadilə nə qədər tez-tez olarsa, ötürmə qabiliyyəti bir o qədər yüksək və enerji istehlakı bir o qədər çox olar.
Security Manager (SM) pairing protokolu vasitəsilə açar mübadiləsi ilə AES-128 şifrələməni tətbiq edir. Üç rejim fərqləndirilir: Just Works (PIN daxil etmədən), Passkey Entry (ekranda 6 rəqəmli kod) və OOB (NFC və ya QR). Geyilən cihazlar üçün adətən Just Works, tibbi cihazlar üçün isə əlavə yoxlama ilə OOB istifadə olunur.
Bluetooth Core Specification 5.4 (2023) məlumatlarına görə, LE Secure Connections rejimində təhlükəsiz əlaqənin qurulma vaxtı connection interval 30 ms olduqda 300 ms-dən çox deyil.
ATT (Attribute Protocol) protokolu — serverin (periferik cihaz) atributları saxladığı və müştərinin (smartfon) onları oxuduğu və ya yazdığı əsas nəqliyyat modelidir. GATT (Generic Attribute Profile) ATT üzərində iyerarxiya qurur: Service → Characteristic → Descriptor.
Hər bir xidmət cihazın bir funksiyasını təsvir edən xarakteristikaların məntiqi qrupudur: Heart Rate Service (UUID 0x180D) bildirişləri idarə edən Descriptor Client Characteristic Configuration (0x2902) ilə Heart Rate Measurement (UUID 0x2A37) xarakteristikasını ehtiva edir. Mobil tətbiq tərtibatçısı discoverServices() vasitəsilə xidmətlər siyahısını alır, sonra UUID üzrə lazımi xarakteristikanı tapır və bildirişlərə abunə olur.
BLE standartlaşdırılmış Bluetooth SIG xidmətləri üçün 16-bitlik UUID-dən və istehsalçının fərdi xidmətləri üçün 128-bitlik UUID-dən istifadə edir. Məsələn, etiket qutusu öz batareyasının doldurulma səviyyəsini ötürmək üçün xarakteristika ilə A000-… xidməti təyin edə bilər.
private val gattCallback = object BluetoothGattCallback() {
override fun onServicesDiscovered(
gatt: BluetoothGatt, status: Int
) {
val service = gatt.getService(UUID.fromString("0000180d-0000-1000-8000-00805f9b34fb"))
val char = service?.getCharacteristic(
UUID.fromString("00002a37-0000-1000-8000-00805f9b34fb")
)
gatt.setCharacteristicNotification(char, true)
}
override fun onCharacteristicChanged(
gatt: BluetoothGatt, char: BluetoothGattCharacteristic
) {
val heartRate = char.getIntValue(BluetoothGattCharacteristic.FORMAT_UINT8, 1)
updateUi("Nəbz: $heartRate vuruş/dəq")
}
}
Nümunədə tətbiq Bluetooth SIG standart UUID-si ilə Heart Rate xidmətini tapır, nəbz ölçmə xarakteristikasını alır və onun bildirişlərinə abunə olur — nəbz hər dəyişəndə periferik cihaz Central-dən açıq sorğu olmadan məlumat göndərir.
Advertising — BLE-nin əsas mexanizmidir, burada Peripheral cihaz üç ilkin kanalda (37, 38, 39) dövri olaraq yayım paketləri (advertising PDUs) göndərir. Mərkəzi cihaz bu kanalları skan edir, advertising məlumatlarını alır və əlaqə başlada bilər.
Advertising paketi 31 bayta qədər faydalı yük ehtiva edir: bayraqlar, TX güc səviyyəsi, yerli ad, xidmət UUID-ləri, istehsalçıya xas məlumatlar. Bu, əlaqə qurmadan sensor oxunuşlarını ötürmək üçün kifayətdir — Connectionless rejimi (Broadcaster növü). Davamlı məlumat ötürülməsi üçün (məsələn, dəqiqədə bir dəfə temperatur) 1000 ms-ə qədər connection interval ilə əlaqə istifadə olunur.
Mobil platformada skan etmə startScan() (Android) və ya scanForPeripherals() (iOS) vasitəsilə işə salınır. Xidmət UUID-si üzrə filtrləmə bütün görünən cihazları emal etməyə enerji sərf etməməyə imkan verir — tətbiq yalnız maraqlı etiketlər və ya sensorlar üçün callback alır.
import CoreBluetooth
class ScannerViewController: UIViewController {
private var centralManager: CBCentralManager!
override func viewDidLoad() {
centralManager = CBCentralManager(
delegate: self, queue: nil
)
}
func centralManagerDidUpdateState(central: CBCentralManager) {
if central.state == .poweredOn {
centralManager.scanForPeripherals(
withServices: nil, options: nil
)
}
}
func centralManager(
central: CBCentralManager,
didDiscover peripheral: CBPeripheral,
advertisementData: [String : Any],
rssi RSSI: NSNumber
) {
if let name = advertisementData[CBAdvertisementDataLocalNameKey] {
print("Cihaz tapıldı: \(name)")
}
}
}
Cihaz aşkarlanandan sonra Central CBPeripheral obyektini ötürərək connect() funksiyasını çağırır. Əlaqə parametrləri (interval, latency, supervision timeout) Link Layer səviyyəsində razılaşdırılır — tərtibatçı onları birbaşa idarə etmir, lakin Android-də requestConnectionPriority vasitəsilə təsir edə bilər.
Hər iki mobil platforma BLE ilə iş üçün yerli API təqdim edir. Core Bluetooth (iOS) nümayəndə yanaşmasından istifadə edir: mərkəzi menecer əməliyyatları başladır, periferik obyekt isə nəticələr barədə nümayəndə metodları vasitəsilə məlumat verir. android.bluetooth (Android) callback interfeysləri üzərində qurulmuşdur və bir neçe cihazla paralel GATT əməliyyatlarını dəstəkləyir.
Platformalar arasındakı əsas fərqlər:
Bluetooth SIG testlərinə (2024) görə, smartfonun fitness bilərziyi ilə BLE əlaqə vaxtı Android-də orta hesabla 150–300 ms, iOS-da isə 100–250 ms təşkil edir — fərq radio tezlik modulunun idarəetmə siyasətləri ilə bağlıdır.
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
class BleService {
final FlutterBluePlus fbp = FlutterBluePlus();
Future<void> scanAndConnect(String deviceName) async {
await fbp.startScan(timeout: Duration(seconds: 15));
await for (final result in fbp.scanResults) {
if (result.device.advName == deviceName) {
await fbp.stopScan();
await result.device.connect();
break;
}
}
}
}
Flutter tərtibatçısı vahid API interfeysi alır, onun altında flutter_blue_plus çağırışları yerli android.bluetooth və ya Core Bluetooth-a tərcümə edir. Bu yanaşma hər iki platformada BLE periferiyası ilə işləmək üçün tətbiq hazırlama vaxtını azaldır.
Tez-tez verilən suallar
Bluetooth Classic (BR/EDR) fasiləsiz axın ötürülməsi — audio zənglər, musiqi, fayl ötürülməsi üçün nəzərdə tutulmuşdur. BLE minimal enerji istehlakı ilə qısa məlumat paketləri — sensorlar, etiketlər, fitness trekkerlər üçün optimallaşdırılmışdır. Classic 10–30 mA, BLE isə pikdə 5–15 mA istehlak edir.
Fiziki səviyyədə onlar uyğun deyil — fərqli modulyasiya və kanal xəritəsi. Bununla belə, müasir çiplərin əksəriyyəti iki rejimlidir (dual-mode) və hər iki yığını tətbiq edir. İki rejimli çipli smartfon eyni vaxtda Classic qulaqlıq və BLE trekeri ilə əlaqə saxlaya bilər.
Connection interval qurulmuş əlaqədə iki məlumat paketi arasındakı vaxt intervalıdır. Dəyər 7.5 ms-dən 4 saniyəyə qədər dəyişir. Interval nə qədər kiçik olarsa, ötürmə qabiliyyəti bir o qədər yüksək və enerji istehlakı bir o qədər çox olar. Dəqiqədə bir dəfə temperatur sensuru üçün 1000 ms interval istifadə olunur.
Pairing Central və Peripheral arasında şifrələmə açarlarının mübadiləsi prosesidir. BLE üç metodu dəstəkləyir: Just Works (təsdiqləmədən), Passkey Entry (ekranda PIN daxil etmə) və OOB (NFC və ya QR vasitəsilə mübadilə). Pairingdən sonra cihazlar açarları saxlayır (bonding) və təkrarı qoşulmada yenidən autentifikasiya tələb etmir.
Ən geniş yayılmışlar: ürək döyüntü sensorları üçün Heart Rate Profile (0x180D), tonometrlər üçün Blood Pressure Profile (0x1810), temperatur və rütubət sensorları üçün Environmental Sensing (0x181A), doldurulma səviyyəsi üçün Battery Service (0x180F), model və seriya nömrəsi üçün Device Information (0x180A).
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