BLE 開発のための便利ツール群を公開しました

FolkBearsGroup/ble-tools: BLE 開発のための便利ツール群
https://github.com/FolkBearsGroup/ble-tools

ほどよく整理ができてきたので…というか、ブログに記事をまとめていると実験コードが散乱してしまうので FolkBearsGroup/ble-tools というリポジトリにまとめてアップしました。それぞれのツールは特に関係はしていないのですが、FolkBears を開発する際に使ったものです。

BLE の受発信は無線なのでよく見えないところが多いです。更にOSやプログラム言語により設定が異なるため、実行時に挙動が異なります。このあたり、たちたびツールを作って確認はしていたのですが、あまりまとめていなかったのでこの機会にまとめています。

scan_cocoa_python と scan_cocoa_win

解説は COCOA 受信(EN API 仕様)の実際 Windows + C# 版 | Moonmile Solutions Blog https://www.moonmile.net/blog/archives/12026 です。この記事では Windows 上で動作する C# になっていますが、scan_cocoa_python では Python で受信しています。

たぶん、node.js でも同じことができるはずなのですが、私のところではうまくいかなかったので up していません。

  • python では  bleak というライブラリを使っています
  • Windows 版は net10.0-windows10.0.22621.0 でいけます

scan_ibeacon_win

iBeacon の受信機を windows + C# で作っています。iBeacon の解説は BLE アドバタイズのパケット/iBeacon の詳細 | Moonmile Solutions Blog https://www.moonmile.net/blog/archives/11981 で書いたのですが、コードの解説はまだ書いてないみたい。

これも python とか node.js でも作れるはずです。
受信タイミングは Windows と Linux では異なるので、実行環境で確認しておくのは重要です。

transmitter_cocoa_m5stack

発信系は M5Stack で作っています。M5Stack は ESP32 を搭載しているので、BLE の発信が細かく制御できます。当然、Android や iOS で発信は可能ではあるのですが、いくつかの制限があるので、純粋に BLE の発信機を使うときは M5Stack のようなデバイスを使う方がいいです。

解説は COCOA 発信機(EN API仕様)を M5Stick Plus で作る | Moonmile Solutions Blog https://www.moonmile.net/blog/archives/12033 で書いています。

COCOA/EN API 仕様は 16 bit Service UUID で送信するパターンです。16 bit Service UUID は 0xFD6F を使います。
これも OS や機種によって、発信タイミングが異なるので Android や iOS で発信する部分もチェックしないといけません。

transmitter_manufacturer_m5stack

同じく M5Stack で Manufacturer Data で発信するパターンも作っています。
本当は Manufacturer Data が一番使い勝手がいいのでですが、iOS から Manufacturer Data を発信することができません。このために FolkBears では iBeacon 形式を使っているのですが、これもバックグラウンド動作等に難点があります。

このあたりの解説はまだ書いていないので、次の Android/iOS の受発信ツールも含めて書いていくつもりです。

folkbears-monitor-droid

Android で、iBeacon/EN API/FolkBears/manufacturer data の4種類のパターンで受信チェックをするツールです。FolkBears はもともと GATT サービスで接続する方式になっています。現在は iBeacon 形式と GATT サービスの両方で試すことができます。
この GATT サービスのときに相手のデバイスを探すときに、遅延しているらしいので、このツールを作っています。

解説は Android で iBeacon と EN API 受信機を作る | Moonmile Solutions Blog https://www.moonmile.net/blog/archives/12046 で書いています。

遅延のタイミングは、発信間隔と受信間隔の微妙なところがあります。その実験のためにつかいます。発信側は発信タイミング(Scan Window/Scan Interval)を細かく設定できる m5stack を使っていますが、受信側は Android も iOS も Scan Window/Scan Interval を のツールを使うとよいです。
また、実機測定として相手側を Android/iOS にして確認していきます。

folkbears-monitor-ios

Android と同じパターンで iOS 版も作っています。
Android と同じように4種類の BLE 受信のパターンをチェックできます。iOS の場合でも manufacturer data の data 部分が取得できています(発信はできない)。

解説のほうも書いていきます。

これからの予定

Android と iOS の発信機がないので、ざっと作っていきます。
あと、m5stack での発信ツールの不足分(iBeacon版)も足していきます。
ほかにも、設定関係やログ出力機能がないので、これも追加していきたいですね。あくまで開発ツールの位置づけなので、本格的なものは本体の FolkBears に入れていく予定です。

カテゴリー: 開発, FolkBears パーマリンク

コメントを残す

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

*