@takapan228

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Rasberry Pi 4 ModelBを受信機としてiBeaconを認識したいが、認識することができない。

解決したいこと

Ubuntu22.04がインストールされたRasberry Pi 4 ModelBを受信機として
iBeaconをスキャンしたいが、認識することができないという状況です。
どなたが解決策を教えていただけないでしょうか?

実行環境

ラズパイ Rasberry pi 4 model B
OS Ubuntu22.04
iBeacon BLEAD-B Ver2 参考 https://houwa-js.co.jp/wp-content/uploads/2018/05/BLEAD_manual_PDF.pdf

補足 このiBeaconにはただBLEを送信しているだけのノーマルモード及び、ビーコンの設定を変更できるスタンバイモードが存在しています。上記の参考サイトにおいてスイッチを押し、LEDが赤く点滅しており、アプリで設定を変更可能であるモードがスタンバイモードです。

実行したコマンド

iBeaconをラズパイ充分近づけたうえで実行しています。(30cmくらい)

sudo hcitool scan

今現在の出力結果

Scanning ...

求めている出力結果 (例)

Scanning ...
〇〇:〇〇:〇〇:〇〇:〇〇:〇〇: (iBeacon)

自分で試したこと

 GATTBrowserと呼ばれるiPhone周囲のBLEをスキャンするiOSアプリをインストールし、実際にiBeaconのスキャンを行いました。
 その結果、アプリがiBeaconを検知できていることを確認することができました。
 しかし、上記の実行環境に記述したスタンバイモードの場合のみ、iBeaconに接続できるようになっています。ノーマルモードの場合は、検知は可能ですが接続は不可能でした。

参考 GATTBrowser https://apps.apple.com/jp/app/gattbrowser/id1163057977

また、iBeaconではなくiPhone(iPhone SE)をラズパイを使って認識してみました。その結果、iPhoneのBluetooth設定画面を開いている場合、ラズパイで認識することができました。

iBeaconではなくiPhoneを対象とした場合

実行したコマンド

sudo hcitool scan

出力結果

〇〇:〇〇:〇〇:〇〇:〇〇:〇〇: (iPhone)

 この結果から、iPhoneのBluetootu通信はラズパイで認識できていると考えました。
 また、iBeacon及びiPhoneをラズパイに近づけたうえで、以下のコマンドを実行しました。

sudo hcitool lescan

出力結果

LE Scan ...
55:96:DA:F3:09:47 (unknown)
77:23:C8:24:64:01 (unknown)
50:F5:F5:62:B1:EC (unknown)
00:D1:DD:52:23:DD (unknown)
73:50:4A:99:2D:6D (unknown)
49:73:84:75:E4:C6 (unknown)
76:87:B2:0A:D9:A5 (unknown)
5D:9E:35:F2:BF:A7 (unknown)
         .
         .  
         .

 出力結果を見ると周囲のBluetooth端末のアドレスが出力されていることがわかりますが、これをテキストファイルにリダイレクトし、iPhoneのMACアドレス及びBluetoothアドレスで検索したところ、この出力結果にはiPhoneのアドレスが出力されていないことがわかりました。

 以上のことからhcitool scanコマンドではiPhoneのみ、hcitool lescanコマンドではiPhone、ビーコン共に認識できていないことがわかります。

 これはラズパイがiBeaconを認識できないことに関係あるのでしょうか? また、そもそもラズパイを受信機としてiBeaconを認識することは可能なのでしょうか? そして可能であるなら、どのようにすれば認識できるのでしょうか?

 何か解決方法や関係する知識に心当たり等ありましたら教えていただけますと幸いです。

0 likes

2Answer

自分の環境(Rasberry Pi 4B/Debian Bullseye 64bit)では、hcitool scan/lescanコマンド共に、iPhoneは認識しませんでした。これは、iPhoneは普通、ペリフェラルとしてアドバタイズしていないからだと思います。


