Bluetooth και BLE: τι είναι, διαφορά μεταξύ Classic και Low Energy και πως λειτουργεί

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-03-24 Χρόνος ανάγνωσης: 12 λεπ

Bluetooth și Bluetooth Low Energy sunt standarde de comunicație fără fir pentru transmiterea datelor pe distanțe scurte. Bluetooth Classic (BR/EDR) oferă un canal de flux stabil pentru audio și fișiere, iar BLE este optimizat pentru funcționarea eficientă energetic cu senzori și periferice. Conform Bluetooth SIG, 2025, anual se livrează peste 5 miliarde de dispozitive cu suport BLE — standardul a devenit baza IoT, electronicii purtabile și accesoriilor mobile.

Βασικά σημεία

  • Bluetooth Classic — standard BR/EDR pentru transmiterea continuă a audio și datelor cu viteză până la 3 Mbit/s și consum 10–30 mA
  • Bluetooth Low Energy — protocol pentru transmiterea intermitentă a volumelor mici de date cu curent de vârf 5–15 mA și durată baterie de până la câțiva ani
  • Προφίλ GATT — model unic client-server care stabilește cum aplicația mobilă citește caracteristicile dispozitivului periferic
  • Advertising — mecanism prin care dispozitivul BLE trimite periodic pachete-baliză pentru detectarea de către dispozitivul central (smartphone)
  • iOS και Android — platformele folosesc API-uri diferite (Core Bluetooth și android.bluetooth), dar ambele suportă GATT — codul portabil cu modificări minime

Τι είναι το Bluetooth και το BLE;

Bluetooth — este un standard de rețea personală fără fir (WPAN) care funcționează în banda ISM 2,4 GHz și este destinat comunicării între dispozitive până la 100 de metri. Specificația IEEE 802.15.1 definește nivelul fizic și MAC, iar stiva Bluetooth SIG definește profilurile superioare pentru scenarii specifice: căști audio (HSP), transfer fișiere (OPP), tastatură (HID).

Standardul s-a împărțit în două ramuri de la versiunea 4.0 (2010): Bluetooth Classic (BR/EDR) și Bluetooth Low Energy (BLE, anterior Bluetooth Smart). Classic e pentru fluxuri continue — convorbiri audio, muzică, fișiere. BLE e creat pentru aplicații cu date transmise în pachete scurte cu pauze de zeci de secunde sau minute — pulsmetre, etichete, senzori de temperatură.

Conform Bluetooth SIG (2025), 99% din noile smartphone-uri suportă ambele versiuni, iar ecosistemul BLE include peste 15 tipuri de profiluri, de la Blood Pressure la Environmental Sensing.

Bluetooth Classic vs BLE: συγκριτικά χαρακτηριστικά

Alegerea între Classic și BLE depinde de scenariu: pentru flux audio e potrivit doar Classic, pentru interogarea unui senzor o dată pe oră — doar BLE. BR/EDR utilizează 79 de canale cu pas 1 MHz și modulație adaptivă a frecvenței (AFH), asigurând rezistență la interferențe Wi-Fi.

ParametruBluetooth Classic (BR/EDR)Bluetooth Low Energy (BLE)
Viteza de transmisie1–3 Mbit/s (EDR)125 kbit/s – 2 Mbit/s (LE 2M PHY)
Curent de vârf10–30 mA5–15 mA
Timp de emisie~100 ms~3 ms
TopologiePiconet (1 master, până la 7 slave)Broadcaster / Observer / Peripheral / Central
ProfiluriHFP, A2DP, HSP, SPP, OPPPe bază GATT (HRS, BLS, CTS etc.)
Dispozitive tipiceCăști, difuzoare, seturi hands-free autoBrățări fitness, etichete, pulsmetre, senzori IoT
CompatibilitateIncompatibil cu BLE la nivel fizicCipurile dual-mode suportă ambele stive

BLE 5.x a adăugat LE Coded PHY pentru rază până la 1 km (în aer liber) și LE Audio cu codec LC3 — noua versiune estompează granița dintre Classic și BLE în scenariile audio.

