Bluetooth和BLE:是什么,Classic与Low Energy的区别以及如何工作

作者: IT Sectr 发布日期: 2026-03-24 阅读时间: 12 分钟

Bluetooth dan Bluetooth Low Energy adalah standar komunikasi nirkabel untuk mentransmisikan data dalam jarak pendek. Bluetooth Classic (BR/EDR) menyediakan saluran streaming stabil untuk audio dan file, sementara BLE dioptimalkan untuk pekerjaan hemat energi dengan sensor dan periferal. Menurut data Bluetooth SIG, 2025, setiap tahun lebih dari 5 miliar perangkat dengan dukungan BLE dikirimkan — standar ini menjadi dasar IoT, elektronik yang dapat dikenakan, dan aksesori mobile.

主要观点

  • Bluetooth Classic — standar BR/EDR untuk transmisi audio dan data secara berkelanjutan dengan kecepatan hingga 3 Mbit/s dan konsumsi daya 10–30 mA
  • Bluetooth Low Energy — protokol untuk transmisi intermiten data bervolume kecil dengan arus puncak 5–15 mA dan masa pakai baterai hingga beberapa tahun
  • GATT协议 — model klien-server terpadu yang menentukan bagaimana aplikasi mobile membaca karakteristik perangkat periferal
  • Advertising — mekanisme di mana perangkat BLE secara periodik mengirim paket beacon untuk dideteksi oleh perangkat pusat (smartphone)
  • iOS和Android — platform menggunakan API berbeda (Core Bluetooth dan android.bluetooth), tetapi keduanya mendukung GATT — kode dapat dipindahkan dengan perubahan minimal

Apa itu Bluetooth dan BLE?

Bluetooth — adalah standar jaringan pribadi nirkabel (WPAN) yang beroperasi di pita ISM 2,4 GHz dan dirancang untuk komunikasi antar perangkat dalam jarak hingga 100 meter. Spesifikasi IEEE 802.15.1 mendefinisikan lapisan fisik dan MAC, dan tumpukan Bluetooth SIG mendefinisikan profil tingkat atas untuk skenario tertentu: headset audio (HSP), transfer file (OPP), input keyboard (HID).

Standar ini terbagi menjadi dua cabang sejak versi 4.0 (2010): Bluetooth Classic (BR/EDR) dan Bluetooth Low Energy (BLE, sebelumnya Bluetooth Smart). Classic ditujukan untuk streaming berkelanjutan — panggilan audio, musik, file. BLE diciptakan untuk aplikasi di mana data dikirim dalam paket pendek dengan jeda puluhan detik atau menit — alat pengukur denyut nadi, tag, sensor suhu.

Menurut Bluetooth SIG (2025), 99% smartphone baru mendukung kedua versi, dan ekosistem BLE mencakup lebih dari 15 jenis profil dari Blood Pressure hingga Environmental Sensing.

Bluetooth Classic vs BLE: karakteristik perbandingan

Pemilihan antara Classic dan BLE tergantung pada skenario: untuk streaming audio hanya Classic yang cocok, untuk pembacaan sensor sekali per jam — hanya BLE. BR/EDR menggunakan 79 saluran dengan langkah 1 MHz dan modulasi frekuensi adaptif (AFH), memberikan ketahanan terhadap interferensi Wi-Fi.

ParameterBluetooth Classic (BR/EDR)Bluetooth Low Energy (BLE)
Kecepatan transmisi1–3 Mbit/s (EDR)125 kbit/s – 2 Mbit/s (LE 2M PHY)
Arus puncak10–30 mA5–15 mA
Waktu siaran~100 ms~3 ms
TopologiPiconet (1 master, hingga 7 slave)Broadcaster / Observer / Peripheral / Central
ProfilHFP, A2DP, HSP, SPP, OPPBerbasis GATT (HRS, BLS, CTS dll.)
Perangkat tipikalHeadset, speaker, perangkat hands-free mobilGelang fitness, tag, pengukur denyut nadi, sensor IoT
KompatibilitasTidak kompatibel dengan BLE pada tingkat fisikChip dual-mode mendukung kedua tumpukan

BLE 5.x menambahkan LE Coded PHY untuk meningkatkan jangkauan hingga 1 km (di area terbuka) dan LE Audio dengan codec LC3 — versi baru ini secara bertahap mengaburkan batas antara Classic dan BLE dalam skenario audio.

Arsitektur BLE: Controller, Host dan Application

