Central — บทบาทใน BLE และวิธีการสแกนอุปกรณ์

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-07-15 เวลาอ่าน: 8 นาที

Central คืออุปกรณ์ในสถาปัตยกรรม Bluetooth Low Energy ที่เริ่มต้นการสแกน สร้างการเชื่อมต่อ และจัดการการแลกเปลี่ยนข้อมูลกับอุปกรณ์รอบข้าง ในบริบทของการพัฒนามือถือ Central คือสมาร์ทโฟนหรือแท็บเล็ตที่ใช้ iOS หรือ Android ซึ่งเชื่อมต่อกับเซ็นเซอร์ BLE เครื่องติดตามฟิตเนส และอุปกรณ์เสริมอัจฉริยะ ตาม Bluetooth Core Specification 5.4 (2023) Central สามารถรองรับการเชื่อมต่อพร้อมกันได้สูงสุด 7 การเชื่อมต่อกับ Peripheral ที่แตกต่างกัน แม้ว่าข้อจำกัดจริงจะขึ้นอยู่กับผู้ผลิตชิปและเวอร์ชันของระบบปฏิบัติการ Core Bluetooth บน iOS และ android.bluetooth.le บน Android ให้ API ที่สมบูรณ์สำหรับการจัดการบทบาท Central

ประเด็นสำคัญ

  • Central คืออุปกรณ์ BLE ที่ทำงานอยู่ซึ่งสแกน เชื่อมต่อ และจัดการการแลกเปลี่ยนกับอุปกรณ์รอบข้าง
  • การสแกนดำเนินการผ่าน แพ็กเก็ตโฆษณา — Central สามารถกรองอุปกรณ์ตาม Service UUID เพื่อประหยัดพลังงาน
  • Central หนึ่งตัวสามารถรองรับการเชื่อมต่อพร้อมกันสูงสุด 7 การเชื่อมต่อ กับ Peripheral ที่แตกต่างกัน (ขึ้นอยู่กับการนำไปใช้)
  • ในการพัฒนามือถือ Central คือ สมาร์ทโฟน ที่ใช้ Core Bluetooth (iOS) หรือ android.bluetooth.le (Android)
  • บทบาท Central ใช้พลังงาน มากกว่า Peripheral เนื่องจากการสแกนอย่างต่อเนื่องและการประมวลผลข้อมูล

Central ใน BLE คืออะไร?

Central คือไคลเอนต์ GATT ในสถาปัตยกรรม Bluetooth Low Energy ที่เริ่มต้นการสื่อสารทั้งหมด ไม่เหมือน Peripheral ที่รอการเชื่อมต่ออย่าง passive และโฆษณาบริการของตน Central จะสแกนคลื่นอากาศอย่าง active ค้นพบแพ็กเก็ตโฆษณาและเริ่มต้นการเชื่อมต่อ

โมเดลแบบไม่สมมาตร Central-Peripheral เป็นคุณลักษณะพื้นฐานของ BLE Central จัดการตรรกะการโต้ตอบ: ตัดสินใจว่าจะเชื่อมต่อกับอุปกรณ์ใด สำรวจบริการใด และอ่านเขียนคุณลักษณะใด Peripheral ทำหน้าที่เป็นเซิร์ฟเวอร์ข้อมูล — จัดเก็บบริการและคุณลักษณะแต่ไม่เริ่มต้นการเชื่อมต่อ

ตาม Bluetooth Core Specification 5.4 (2023) อุปกรณ์สามารถเป็นทั้ง Central และ Peripheral พร้อมกัน (บทบาทคู่) ตัวอย่างเช่น สมาร์ทโฟนสามารถเป็น Central สำหรับสายรัดฟิตเนสและเป็น Peripheral สำหรับสมาร์ทโฟนอีกเครื่องที่ถ่ายโอนไฟล์ อย่างไรก็ตาม การทำงานพร้อมกันในทั้งสองบทบาทจะเพิ่มการใช้พลังงานและความซับซ้อนในการจัดการการเชื่อมต่อ