Αρχιτεκτονική BLE: Controller, Host και Application

Stiva BLE are trei niveluri: Controller (fizic și legătură), Host (L2CAP, ATT, GATT, Security Manager) și Application (implementarea profilului). Această separare permite producătorului să implementeze Controller-ul în firmware, iar dezvoltatorului să lucreze doar cu abstractizările GATT.

Link Layer (LL) gestionează timpul de emisie: dispozitivul comută între stările Standby, Advertising, Scanning, Initiating și Connection. În starea Connected, Central și Peripheral convin connection interval — frecvența schimbului de pachete. Interval tipic: 7,5–1000 ms; cu cât e mai frecvent, cu atât lățimea de bandă e mai mare și consumul mai ridicat.

Security Manager (SM) implementează criptarea AES-128 cu schimb de chei prin pairing. Trei moduri: Just Works (fără PIN), Passkey Entry (cod 6 cifre) și OOB (NFC sau QR). Pentru dispozitive purtabile se folosește Just Works, pentru medicale — OOB cu verificare suplimentară.

Conform Bluetooth Core Specification 5.4 (2023), timpul conexiunii securizate în LE Secure Connections nu depășește 300 ms la connection interval de 30 ms.

Προφίλ GATT: υπηρεσίες, χαρακτηριστικά και δεσκρίπτορες

Protocolul ATT (Attribute Protocol) — model de transport în care serverul (perifericul) stochează atribute, iar clientul (smartphone-ul) le citește/scrie. GATT (Generic Attribute Profile) construiește ierarhia: Service → Characteristic → Descriptor.

Fiecare serviciu e un grup logic de caracteristici: Heart Rate Service (UUID 0x180D) conține Heart Rate Measurement (UUID 0x2A37) cu Descriptor Client Characteristic Configuration (0x2902) pentru notificări. Dezvoltatorul obține lista serviciilor prin discoverServices(), găsește caracteristica după UUID și se abonează la notificări.

BLE folosește UUID de 16 biți pentru servicii standardizate Bluetooth SIG și UUID de 128 de biți pentru servicii personalizate. O husă-tracker poate defini serviciul A000-… cu o caracteristică pentru nivelul de încărcare al bateriei.

Exemplu de lucru cu GATT în Kotlin (Android)

kotlin
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("Παλμός: $heartRate παλμοί/λεπτό")
    }
}

În exemplu, aplicația găsește Heart Rate după UUID-ul standard, obține caracteristica de puls și se abonează la notificări — la fiecare modificare, perifericul trimite date fără cerere explicită de la Central.

Advertising, σκάνινγκ και εσταρλαγή σύνδεσης

Advertising — mecanismul cheie BLE în care Peripheral trimite periodic pachete de difuzare (advertising PDUs) pe trei canale primare (37, 38, 39). Central scanează aceste canale, primește datele și poate iniția conexiunea.

Pachetul advertising conține până la 31 de octeți: flags, TX power level, nume local, UUID-uri servicii, date producător. Suficient pentru citiri senzor fără conexiune — modul Connectionless (Broadcaster). Pentru date continue (ex. temperatura pe minut) se folosește conexiune cu connection interval până la 1000 ms.

Pe mobil, scanarea se lansează prin startScan() (Android) sau scanForPeripherals() (iOS). Filtrarea după UUID economisește energia — aplicația primește callback doar pentru dispozitivele de interes.

Exemplu de scanare BLE în Swift (iOS)

swift
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("Βρέθηκε συσκευή: \(name)")
        }
    }
}

După detectare, Central apelează connect() cu obiectul CBPeripheral. Parametrii conexiunii (interval, latency, supervision timeout) se negociază la nivel Link Layer — dezvoltatorul nu îi gestionează direct, dar poate influența prin requestConnectionPriority pe Android.

Bluetooth LE στην ανάπτυξη εφαρμογών για κινητά: Core Bluetooth και android.bluetooth