Tumpukan BLE dibagi menjadi tiga lapisan: Controller (fisik dan tautan), Host (L2CAP, ATT, GATT, Security Manager) dan Application (implementasi profil dalam aplikasi). Pemisahan ini memungkinkan produsen chip mengimplementasikan Controller di firmware, dan pengembang aplikasi mobile hanya bekerja dengan abstraksi GATT.

Link Layer (LL) mengatur waktu siaran: perangkat beralih di antara status Standby, Advertising, Scanning, Initiating dan Connection. Dalam status Connected, Central dan Peripheral menyepakati connection interval — frekuensi pertukaran paket data. Interval tipikal 7,5–1000 ms; semakin sering pertukaran, semakin tinggi bandwidth dan konsumsi daya.

Security Manager (SM) mengimplementasikan enkripsi AES-128 dengan pertukaran kunci melalui protokol pairing. Ada tiga mode: Just Works (tanpa memasukkan PIN), Passkey Entry (kode 6 digit di layar) dan OOB (NFC atau QR). Untuk perangkat yang dapat dikenakan biasanya digunakan Just Works, untuk perangkat medis — OOB dengan verifikasi tambahan.

Menurut Bluetooth Core Specification 5.4 (2023), waktu pembuatan koneksi aman dalam mode LE Secure Connections tidak melebihi 300 ms pada connection interval 30 ms.

Profil GATT: layanan, karakteristik dan deskriptor

Protokol ATT (Attribute Protocol) — model transportasi dasar di mana server (perangkat periferal) menyimpan atribut dan klien (smartphone) membacanya atau menulisnya. GATT (Generic Attribute Profile) membangun hierarki di atas ATT: Service → Characteristic → Descriptor.

Setiap layanan adalah grup logis karakteristik yang menggambarkan satu fungsi perangkat: Heart Rate Service (UUID 0x180D) berisi karakteristik Heart Rate Measurement (UUID 0x2A37) dengan Descriptor Client Characteristic Configuration (0x2902) yang mengelola notifikasi. Pengembang aplikasi mobile mendapatkan daftar layanan melalui discoverServices(), kemudian menemukan karakteristik yang diinginkan berdasarkan UUID dan berlangganan notifikasi.

BLE menggunakan UUID 16-bit untuk layanan standar Bluetooth SIG dan UUID 128-bit untuk layanan khusus produsen. Misalnya, casing tracker dapat mendefinisikan layanan A000-… dengan karakteristik untuk mentransmisikan tingkat pengisian baterai.

Contoh bekerja dengan GATT di 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 次/分钟")
    }
}

Dalam contoh, aplikasi menemukan layanan Heart Rate melalui UUID standar Bluetooth SIG, mendapatkan karakteristik pengukuran denyut nadi dan berlangganan notifikasinya — setiap kali denyut nadi berubah, perangkat periferal mengirim data tanpa permintaan eksplisit dari Central.

Advertising, pemindaian dan pembuatan koneksi

Advertising — mekanisme kunci BLE di mana perangkat Peripheral secara periodik mengirim paket siaran (advertising PDUs) di tiga saluran utama (37, 38, 39). Perangkat pusat memindai saluran ini, menerima data advertising dan dapat memulai koneksi.

Paket advertising berisi hingga 31 byte muatan berguna: flag, TX power level, nama lokal, UUID layanan, data khusus produsen. Ini cukup untuk mentransmisikan pembacaan sensor tanpa membuat koneksi — mode Connectionless (tipe Broadcaster). Untuk transmisi data berkelanjutan (misalnya suhu setiap menit) digunakan koneksi dengan connection interval hingga 1000 ms.

Di platform mobile, pemindaian dimulai melalui startScan() (Android) atau scanForPeripherals() (iOS). Pemfilteran berdasarkan UUID layanan menghemat energi — aplikasi hanya menerima callback untuk tag atau sensor yang menarik.

Contoh memindai perangkat BLE di 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)")
        }
    }
}

Setelah mendeteksi perangkat, Central memanggil connect() dengan meneruskan objek CBPeripheral. Parameter koneksi (interval, latency, supervision timeout) dinegosiasikan di tingkat Link Layer — pengembang tidak mengelolanya secara langsung, tetapi dapat memengaruhinya melalui requestConnectionPriority di Android.

Bluetooth LE dalam pengembangan mobile: Core Bluetooth dan android.bluetooth

Kedua platform mobile menyediakan API native untuk bekerja dengan BLE. Core Bluetooth (iOS) menggunakan pendekatan delegasi: manajer pusat memulai operasi, objek periferal melaporkan hasil melalui metode delegasi. android.bluetooth (Android) dibangun di atas antarmuka callback dan mendukung operasi GATT paralel dengan beberapa perangkat.

Perbedaan utama antara platform:

  • iOS — mendukung hingga 7 koneksi simultan; mode latar belakang BLE memerlukan UIBackgroundModes = bluetooth-central; setelah keluar dari latar belakang, sistem dapat menunda callback selama beberapa menit
  • Android — tidak ada batas koneksi tetap (batasan memori); memerlukan izin BLUETOOTH_SCAN dan BLUETOOTH_CONNECT (Android 12+); foreground service diperlukan untuk pemindaian latar belakang yang andal
  • Flutter — paket flutter_blue_plus mengabstraksi API platform dengan antarmuka Dart terpadu: kode untuk pemindaian dan operasi GATT identik di kedua platform

Menurut tes Bluetooth SIG (2024), waktu koneksi BLE smartphone dengan gelang fitness rata-rata 150–300 ms di Android dan 100–250 ms di iOS — perbedaan disebabkan oleh kebijakan manajemen modul radio.

Contoh koneksi BLE di 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;
      }
    }
  }
}

Pengembang Flutter mendapatkan antarmuka API terpadu, di mana flutter_blue_plus menerjemahkan panggilan ke android.bluetooth atau Core Bluetooth native. Pendekatan ini mengurangi waktu pengembangan aplikasi untuk bekerja dengan periferal BLE di kedua platform.

常见问题

Bluetooth Classic和BLE有什么区别?

Bluetooth Classic (BR/EDR) ditujukan untuk transmisi streaming berkelanjutan — panggilan audio, musik, transfer file. BLE dioptimalkan untuk paket data pendek dengan konsumsi daya minimal — sensor, tag, pelacak fitness. Classic mengonsumsi 10–30 mA, BLE 5–15 mA pada puncaknya.

Bluetooth Classic和BLE之间兼容吗?

Pada tingkat fisik mereka tidak kompatibel — modulasi dan peta saluran berbeda. Namun, sebagian besar chip modern bersifat dual-mode dan mengimplementasikan kedua tumpukan. Smartphone dengan chip dual-mode dapat berkomunikasi secara bersamaan dengan headset Classic dan tracker BLE.

BLE中的connection interval是什么?

Connection interval adalah interval waktu antara dua paket data dalam koneksi yang telah dibuat. Nilainya bervariasi dari 7,5 ms hingga 4 detik. Semakin kecil interval, semakin tinggi bandwidth dan konsumsi daya. Untuk sensor suhu sekali per menit digunakan interval 1000 ms.

BLE中的配对是如何工作的?

Pairing adalah proses pertukaran kunci enkripsi antara Central dan Peripheral. BLE mendukung tiga metode: Just Works (tanpa konfirmasi), Passkey Entry (memasukkan PIN di layar) dan OOB (pertukaran melalui NFC atau QR). Setelah pairing, perangkat menyimpan kunci (bonding) dan saat menghubungkan kembali tidak memerlukan autentikasi ulang.

移动应用中使用哪些BLE协议?

Yang paling umum: Heart Rate Profile (0x180D) untuk pengukur denyut nadi, Blood Pressure Profile (0x1810) untuk tensimeter, Environmental Sensing (0x181A) untuk sensor suhu dan kelembaban, Battery Service (0x180F) untuk tingkat pengisian, Device Information (0x180A) untuk model dan nomor seri.

总结

  • Bluetooth — standar WPAN di pita 2,4 GHz, terbagi menjadi Classic (BR/EDR) dan Low Energy (BLE) sejak versi 4.0
  • Bluetooth Classic menyediakan kecepatan hingga 3 Mbit/s dan digunakan untuk headset audio dan transfer file
  • BLE dioptimalkan untuk konsumsi daya rendah (5–15 mA) dan digunakan di IoT, gelang fitness dan sensor
  • Profil GATT mengatur data dalam hierarki Service → Characteristic → Descriptor dengan pertukaran melalui protokol ATT
  • Advertising memungkinkan perangkat periferal mentransmisikan data tanpa membuat koneksi di tiga saluran utama
  • iOS (Core Bluetooth) dan Android (android.bluetooth) menyediakan API native dengan pendekatan berbeda untuk pekerjaan latar belakang dan izin
  • Flutter (flutter_blue_plus) menyatukan API platform dalam antarmuka Dart terpadu untuk pengembangan lintas platform

我们将开发一款交钥匙移动应用程序

IT Sectr自2017年以来为初创企业和企业打造iOS和Android应用程序。我们将为您提供咨询并提出最佳解决方案。

讨论项目

另请阅读