ในระบบนิเวศการพัฒนามือถือ บทบาท Central เป็นสถานการณ์ที่พบบ่อยที่สุด แอพบนสมาร์ทโฟนค้นหา อุปกรณ์ BLE (เซ็นเซอร์ หูฟัง สายรัด) เชื่อมต่อและรับข้อมูล นักพัฒนาใช้ API ของระบบปฏิบัติการเพื่อทำงานกับ Central: CBCentralManager บน iOS, BluetoothLeScanner และ BluetoothGatt บน Android

กระบวนการสแกนอุปกรณ์

การสแกน คือขั้นตอนแรกของการทำงานของ Central อุปกรณ์ฟังบนช่องสัญญาณวิทยุ BLE (37, 38, 39) เพื่อตรวจจับแพ็กเก็ตโฆษณาที่ Peripheral ส่งเป็นระยะ แพ็กเก็ตโฆษณาแต่ละรายการประกอบด้วยชื่ออุปกรณ์ รายการ Service UUID และข้อมูลที่กำหนดเอง

Central สามารถทำงานในโหมดสแกนสองโหมด: การสแกนแบบ passive (รับเฉพาะแพ็กเก็ตโฆษณา) และการสแกนแบบ active (ส่งคำขอสแกนเพื่อรับข้อมูลเพิ่มเติมผ่านการตอบสนองการสแกน) การสแกนแบบ passive ประหยัดพลังงานแต่ให้ข้อมูลน้อยกว่า การสแกนแบบ active ช่วยให้ได้รับข้อมูลที่สมบูรณ์ของแพ็กเก็ตโฆษณา รวมถึงชื่ออุปกรณ์และรายการบริการที่สมบูรณ์

การกรองตาม UUID เป็นการปรับให้เหมาะสมที่สำคัญ Central สามารถสแกนเฉพาะอุปกรณ์ที่มี Service UUID เฉพาะ โดยไม่สนใจส่วนที่เหลือ ซึ่งไม่เพียงประหยัดพลังงาน แต่ยังทำให้ตรรกะของแอปพลิเคชันง่ายขึ้น: ตัวแทนรับเฉพาะอุปกรณ์ที่เกี่ยวข้อง

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
                ]
            )
        }
    }
}

การจัดการการเชื่อมต่อ

การจัดการการเชื่อมต่อ คือความรับผิดชอบหลักของ Central หลังจากค้นพบ Peripheral ที่เหมาะสม Central จะเริ่มต้นการเชื่อมต่อ การเชื่อมต่อ BLE ถูกสร้างขึ้นผ่านกระบวนการสร้างการเชื่อมต่อซึ่งรวมถึงการแลกเปลี่ยนพารามิเตอร์: ช่วงเวลาการเชื่อมต่อ ระยะหน่วง slave และ timeout การดูแล

ช่วงเวลาการเชื่อมต่อกำหนดว่า Central และ Peripheral แลกเปลี่ยนข้อมูลบ่อยเพียงใดหลังการเชื่อมต่อ ช่วงเวลาสามารถอยู่ระหว่าง 7.5 ms ถึง 4 วินาที ยิ่งช่วงเวลาสั้นลง ปริมาณงานยิ่งสูงขึ้น แต่การใช้พลังงานก็สูงขึ้นเช่นกัน ระยะหน่วง slave ช่วยให้ Peripheral ข้ามเหตุการณ์การเชื่อมต่อหลายรายการเพื่อประหยัดพลังงาน Timeout การดูแลคือระยะเวลาสูงสุดที่ไม่มีการตอบสนอง หลังจากนั้นจะถือว่าการเชื่อมต่อขาดหาย

