Central — ano ito, papel sa BLE at kung paano nagsa-scan ng mga device

May-akda: IT Sectr Nai-publish: 2026-07-15 Oras ng pagbabasa: 8 min

Central — ay isang device sa arkitektura ng Bluetooth Low Energy na nagpapasimula ng pag-scan, nagtatatag ng koneksyon, at namamahala ng pagpapalitan ng data sa mga peripheral na device. Sa konteksto ng mobile development, ang Central ay isang smartphone o tablet sa iOS o Android na kumokonekta sa mga BLE sensor, fitness tracker, at matatalinong aksesorya. Ayon sa Bluetooth Core Specification 5.4 (2023), ang Central ay maaaring sumuporta ng hanggang 7 sabay-sabay na koneksyon sa iba't ibang Peripheral, bagaman ang aktwal na limitasyon ay depende sa manufacturer ng chip at bersyon ng OS. Ang Core Bluetooth sa iOS at android.bluetooth.le sa Android ay nagbibigay ng kumpletong API para sa pamamahala ng papel ng Central.

Mga pangunahing punto

  • Central — aktibong BLE device na nagsa-scan, kumokonekta, at namamahala ng pagpapalitan sa mga peripheral.
  • Ang pag-scan ay ginagawa sa pamamagitan ng mga advertising packet — maaaring i-filter ng Central ang mga device ayon sa Service UUID para makatipid ng enerhiya.
  • Isang Central ay maaaring sumuporta ng hanggang 7 koneksyon sa iba't ibang Peripheral (depende sa implementasyon).
  • Sa mobile development, ang Central ay isang smartphone na gumagamit ng Core Bluetooth (iOS) o android.bluetooth.le (Android).
  • Ang papel ng Central ay kumokonsumo ng mas maraming enerhiya kaysa Peripheral dahil sa patuloy na pag-scan at pagproseso ng data.

Ano ang Central sa BLE?

Central — ay isang GATT client sa arkitektura ng Bluetooth Low Energy na nagpapasimula ng lahat ng komunikasyon. Hindi tulad ng Peripheral na passive na naghihintay ng koneksyon at nag-a-advertise ng mga serbisyo nito, ang Central ay aktibong nagsa-scan ng ere, nakakakita ng mga advertising packet, at nagpapasimula ng koneksyon.

Ang asymmetric na modelong Central-Peripheral ay isang pangunahing katangian ng BLE. Ang Central ay namamahala ng lohika ng interaksyon: nagpapasya ito kung aling device ang kokonektahan, aling mga serbisyo ang susuriin, aling mga katangian ang babasahin at isusulat. Peripheral ay gumaganap bilang data server — nag-iimbak ng mga serbisyo at katangian, ngunit hindi nagpapasimula ng mga koneksyon.

Ayon sa Bluetooth Core Specification 5.4 (2023), ang isang device ay maaaring sabay na maging Central at Peripheral (dual role). Halimbawa, ang isang smartphone ay maaaring maging Central para sa isang fitness bracelet at Peripheral para sa ibang smartphone na naglilipat ng mga file. Gayunpaman, ang sabay na pagtatrabaho sa parehong papel ay nagpapataas ng konsumo ng kuryente at pagiging kumplikado ng pamamahala ng koneksyon.

Sa ecosystem ng mobile development, ang papel ng Central ay ang pinakakaraniwang sitwasyon. Ang application sa smartphone ay naghahanap ng mga BLE device (sensor, headphone, bracelet), kumokonekta sa kanila, at tumatanggap ng data. Ang developer ay gumagamit ng API ng operating system para sa pagtatrabaho sa Central: CBCentralManager sa iOS, BluetoothLeScanner at BluetoothGatt sa Android.

Proseso ng pag-scan ng mga device

Pag-scan — ay ang unang yugto ng trabaho ng Central. Ang device ay nakikinig sa mga BLE radio channel (37, 38, 39) upang makita ang mga advertising packet na pana-panahong ipinapadala ng Peripheral. Ang bawat advertising packet ay naglalaman ng pangalan ng device, listahan ng mga UUID ng serbisyo, at data ng user.