リンクされていた iBeacon BLEAD-B Ver2 の取説を拝見しました。
そもそも固有UUID、個別IDは設定済みでしょうか?

iPhoneに下記の様な汎用ツールをインストールすれば、そのビーコンを認識すると思います。

iPhoneが認識するなら、ラズパイも認識するはずです。

1Like

Comments

  1. 前回の回答を訂正します。

    汎用BLEツールでは、iBeaconを識別することは難しいようです(それなのか判断できない)。

    以下のPDFを参考にして、ラズパイでiBeaconから受信ができました。また、ラズパイをiBeaconにすることもできました。

    自分はiBeaconハードを持っていないため、iPhoneのビーコン送信アプリを使い、また、AndroidスマホのiBeaconアプリでも同時に受信して確認しました。

アップル独自規格:iBeaconはBLE(scan)でLE(lescan)ではありません。

私はhcitoolよりbluetoothctlをお奨めします。

以下、蛇足です。

Rasberry pi 4 model B
raspbian 32bit ····GPIOの親和性から
bluepy for python

でビーコンを1割以下でやっと拾っていました。当初はiPhoneのiBeacon(BLE約120個)が邪魔していると推測してました。何故なら、夕方より朝方の方が取得率が1割でも良いのです。社員の出社に比例して

devices = scanner.scan(9.9)
取得率0%

devices = scanner.scan(40.0)
取得率10%
この指定で100個目位で受信されました。

almalinux8 64bitノートPCではscan(9.9)で目的のデバイス情報+相乗り情報が9割方取得できています。(取得率が7割に落ちますが30m先のビーコンも拾えました、iBeaconの70m,450mは試していません)

raspbian 64bit に変更するべきか?
方や、Ubuntu 64bit に変更するべきか?
迷っていました。

しかし、2週間前に突然、取得率が8割になりました。ラズパイのリブートを数回繰り返したくらいです。その時は何が起こっているのかも分かりませんでした。

原因が判明したのは今日の朝です。

0Like

Comments

  1. ラズパイ5はbluetooth5.1でしょうか?
    デバイスの方向、距離が10cm誤差での取得は魅力的です。

    さて、ラズパイのアンテナは基板にある為性能が悪いという記事があり、外付けのどんぐりUSB(bluetooth)にて通信したら改善したそうです。

    確かに、ビーコンに相乗りしているRSSI値から若干その傾向がありました。ノートPC比較

    何故どんぐりUSBで飛躍的に改善した理由にハードの違い、デバイスドライバの違いがあると仮定しました。

    Ubuntu 64bit変更するべきか?迷ったのはそのためです。

    幸運にも2週間前の突然の改善があり、一つの仮説がもたらされます。
    デバイスドライバがラズパイのリブートにより、自動アップデートされたという仮説です。(ハードの違いの仮説は棄却)

    仮説を確認するためscan(9.9)に戻して、ビーコンのデバイス情報+相乗り情報が何番目に受信するか?確認したところ、100個目位から20〜50番目以下になって、取得率が7割以上でした。

    まとめ

    1. Rasberry pi 4 は基板のアンテナの利得が悪い
    2. 最近Rasbianのblurtoothデバイスドライバの性能(scan時にアドバタイズするようになった?)が改善された。(取得率が1割から7割)
    3. scan時もアドバタイズしている。それが仕様なのか?独自仕様なのか読み取れない
    4. 必ずしもBLE(scan)のアドバタイズに全てデバイスが応答しない。(7,8割は取得できる)
    5. BLEデバイスは他のプロセスでscan中の時は、scanできない。(アドバタイズ要求できない)
    6. ペリフェラルのアドバタイズに必ずしもターゲットデバイスは応答しない。(ターゲットがスリープしている?、他のデバイスの応答してい?)
    7. アップル独自規格:iBeaconはBLEであるのでラズパイのBLE(scan)は対応しているが、独自規格にはhcitoolやbluetoothctlは対応していない。(但し、scanにデバイスドライバがアドバタイズするとは限らない)

Your answer might help someone💌