Central รับผิดชอบในการ สิ้นสุดการเชื่อมต่อ หลังจากเสร็จสิ้นการแลกเปลี่ยนข้อมูล อุปกรณ์ BLE มักจะไม่คงการเชื่อมต่ออย่างถาวร — Central เชื่อมต่อ รับข้อมูล และตัดการเชื่อมต่อ ซึ่งเป็นรูปแบบมาตรฐานสำหรับเซ็นเซอร์ IoT: Central สแกน ค้นหาเซ็นเซอร์อุณหภูมิ เชื่อมต่อ อ่านค่า และตัดการเชื่อมต่อ

พารามิเตอร์ช่วงวัตถุประสงค์คำแนะนำ
ช่วงเวลาการเชื่อมต่อ7.5 ms – 4 sความถี่ในการแลกเปลี่ยนข้อมูล30–50 ms สำหรับสตรีมมิ่ง, 1–4 s สำหรับข้อมูลที่ไม่บ่อย
ระยะหน่วง slave0–499 เหตุการณ์การข้ามเหตุการณ์ Peripheral4–10 เพื่อประหยัดพลังงานเซ็นเซอร์
Timeout การดูแล100 ms – 32 sTimeout การสูญเสียการเชื่อมต่อ6–10 วินาทีสำหรับสถานการณ์ส่วนใหญ่
MTU23–517 ไบต์ขนาดแพ็กเก็ต ATTขอค่าสูงสุดเมื่อเชื่อมต่อ

Central บน iOS: Core Bluetooth

Core Bluetooth คือเฟรมเวิร์กของ Apple สำหรับทำงานกับ BLE บน iOS และ macOS คลาส CBCentralManager ให้ API ที่สมบูรณ์สำหรับการนำเสนอบทบาท Central: การสแกน การเชื่อมต่อ การจัดการการเชื่อมต่อ การทำงานกับ Central บน iOS ขึ้นอยู่กับโมเดลตัวแทน: CBCentralManagerDelegate รับเหตุการณ์การเปลี่ยนแปลงสถานะ การค้นพบอุปกรณ์ และผลการเชื่อมต่อ

ขั้นตอนหลักสำหรับ Central บน iOS: เริ่มต้น CBCentralManager ตรวจสอบสถานะ Bluetooth เริ่มการสแกน จัดการอุปกรณ์ที่ค้นพบผ่านตัวแทน เชื่อมต่อกับ Peripheral ที่เลือก ค้นพบบริการและคุณลักษณะ แลกเปลี่ยนข้อมูล

swift
// เชื่อมต่อกับ Peripheral ที่ค้นพบ
func centralManager(
    _ central: CBCentralManager,
    didDiscover peripheral: CBPeripheral,
    advertisementData: [String: Any],
    rssi RSSI: NSNumber
) {
    // เก็บการอ้างอิงถึง peripheral และเชื่อมต่อ
    discoveredPeripheral = peripheral
    central.connect(peripheral, options: nil)
}

// การเชื่อมต่อสำเร็จ
func centralManager(
    _ central: CBCentralManager,
    didConnect peripheral: CBPeripheral
) {
    peripheral.delegate = self
    peripheral.discoverServices(nil)
}

iOS จำกัดการทำงาน BLE พื้นหลัง: ในพื้นหลัง แอปสามารถสแกนได้เฉพาะกับคีย์เฉพาะใน Info.plist และอุปกรณ์ที่เชื่อมต่อสามารถแจ้ง Central เกี่ยวกับการเปลี่ยนแปลงข้อมูล สำหรับแอปพลิเคชันที่สำคัญ (อุปกรณ์ทางการแพทย์) ให้ใช้ โหมดพื้นหลัง ด้วยคีย์ bluetooth-central

Central บน Android: BluetoothLeScanner

