Bluetooth va Bluetooth Low Energy qisqa masofalarda ma'lumot uzatish uchun simsiz aloqa standartlaridir. Bluetooth Classic (BR/EDR) audio va fayllar uchun barqaror oqim kanalini ta'minlaydi, BLE esa sensorlar va periferiya qurilmalari bilan energiya tejamkor ishlash uchun optimallashtirilgan. Bluetooth SIG, 2025 ma'lumotlariga ko'ra, har yili BLE qo'llab-quvvatlashi bilan 5 milliarddan ortiq qurilma jo'natiladi — standart IoT, taqiladigan elektronika va mobil aksessuarlarning asosiga aylandi.
Asosiy fikrlar
Bluetooth — ISM 2,4 GHz diapazonida ishlaydigan va 100 metrgacha masofadagi qurilmalar orasida aloqa uchun mo'ljallangan simsiz shaxsiy tarmoq (WPAN) standarti. IEEE 802.15.1 spetsifikatsiyasi fizik va MAC darajalarini belgilaydi, Bluetooth SIG steki esa muayyan stsenariylar uchun yuqori darajali profillarni belgilaydi: audio eshitish vositasi (HSP), fayl uzatish (OPP), klaviatura kiritish (HID).
Standart 4.0 versiyasidan (2010) boshlab ikki tarmoqqa bo'lindi: Bluetooth Classic (BR/EDR) va Bluetooth Low Energy (BLE, ilgari Bluetooth Smart). Classic uzluksiz oqimlar — audio qo'ng'iroqlar, musiqa, fayllar uchun mo'ljallangan. BLE ma'lumotlar o'nlab soniyalar yoki daqiqalar oralig'ida qisqa paketlar bilan uzatiladigan ilovalar — puls o'lchagichlar, teglar, harorat sensorlari uchun yaratilgan.
Bluetooth SIG (2025) ma'lumotlariga ko'ra, yangi smartfonlarning 99% ikkala versiyani ham qo'llab-quvvatlaydi va BLE ekotizimi Blood Pressuredan Environmental Sensinggacha 15 dan ortiq profil turini o'z ichiga oladi.
Classic va BLE o'rtasidagi tanlov stsenariyga bog'liq: audio oqimini uzatish uchun faqat Classic mos keladi, soatiga bir marta sensor so'rovi uchun esa faqat BLE. BR/EDR 1 MHz qadam bilan 79 kanaldan va adaptiv chastota modulyatsiyasidan (AFH) foydalanadi, bu Wi-Fi shovqinlariga qarshi barqarorlikni ta'minlaydi.
| Parametr | Bluetooth Classic (BR/EDR) | Bluetooth Low Energy (BLE) |
|---|---|---|
| Uzatish tezligi | 1–3 Mbit/s (EDR) | 125 kbit/s – 2 Mbit/s (LE 2M PHY) |
| Eng yuqori tok | 10–30 mA | 5–15 mA |
| Efirga chiqish vaqti | ~100 ms | ~3 ms |
| Topologiya | Piconet (1 master, 7 slave gacha) | Broadcaster / Observer / Peripheral / Central |
| Profillar | HFP, A2DP, HSP, SPP, OPP | GATT asosida (HRS, BLS, CTS va b.) |
| Oddiy qurilmalar | Eshitish vositalari, dinamiklar, avtomobil hands-free to'plamlari | Fitness bilakuzuklar, teglar, puls o'lchagichlar, IoT sensorlari |
| Moslik | Jismoniy darajada BLE bilan mos kelmaydi | Ikki rejimli chiplar ikkala stekni qo'llab-quvvatlaydi |
BLE 5.x ochiq maydonda masofani 1 km gacha oshirish uchun LE Coded PHY va LC3 kodeki bilan LE Audio qo'shdi — yangi versiya audio stsenariylarda Classic va BLE o'rtasidagi chegarani asta-sekin yo'q qiladi.
BLE stegi uch darajaga bo'lingan: Controller (fizik va bog'lanish darajalari), Host (L2CAP, ATT, GATT, Security Manager) va Application (ilovada profilni amalga oshirish). Bu bo'linish chip ishlab chiqaruvchisiga Controller-ni mikrodasturda amalga oshirishga, mobil ilova ishlab chiqaruvchisiga esa faqat GATT abstraksiyalari bilan ishlashga imkon beradi.
Link Layer (LL) efir vaqtini boshqaradi: qurilma Standby, Advertising, Scanning, Initiating va Connection holatlari o'rtasida o'tadi. Connected holatida Central va Peripheral connection interval — ma'lumot paketlari almashinuvi chastotasi haqida kelishadi. Odatiy interval 7,5–1000 ms; almashinuv qanchalik tez-tez bo'lsa, o'tkazish qobiliyati shunchalik yuqori va energiya iste'moli shunchalik ko'p.
Security Manager (SM) pairing protokoli orqali kalit almashinuvi bilan AES-128 shifrlashni amalga oshiradi. Uch rejim farqlanadi: Just Works (PIN kiritmasdan), Passkey Entry (ekranda 6 xonali kod) va OOB (NFC yoki QR). Taqiladigan qurilmalar uchun odatda Just Works, tibbiy qurilmalar uchun esa qo'shimcha tekshirish bilan OOB ishlatiladi.
Bluetooth Core Specification 5.4 (2023) ma'lumotlariga ko'ra, LE Secure Connections rejimida xavfsiz ulanishni o'rnatish vaqti connection interval 30 ms bo'lganda 300 ms dan oshmaydi.
ATT (Attribute Protocol) protokoli — server (periferik qurilma) atributlarni saqlaydigan va mijoz (smartfon) ularni o'qiydigan yoki yozadigan asosiy transport modeli. GATT (Generic Attribute Profile) ATT ustida ierarxiya quradi: Service → Characteristic → Descriptor.
Har bir xizmat qurilmaning bir funktsiyasini tavsiflovchi xarakteristikalar mantiqiy guruhidir: Heart Rate Service (UUID 0x180D) bildirishnomalarni boshqaradigan Descriptor Client Characteristic Configuration (0x2902) bilan Heart Rate Measurement (UUID 0x2A37) xarakteristikasini o'z ichiga oladi. Mobil ilova ishlab chiqaruvchisi discoverServices() orqali xizmatlar ro'yxatini oladi, so'ngra UUID bo'yicha kerakli xarakteristikani topadi va bildirishnomalarga obuna bo'ladi.
BLE standartlashtirilgan Bluetooth SIG xizmatlari uchun 16-bitli UUID dan va ishlab chiqaruvchining shaxsiy xizmatlari uchun 128-bitli UUID dan foydalanadi. Misol uchun, teg qutisi o'z batareyasining zaryad darajasini uzatish uchun xarakteristika bilan A000-… xizmatini belgilashi mumkin.
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("Puls: $heartRate zarba/min")
}
}
Misolda, ilova standart Bluetooth SIG UUID si bo'yicha Heart Rate xizmatini topadi, puls o'lchash xarakteristikasini oladi va uning bildirishnomalariga obuna bo'ladi — puls har o'zgarganida, periferik qurilma Central dan aniq so'rovsiz ma'lumot yuboradi.
Advertising — BLE ning asosiy mexanizmi bo'lib, bunda Peripheral qurilma uchta asosiy kanalda (37, 38, 39) davriy ravishda efir paketlarini (advertising PDUs) yuboradi. Markaziy qurilma bu kanallarni skanerlaydi, advertising ma'lumotlarini oladi va ulanishni boshlashi mumkin.
Advertising paketi 31 baytgacha foydali yukni o'z ichiga oladi: bayroqlar, TX quvvat darajasi, mahalliy nom, xizmat UUIDlari, ishlab chiqaruvchiga xos ma'lumotlar. Bu ulanish o'rnatmasdan sensor o'qishlarini uzatish uchun yetarli — Connectionless rejimi (Broadcaster turi). Doimiy ma'lumot uzatish uchun (masalan, daqiqada bir marta harorat) 1000 ms gacha connection interval bilan ulanish ishlatiladi.
Mobil platformada skanerlash startScan() (Android) yoki scanForPeripherals() (iOS) orqali ishga tushiriladi. Xizmat UUID si bo'yicha filtrlash barcha ko'rinadigan qurilmalarni qayta ishlashga energiya sarf qilmaslikka imkon beradi — ilova faqat qiziqarli teglar yoki sensorlar uchun callback oladi.
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("Qurilma topildi: \(name)")
}
}
}
Qurilma topilgandan so'ng, Central CBPeripheral obyektini uzatib connect() funksiyasini chaqiradi. Ulanish parametrlari (interval, latency, supervision timeout) Link Layer darajasida kelishiladi — ishlab chiqaruvchi ularni bevosita boshqarmaydi, lekin Android da requestConnectionPriority orqali ta'sir qilishi mumkin.
Ikkala mobil platforma BLE bilan ishlash uchun mahalliy APIlarni taqdim etadi. Core Bluetooth (iOS) delegat yondashuvidan foydalanadi: markaziy menejer operatsiyalarni boshlaydi, periferik obyekt esa natijalar haqida delegat metodlari orqali xabar beradi. android.bluetooth (Android) callback interfeyslari asosida qurilgan va bir nechta qurilma bilan parallel GATT operatsiyalarini qo'llab-quvvatlaydi.
Platformalar orasidagi asosiy farqlar:
Bluetooth SIG testlariga (2024) ko'ra, smartfonning fitness bilakuzuk bilan BLE ulanish vaqti Android da o'rtacha 150–300 ms, iOS da esa 100–250 ms ni tashkil qiladi — farq radio modulini boshqarish siyosatlari bilan bog'liq.
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 ishlab chiqaruvchisi yagona API interfeysini oladi, uning ostida flutter_blue_plus chaqiruvlarni mahalliy android.bluetooth yoki Core Bluetooth ga tarjima qiladi. Bu yondashuv ikkala platformada BLE periferiyasi bilan ishlash uchun ilova ishlab chiqish vaqtini qisqartiradi.
Tez-tez beriladigan savollar
Bluetooth Classic (BR/EDR) uzluksiz oqim uzatish — audio qo'ng'iroqlar, musiqa, fayl uzatish uchun mo'ljallangan. BLE minimal energiya iste'moli bilan qisqa ma'lumot paketlari — sensorlar, teglar, fitness kuzatuvchilar uchun optimallashtirilgan. Classic 10–30 mA, BLE esa eng yuqori holatda 5–15 mA iste'mol qiladi.
Jismoniy darajada ular mos kelmaydi — turli modulyatsiya va kanal xaritasi. Biroq, zamonaviy chiplarning aksariyati ikki rejimli (dual-mode) va ikkala stekni amalga oshiradi. Ikki rejimli chipli smartfon bir vaqtning o'zida Classic eshitish vositasi va BLE kuzatuvchisi bilan aloqa qilishi mumkin.
Connection interval o'rnatilgan ulanishdagi ikki ma'lumot paketi orasidagi vaqt oralig'idir. Qiymat 7,5 ms dan 4 soniyagacha o'zgaradi. Interval qanchalik kichik bo'lsa, o'tkazish qobiliyati shunchalik yuqori va energiya iste'moli shunchalik ko'p. Daqiqada bir marta harorat sensori uchun 1000 ms interval ishlatiladi.
Pairing Central va Peripheral o'rtasida shifrlash kalitlarini almashish jarayonidir. BLE uchta usulni qo'llab-quvvatlaydi: Just Works (tasdiqlamasdan), Passkey Entry (ekranda PIN kiritish) va OOB (NFC yoki QR orqali almashish). Pairingdan so'ng, qurilmalar kalitlarni saqlaydi (bonding) va qayta ulanishda qayta autentifikatsiyani talab qilmaydi.
Eng keng tarqalganlari: puls o'lchagichlar uchun Heart Rate Profile (0x180D), tonometrlar uchun Blood Pressure Profile (0x1810), harorat va namlik sensorlari uchun Environmental Sensing (0x181A), zaryad darajasi uchun Battery Service (0x180F), model va seriya raqami uchun Device Information (0x180A).
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.