Main Content

Bluetooth Low Energy 周辺デバイスの検索

blelist を使用して、近くにある Bluetooth® Low Energy 周辺デバイスのリストを確認することができます。リストでデバイスを特定した後、ble を使用して MATLAB® から接続を確立することができます。

デバイスのスキャン

blelist を使用して、MATLAB から Bluetooth Low Energy 周辺デバイスをスキャンします。この関数は、データをアドバタイズしている近くの周辺デバイスをすべてリストします。各デバイスのアドバタイズ データを MATLAB に表示して、それが接続可能かどうかを判定します。デバイスがリストに表示されない場合は、電源が入っており、近くにあり、他のデバイスやアプリケーションから切断されていることを確認します。そのうえで、再度スキャンを行います。

list = blelist
list=5×5 table
    Index           Name              Address        RSSI    Advertisement
    _____    __________________    ______________    ____    _____________

      1      "Gear Fit2 (E16A)"    "8498663EE16A"    -54     [1×1 struct] 
      2      ""                    "2C4D2724754D"    -69     [1×1 struct] 
      3      ""                    "1B75E09FD18F"    -70     [1×1 struct] 
      4      ""                    "4F7D6DAF9FCE"    -75     [1×1 struct] 
      5      ""                    "7B8ADB5851BD"    -76     [1×1 struct] 

デバイスは、信号の強度を表す RSSI によって並べ替えられます。いくつかのデバイスがリストされている場合は、Name フィールドを使用してデバイスを特定します。

各デバイスのアドバタイズ データには、Bluetooth SIG によって汎用アクセス プロファイル (GAP) 内に定義されたデータが含まれています。アドバタイズ データ Advertisement 内の Type フィールドには、接続ステータスが表示されます。最初のデバイスのアドバタイズ データを表示します。

list.Advertisement(1)
ans = struct with fields:
                            Type: ["Connectable Undirected"    "Scan Response"]
                      Appearance: "Generic Watch"
              ShortenedLocalName: []
               CompleteLocalName: "Gear Fit2 (E16A)"
                    TxPowerLevel: []
    SlaveConnectionIntervalRange: []
        ManufacturerSpecificData: [0 117 1 0 2 0 1 3 0]
                     ServiceData: []
            CompleteServiceUUIDs: []
          IncompleteServiceUUIDs: []
        ServiceSolicitationUUIDs: []

名前によるデバイスのスキャン

名前と値のペアの引数を使用して、特定の名前をもつデバイスのみをリストできます。

たとえば、文字列 "UA" で始まる名前をもつすべての周辺デバイスをリストします。

list = blelist("Name","UA")
list=2×5 table
    Index           Name               Address        RSSI    Advertisement
    _____    ___________________    ______________    ____    _____________

      1      "UA E39 MODULE"        "84DD20E39AB6"    -84     [1×1 struct] 
      2      "UA Footpod 239AE2"    "0CF3EE239AE2"    -87     [1×1 struct]
名前と値のペアの引数を使用して、多数の周辺デバイスが近くにある場合に、特定の名前をスキャンします。

サービス名または UUID によるデバイスのスキャン

サービスをアドバタイズしているデバイスについては、名前と値のペアの引数を使用して、指定のサービスをもつデバイスのみをリストすることができます。サービス名とサービスの UUID は、いずれも有効です。

たとえば、Heart Rate サービスをアドバタイズするすべての周辺デバイスをリストします。

list = blelist("Services","Heart Rate")
list=1×5 table
    Index           Name               Address        RSSI    Advertisement
    _____    ___________________    ______________    ____    _____________

      1      "UA E39 MODULE"        "84DD20E39AB6"    -84     [1×1 struct] 
どのサービスを扱うかが分かっている場合は、名前と値のペアの引数を使用して特定のサービスをスキャンできます。

より長い時間のスキャン

MATLAB が近くのデバイスをスキャンする時間を増やすことができます。これは、デバイスのアドバタイズ間隔が長く、既定のタイムアウト値である 3 秒ではリストに表示されない場合に便利です。

list = blelist("Timeout",10);

デバイスへの接続

デバイスを検出したら、ble を使用して MATLAB と周辺デバイス間に接続を確立します。blelist の出力からデバイスの名前またはアドレスを指定します。

b = ble("Gear Fit2 (E16A)")
b = 
  ble with properties:

               Name: "Gear Fit2 (E16A)"
            Address: "8498663EE16A"
          Connected: 1
           Services: [2×2 table]
    Characteristics: [3×5 table]

Show services and characteristics

デバイスへの接続を作成した後は、ble プロパティにリストされている Characteristics を操作することができます。詳細と次の手順については、デバイスの特性と記述子の操作を参照してください。

参考

|

関連するトピック