Android ให้ API BluetoothLeScanner สำหรับสแกนอุปกรณ์ BLE และ BluetoothGatt สำหรับจัดการการเชื่อมต่อ ตั้งแต่ Android 5.0 (API 21) เป็นต้นไป BluetoothLeScanner ได้แทนที่ startLeScan ที่เลิกใช้งานแล้ว API ต้องการสิทธิ์ BLUETOOTH, BLUETOOTH_ADMIN และ ACCESS_FINE_LOCATION (หรือ ACCESS_BACKGROUND_LOCATION สำหรับ Android 10+)

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

private BluetoothLeScanner scanner;
private BluetoothGatt bluetoothGatt;

// กำหนดค่าการสแกน
ScanSettings settings = new ScanSettings.Builder()
    .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
    .build();

// เริ่มการสแกน
scanner.startScan(null, settings, new ScanCallback() {
    @Override
    public void onScanResult(
            int callbackType,
            ScanResult result
    ) {
        BluetoothDevice device = result.getDevice();
        // เชื่อมต่อกับอุปกรณ์
        bluetoothGatt = device.connectGatt(
            context, false, gattCallback
        );
    }
});

บน Android สิ่งสำคัญคือต้องพิจารณา ข้อจำกัดการสแกน: ตั้งแต่ Android 7 (API 24) เป็นต้นไป การสแกนไม่สามารถเริ่มได้มากกว่า 5 ครั้งใน 30 วินาทีในแอปที่ไม่ได้ใช้ตำแหน่ง Android 12+ ต้องการสิทธิ์ BLUETOOTH_SCAN, BLUETOOTH_CONNECT และ ADVERTISE รวมถึงการขอสิทธิ์เหล่านี้ขณะรันไทม์

การใช้พลังงานของ Central

การใช้พลังงานของ Central สูงกว่า Peripheral เนื่องจากต้องสแกนช่องสัญญาณวิทยุอย่างต่อเนื่อง Central รับแพ็กเก็ต BLE ประมวลผล จัดการการเชื่อมต่อ และมักคำนวณบนโปรเซสเซอร์ของแอปพลิเคชัน ตาม Bluetooth SIG การสแกนใช้พลังงานระหว่าง 30 mA ถึง 100 mA ขึ้นอยู่กับโหมด

มีกลยุทธ์การประหยัดพลังงานหลายอย่างสำหรับ Central การสแกนเป็นช่วง เป็นวิธีที่มีประสิทธิภาพที่สุด: Central สแกนในหน้าต่างสั้น (หน้าต่างสแกน) โดยพักนาน (ช่วงเวลาสแกน) ตัวอย่างเช่น ด้วยหน้าต่างสแกน 30 ms และช่วงเวลาสแกน 1000 ms การใช้พลังงานลดลง 97% เมื่อเทียบกับการสแกนต่อเนื่อง

การปรับให้เหมาะสมเพิ่มเติมคือ การกรองตาม UUID Central ประมวลผลเฉพาะแพ็กเก็ตโฆษณาที่เกี่ยวข้องได้เร็วขึ้น โดยไม่สนใจส่วนที่เหลือ ซึ่งช่วยลดภาระ CPU และเพิ่มอายุการใช้งานแบตเตอรี่ของอุปกรณ์ นอกจากนี้ยังแนะนำให้หยุดสแกนทันทีหลังจากพบอุปกรณ์ที่ต้องการ และไม่คงการเชื่อมต่อนานเกินความจำเป็น

คำถามที่พบบ่อย

สมาร์ทโฟนสามารถเป็นทั้ง Central และ Peripheral พร้อมกันได้หรือไม่?

ได้ BLE รองรับ บทบาทคู่: อุปกรณ์สามารถเป็น Central สำหรับบางอุปกรณ์และ Peripheral สำหรับอุปกรณ์อื่นพร้อมกัน ตัวอย่างเช่น สมาร์ทโฟนอ่านข้อมูลจากเซ็นเซอร์ (ในฐานะ Central) และในขณะเดียวกันก็โฆษณาบริการของตนเอง (ในฐานะ Peripheral) เพื่อส่งข้อมูลไปยังอุปกรณ์อื่น

