Bluetooth(BLE)の機器のhackのために、BLED112というドングル型開発キットを手に入れた

Bluetooth(BLE)の機器のhackのために、BLED112というドングル型開発キットを手に入れた。

Silicon Labs BLED112-V1 (Amazon)

この間、BLE hackのためにBluetooth 4.0用ドングルを買ったのだが、WindowsのBLE関係のAPIがいまいち使えない。

Windows上で、C/C++でBLEのAPIを使おうというのはあきらめて、Windows上でPythonを使ってBLEをいじってみようと思った。

Python用のBluetooth/BLEのライブラリはいくつかあるようだが、Windowsで動くのはpygattというのがあるようだ。

だだ、pygattというライブラリは、上記のBLED112というドングル型の開発キットのみをサポートしていて、このデバイスでのみ動作するという。
なので、BLED112を手に入れたのだった。


BLEDをWindows 10のPCのUSBポートに挿すと、シリアルポートとして認識される。Bluetoothドングルっぽい見た目なのだが、OSからはBluetoothデバイスとして認識されない機器である。

Windows上のPython環境はAnacondaを自分は使っている。

Anacondaのコマンドラインから、pipを使ってpygattをインストールした。
そして、pythonのコードをちょっと書いて、BLEの周りのデバイスをスキャンするコードを書いてみた。

import pygatt

adapter = pygatt.BGAPIBackend()

try:
    adapter.start()
    devices = adapter.scan(run_as_root=True, timeout=8)
    for device in devices:
        rssi = device['rssi']
        address = device['address']
        name = device['name']
        print(rssi,address,name)
finally:
    adapter.stop()

無事、動くことが確認できた。


GUIのサポートツールがあり、これを弄りながらlogの表示を眺めると、いろいろと参考になる感じだ。
https://www.silabs.com/wireless/bluetooth/bluegiga-low-energy-legacy-modules/device.bled112
公式サイトからダウンロードのページに行き、SDK一式をダウンロードすると、GUIツールも入手できる。(Bluegiga_ble-1.8.0-143.exe)


C/C++でBLEDを使うためのbglibというライブラリがあるようなので、Visual Studio 2019でビルドして使ってみようとしたのだが、うまくいかなかった。

cmakeを入れてなかったので、代わりに自分でMakefileをでっちあげてビルドして、コンパイルエラーが出ないように多少修正して動かしたのだが、pygattみたいなscanが動作しないようだった。


bglibのソースコードとかを横目で見ながら、BLEDを直接シリアル通信で叩いて回りのBLEデバイスをスキャンするプログラムを作り始めた。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.

+ 79 = 83