Ang Central ay maaaring gumana sa dalawang mode ng pag-scan: passive scanning (tanging pagtanggap ng mga advertising packet) at active scanning (pagpapadala ng scan request upang makakuha ng karagdagang data sa pamamagitan ng scan response). Ang passive scanning ay nakakatipid ng enerhiya ngunit nagbibigay ng mas kaunting impormasyon. Ang active scanning ay nagbibigay-daan upang makuha ang kumpletong data ng advertising packet, kabilang ang pangalan ng device at kumpletong listahan ng mga serbisyo.

Ang pagsasala ayon sa UUID — isang mahalagang optimisasyon. Ang Central ay maaaring mag-scan lamang ng mga device na may partikular na Service UUID, hindi pinapansin ang iba. Ito ay hindi lamang nakakatipid ng enerhiya, kundi pati na rin pinapasimple ang lohika ng application: ang delegate ay tumatanggap lamang ng mga kaugnay na device.

swift
import CoreBluetooth

class BLECentralManager: NSObject, CBCentralManagerDelegate {

    private var centralManager: CBCentralManager!

    override init() {
        super.init()
        centralManager = CBCentralManager(
            delegate: self,
            queue: nil
        )
    }

    func centralManagerDidUpdateState(_ central: CBCentralManager) {
        if central.state == .poweredOn {
            central.scanForPeripherals(
                withServices: nil,
                options: [
                    CBCentralManagerScanOptionAllowDuplicatesKey: false
                ]
            )
        }
    }
}

Pamamahala ng mga koneksyon

Pamamahala ng mga koneksyon — pangunahing responsibilidad ng Central. Pagkatapos makakita ng angkop na Peripheral, ang Central ay nagpapasimula ng koneksyon. Ang BLE koneksyon ay itinatag sa pamamagitan ng pamamaraan ng pagtatatag ng koneksyon, na kinabibilangan ng pagpapalitan ng mga parameter: connection interval, slave latency, at supervision timeout.

Ang connection interval ay tumutukoy kung gaano kadalas nagpapalitan ng data ang Central at Peripheral pagkatapos ng koneksyon. Ang interval ay maaaring mula 7.5 ms hanggang 4 na segundo. Kung mas maikli ang interval, mas mataas ang bandwidth, ngunit mas malaki ang konsumo ng kuryente. Slave latency ay nagpapahintulot sa Peripheral na laktawan ang ilang mga kaganapan ng koneksyon upang makatipid ng enerhiya. Supervision timeout — ang maximum na oras na walang tugon, pagkatapos nito ang koneksyon ay itinuturing na nawala.

Ang Central ay responsable para sa pagputol ng koneksyon pagkatapos ng pagtatapos ng pagpapalitan ng data. Ang mga BLE device ay karaniwang hindi nagpapanatili ng koneksyon nang permanente — ang Central ay kumokonekta, tumatanggap ng data, at pumuputol ng koneksyon. Ito ay isang karaniwang pattern para sa mga IoT sensor: ang Central ay nagsa-scan, nakakahanap ng temperature sensor, kumokonekta, nagbabasa ng halaga, at pumuputol ng koneksyon.

ParameterSaklawLayuninRekomendasyon
Connection Interval7.5 ms – 4 sDalas ng pagpapalitan ng data30–50 ms para sa streams, 1–4 s para sa madalang na data
Slave Latency0–499 kaganapanPaglaktaw ng mga kaganapan ng Peripheral4–10 para makatipid ng enerhiya ng sensor
Supervision Timeout100 ms – 32 sTimeout ng pagkawala ng koneksyon6–10 segundo para sa karamihan ng mga sitwasyon
MTU23–517 byteSukat ng ATT packetHumingi ng maximum kapag kumokonekta

Central sa iOS: Core Bluetooth

Core Bluetooth — framework ng Apple para sa pagtatrabaho sa BLE sa iOS at macOS. Ang klase na CBCentralManager ay nagbibigay ng kumpletong API para sa pagpapatupad ng papel ng Central: pag-scan, pagkonekta, pamamahala ng mga koneksyon. Ang pagtatrabaho sa Central sa iOS ay batay sa modelo ng delegate: ang CBCentralManagerDelegate ay tumatanggap ng mga kaganapan ng pagbabago ng estado, pagtuklas ng mga device, at mga resulta ng koneksyon.