Central สามารถให้บริการอุปกรณ์ได้พร้อมกันกี่เครื่อง?

ข้อกำหนด BLE กำหนด ขีดจำกัด 7 การเชื่อมต่อ สำหรับ Central หนึ่งตัว ในทางปฏิบัติ ข้อจำกัดขึ้นอยู่กับผู้ผลิตชิป: ชิป Nordic nRF52840 รองรับสูงสุด 20 การเชื่อมต่อ ในขณะที่อะแดปเตอร์ Bluetooth ราคาถูกบางตัวรองรับไม่เกิน 3–4

ทำไม Central ถึงไม่ตรวจพบเซ็นเซอร์ BLE ของฉัน?

สาเหตุอาจแตกต่างกัน: เซ็นเซอร์ไม่ได้โฆษณา (ไม่อยู่ในโหมดโฆษณา) ตัวกรอง UUID เข้มงวดเกินไป Bluetooth ปิดอยู่บนสมาร์ทโฟน ขาดสิทธิ์ที่จำเป็น (ตำแหน่งบน Android) หรือเซ็นเซอร์อยู่นอกระยะ (แนะนำสูงสุด 10 เมตรในอาคาร)

จำเป็นต้องคงการเชื่อมต่อกับอุปกรณ์ BLE อย่างต่อเนื่องหรือไม่?

ไม่จำเป็น สำหรับหลายสถานการณ์ จะใช้รูปแบบ เชื่อมต่อและอ่าน: Central สแกน เชื่อมต่อ อ่านข้อมูลที่จำเป็น และตัดการเชื่อมต่อ การเชื่อมต่ออย่างต่อเนื่องจำเป็นสำหรับข้อมูลสตรีมมิ่ง (ชีพจร, ECG) หรือการควบคุมอุปกรณ์แบบเรียลไทม์เท่านั้น

จะลดการใช้พลังงานของ Central ขณะสแกนได้อย่างไร?

ใช้ การสแกนเป็นช่วง ด้วยหน้าต่างสแกน 30–50 ms และช่วงเวลาสแกน 500–1000 ms กรองอุปกรณ์ตาม UUID เพื่อประมวลผลเฉพาะแพ็กเก็ตโฆษณาที่เกี่ยวข้อง หยุดสแกนทันทีหลังจากพบ Peripheral ที่ต้องการ

สรุป

  • Central คือผู้เข้าร่วมที่ active ในการเชื่อมต่อ BLE ซึ่งเริ่มต้นการสแกน การเชื่อมต่อ และการจัดการแลกเปลี่ยนข้อมูล
  • กระบวนการสแกนรวมถึง การรับแพ็กเก็ตโฆษณา บนช่อง 37, 38, 39 ด้วยความสามารถในการกรองตาม Service UUID
  • หลังจากค้นพบ Peripheral แล้ว Central จะสร้างการเชื่อมต่อด้วย พารามิเตอร์ที่กำหนดค่าได้ — ช่วงเวลาการเชื่อมต่อ ระยะหน่วง slave timeout การดูแล
  • ในการพัฒนามือถือ Central ถูกนำไปใช้ผ่าน CBCentralManager (iOS) หรือ BluetoothLeScanner + BluetoothGatt (Android)
  • Central หนึ่งตัวสามารถจัดการการเชื่อมต่อพร้อมกันได้สูงสุด 7 การเชื่อมต่อ ในการกำหนดค่า Bluetooth มาตรฐาน
  • การใช้พลังงานของ Central สามารถปรับให้เหมาะสมผ่าน การสแกนเป็นช่วง และการกรอง UUID เพื่อเพิ่มอายุการใช้งานแบตเตอรี่
  • การจัดการวงจรชีวิตการเชื่อมต่อที่เหมาะสม — ตั้งแต่การค้นพบจนถึงการตัดการเชื่อมต่อ — กำหนด ประสิทธิภาพ ของแอปพลิเคชัน BLE

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม