3分钟入门iOS BLE开发

没错,只需要3分钟就可以入门iOS的BLE(Bluetooth Low Energy)开发

  • 1分钟了解BLE的基础常用概念

  • 1分钟了解BLE的通讯流程

  • 1分钟学会使用BLEKit库

BLE基础常用概念

  • Central(中心设备):负责扫描,发现广播的Peripheral,向Peripheral发起连接。比如Phone,Pad等等

  • Peripheral(外设):具备广播能力,能被Central发现和连接。比如心率计,手表

  • Service(服务):表示Peripheral可以提供哪些服务,比如心率计Peripheral就具备Heart Rate Service,血糖计Peripheral就具备Glucose Service。一个Peripheral可以具备多个不同的Services。

  • Characteristic:更加精细具体的服务单元,也是数据通讯的载体,Service包含Characteristic。比如Heart Rate Service有Heart Rate Control Point,Body Sensor Location,Heart Rate Measurement 3个Characteristic。通过读取Body Sensor Location的值,可以获取心率传感器的位置。心率值是通过Heart Rate Measurement 通知出来。控制心率器,向Heart Rate Control Point写数据。

  • Characteristic Property:不同的Characteristic支持不同属性,有可读,可写,通知等属性,比如Heart Rate Control Point支持可写,Body Sensor Location支持可写,Heart Rate Measurement支持通知。

BLE通讯流程

手机应用一般作为Central,通讯一般都需要以下步骤

  • 初始化Central

  • 扫描发现Peripheral

  • 连接Peripheral

  • 发现Service

  • 发现Characteristic

  • 读写数据,监听通知

  • 断开连接

BLEKit库

https://github.com/LevinYan/BLEKit
BLEKit是本人对iOS BLE库进行封装,简单易用

  • 初始化Central
  self.bleManager = [BLEManager shareManager];
  [self.bleManager initCentral:nil];
  • 扫描发现Peripheral
[self.bleManager scanForPeripherals:nil result:^(CBPeripheral *peripheral) {
       do something...
    }];
  • 连接Peripheral,自动发现Service和Characteristic
    BLEPeripheralConnectOption *option = [BLEPeripheralConnectOption defaultOption];
    option.autoDiscoverServices = YES; //enable auto discovery service when connect
    [self.bleManager connectPeripheral:peripheral option:nil complete:^(NSString * _Nullable error) {
       do something...
    }];
  • 读写数据,监听通知
 [self.peripheral readValueForCharacteristic:self.characteristic result:^(NSData *value, NSError *error) {
        do something...
    }];
      [self.peripheral writeValue:data forCharacteristic:self.characteristic result:^(NSError * _Nullable error) {
        do something...
    }];
    [self.peripheral listenNotificationForCharacteristic:self.characteristic result:^(NSData *value, NSError *error) {
           do something...
    }];
  • 断开连接
    [self.bleManager cancelConnectPeripheral:self.peripheral];

Final

本文只是对iOS BLE入门介绍,更多深入内容还是需要靠自己慢慢学习。要是喜欢BLEKit,可以给个Star,要是发现bug,可以通过qq:243765379联系我。

你可能感兴趣的:(3分钟入门iOS BLE开发)