Mga pangunahing hakbang ng Central sa iOS: pagsisimula ng CBCentralManager, pagsuri ng katayuan ng Bluetooth, pagsisimula ng pag-scan, pagproseso ng mga natuklasang device sa pamamagitan ng delegate, pagkonekta sa napiling Peripheral, pagtuklas ng mga serbisyo at katangian, pagpapalitan ng data.

swift
// Kumonekta sa natuklasang Peripheral
func centralManager(
    _ central: CBCentralManager,
    didDiscover peripheral: CBPeripheral,
    advertisementData: [String: Any],
    rssi RSSI: NSNumber
) {
    // Panatilihin ang referensya sa peripheral at kumonekta
    discoveredPeripheral = peripheral
    central.connect(peripheral, options: nil)
}

// Matagumpay na koneksyon
func centralManager(
    _ central: CBCentralManager,
    didConnect peripheral: CBPeripheral
) {
    peripheral.delegate = self
    peripheral.discoverServices(nil)
}

Ang iOS ay naglilimita sa background na trabaho ng BLE: sa background mode, ang application ay maaari lamang mag-scan gamit ang mga tiyak na key sa Info.plist, at ang mga konektadong device ay maaaring mag-notify sa Central tungkol sa mga pagbabago ng data. Para sa mga kritikal na application (mga medical device) gamitin ang Background Modes na may key na bluetooth-central.

Central sa Android: BluetoothLeScanner

Android ay nagbibigay ng BluetoothLeScanner API para sa pag-scan ng mga BLE device at BluetoothGatt para sa pamamahala ng mga koneksyon. Mula sa Android 5.0 (API 21), pinalitan ng BluetoothLeScanner ang lumang startLeScan. Ang API ay nangangailangan ng mga pahintulot na BLUETOOTH, BLUETOOTH_ADMIN, at ACCESS_FINE_LOCATION (o ACCESS_BACKGROUND_LOCATION para sa Android 10+).

java
import android.bluetooth.le.*;
import android.bluetooth.*;

private BluetoothLeScanner scanner;
private BluetoothGatt bluetoothGatt;

// I-configure ang pag-scan
ScanSettings settings = new ScanSettings.Builder()
    .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
    .build();

// Simulan ang pag-scan
scanner.startScan(null, settings, new ScanCallback() {
    @Override
    public void onScanResult(
            int callbackType,
            ScanResult result
    ) {
        BluetoothDevice device = result.getDevice();
        // Kumonekta sa device
        bluetoothGatt = device.connectGatt(
            context, false, gattCallback
        );
    }
});

Sa Android, mahalagang isaalang-alang ang mga limitasyon sa pag-scan: mula sa Android 7 (API 24), ang pag-scan ay hindi maaaring simulan nang higit sa 5 beses sa loob ng 30 segundo sa mga application na hindi gumagamit ng Location. Ang Android 12+ ay nangangailangan ng mga pahintulot na BLUETOOTH_SCAN, BLUETOOTH_CONNECT, at ADVERTISE, pati na rin ang runtime na paghiling ng mga pahintulot na ito.

Pagkonsumo ng kuryente ng Central

Pagkonsumo ng kuryente ng Central ay mas mataas kaysa sa Peripheral dahil sa pangangailangan na patuloy na mag-scan ng mga radio channel. Ang Central ay tumatanggap ng data sa pamamagitan ng mga BLE packet, nagpoproseso ng mga ito, namamahala ng mga koneksyon, at madalas na nagsasagawa ng mga kalkulasyon sa processor ng application. Ayon sa Bluetooth SIG, ang pag-scan ay kumokonsumo ng 30 mA hanggang 100 mA depende sa mode.

Mayroong ilang mga estratehiya para makatipid ng enerhiya para sa Central. Interval scanning — ang pinakamabisang paraan: ang Central ay nagsa-scan sa maikling window (scan window) na may mahabang pahinga (scan interval). Halimbawa, sa scan window na 30 ms at scan interval na 1000 ms, ang konsumo ng kuryente ay nababawasan ng 97% kumpara sa tuloy-tuloy na pag-scan.

Dagdag na optimisasyon — pagsasala ayon sa UUID. Ang Central ay mas mabilis na nagpoproseso lamang ng mga kaugnay na advertising packet, hindi pinapansin ang iba. Ito ay nagbabawas ng load sa processor at nagpapahaba ng buhay ng baterya ng device. Inirerekomenda din na ihinto ang pag-scan kaagad pagkatapos makita ang nais na device at huwag panatilihin ang koneksyon nang mas matagal kaysa kinakailangan.

Mga madalas itanong

Maaari bang maging parehong Central at Peripheral ang smartphone?

Oo, sinusuportahan ng BLE ang dual role: ang isang device ay maaaring sabay na maging Central para sa ilang device at Peripheral para sa iba. Halimbawa, ang isang smartphone ay nagbabasa ng data mula sa isang sensor (bilang Central) at sabay na nag-a-advertise ng sarili nitong serbisyo (bilang Peripheral) upang maglipat ng data sa ibang device.

Ilang device ang maaaring sabay na serbisyuhan ng Central?

Ang BLE specification ay tumutukoy ng limitasyon na 7 koneksyon para sa isang Central. Sa praktika, ang limitasyon ay depende sa manufacturer ng chip: ang Nordic nRF52840 chips ay sumusuporta ng hanggang 20 koneksyon, at ang ilang murang Bluetooth adapter — hindi hihigit sa 3–4.

Bakit hindi nakikita ng Central ang aking BLE sensor?

Ang mga dahilan ay maaaring magkakaiba: ang sensor ay hindi nag-a-advertise (wala sa advertising mode), ang filter ng UUID ay masyadong mahigpit, ang Bluetooth sa smartphone ay naka-off, ang mga kinakailangang pahintulot ay wala (Location sa Android), o ang sensor ay wala sa saklaw (inirerekomenda hanggang 10 metro sa loob ng bahay).

Kailangan bang panatilihin ang koneksyon sa BLE device nang permanente?

Hindi kinakailangan. Para sa maraming sitwasyon, ang pattern na connect-and-read ay ginagamit: ang Central ay nagsa-scan, kumokonekta, nagbabasa ng kinakailangang data, at pumuputol ng koneksyon. Ang permanenteng koneksyon ay kailangan lamang para sa streaming data (pulso, ECG) o real-time na kontrol ng device.

Paano bawasan ang konsumo ng kuryente ng Central habang nagsa-scan?

Gumamit ng interval scanning na may ratio ng scan window 30–50 ms at scan interval 500–1000 ms. I-filter ang mga device ayon sa UUID upang iproseso lamang ang mga kaugnay na advertising packet. Ihinto ang pag-scan kaagad pagkatapos makita ang nais na Peripheral.

Buod

  • Central — aktibong kalahok sa BLE koneksyon na nagpapasimula ng pag-scan, pagkonekta, at pamamahala ng pagpapalitan ng data.
  • Ang proseso ng pag-scan ay kinabibilangan ng pagtanggap ng mga advertising packet sa mga channel 37, 38, 39 na may kakayahang mag-filter ayon sa Service UUID.
  • Pagkatapos makita ang Peripheral, ang Central ay nagtatatag ng koneksyon na may mga nako-configure na parameter — connection interval, slave latency, supervision timeout.
  • Sa mobile development, ang Central ay ipinatutupad sa pamamagitan ng CBCentralManager (iOS) o BluetoothLeScanner + BluetoothGatt (Android).
  • Isang Central ay maaaring sabay na mamahala ng hanggang 7 koneksyon sa karaniwang configuration ng Bluetooth.
  • Ang konsumo ng kuryente ng Central ay maaaring i-optimize sa pamamagitan ng interval scanning at UUID filtering upang pahabain ang buhay ng baterya.
  • Ang wastong pamamahala ng lifecycle ng koneksyon — mula sa pagtuklas hanggang sa pagputol — ay tumutukoy sa kahusayan ng BLE application.

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din