Ambele platforme oferă API-uri native BLE. Core Bluetooth (iOS) folosește abordarea delegată: managerul central inițiază operații, perifericul raportează rezultatele prin metode delegate. android.bluetooth (Android) e construit pe callback-uri și suportă operații GATT paralele.

Diferențe cheie între platforme:

  • iOS — suportă până la 7 conexiuni simultane; modul fundal BLE necesită UIBackgroundModes = bluetooth-central; după ieșirea din fundal, sistemul poate întârzia callback-urile minute
  • Android — fără limită fixă de conexiuni (limitare memorie); necesită permisiunile BLUETOOTH_SCAN și BLUETOOTH_CONNECT (Android 12+); foreground service pentru scanare fiabilă în fundal
  • Flutter — flutter_blue_plus abstractizează API-urile platformei într-o interfață Dart unificată: codul pentru scanare și GATT e identic pe ambele platforme

Conform testelor Bluetooth SIG (2024), timpul de conectare BLE smartphone-brățară fitness e în medie 150–300 ms pe Android și 100–250 ms pe iOS — diferența datorată politicilor de gestionare a modulului radio.

Exemplu de conectare BLE în Dart (Flutter)

dart
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;
      }
    }
  }
}

Dezvoltatorul Flutter primește o interfață API unificată; flutter_blue_plus traduce apelurile în android.bluetooth sau Core Bluetooth nativ. Aceasta reduce timpul de dezvoltare pentru BLE pe ambele platforme.

Συχνές Ερωτήσεις

Care e diferența dintre Bluetooth Classic și BLE?

Bluetooth Classic (BR/EDR) e pentru transmisie continuă în flux — convorbiri audio, muzică, transfer fișiere. BLE e optimizat pentru pachete scurte cu consum minim — senzori, etichete, trackere. Classic consumă 10–30 mA, BLE 5–15 mA în vârf.

Sunt compatibile Bluetooth Classic și BLE între ele?

La nivel fizic nu sunt compatibile — modulație și hartă canale diferite. Majoritatea cipurilor moderne sunt dual-mode și implementează ambele stive. Un smartphone dual-mode poate comunica simultan cu o cască Classic și un tracker BLE.

Ce e connection interval în BLE?

Connection interval e intervalul dintre două pachete de date într-o conexiune stabilită. Valoarea variază de la 7,5 ms la 4 secunde. Cu cât intervalul e mai mic, cu atât lățimea de bandă e mai mare și consumul mai ridicat. Pentru un senzor de temperatură pe minut se folosește 1000 ms.

Cum funcționează pairing-ul în BLE?

Pairing e schimbul de chei de criptare între Central și Peripheral. BLE suportă trei metode: Just Works (fără confirmare), Passkey Entry (PIN pe ecran) și OOB (NFC sau QR). După pairing, dispozitivele salvează cheile (bonding) și la reconectare nu cer reautentificare.

Ce profiluri BLE se folosesc în aplicațiile mobile?

Cele mai comune: Heart Rate Profile (0x180D) pentru pulsmetre, Blood Pressure Profile (0x1810) pentru tensiometre, Environmental Sensing (0x181A) pentru temperatură și umiditate, Battery Service (0x180F) pentru nivel încărcare, Device Information (0x180A) pentru model și serie.

Συμπεράσματα

  • Bluetooth — standard WPAN în banda 2,4 GHz, împărțit în Classic (BR/EDR) și Low Energy (BLE) de la versiunea 4.0
  • Bluetooth Classic oferă viteză până la 3 Mbit/s și e folosit pentru căști audio și transfer fișiere
  • BLE e optimizat pentru consum redus (5–15 mA) și folosit în IoT, brățări fitness și senzori
  • Profilul GATT organizează datele în ierarhia Service → Characteristic → Descriptor cu schimb prin ATT
  • Advertising permite perifericelor să transmită date fără conexiune pe trei canale primare
  • iOS (Core Bluetooth) și Android (android.bluetooth) oferă API-uri native cu abordări diferite pentru fundal și permisiuni
  • Flutter (flutter_blue_plus) unește API-urile platformelor într-o interfață Dart pentru dezvoltare cross-platformă

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης