2018年4月27日金曜日

micro:bitからEddyStone-URL(ビーコン信号)を発信

BBCのmicro:bit(マイクロビット)ですが、BLE(Bluetooth Low Energy)のうえで、ビーコンとしても使えます。ビーコンの信号構成はいくつかあるのですが、GoogleのEddyStone形式のものを発信できます。EddyStoneにも信号構成はいくつかありますが、ここでは、EddyStone-URLを使ってみます。これによると、micro:bitが、URLを発信し続けるようにすることができます。

たとえば、以下の「神奈川工科大学 情報工学科 Twitter」です。
https://twitter.com/kait_cs
(ただし、Eddystone-URLのデータ容量の制約から、これを短縮URLに変換しています。)


micro:bitからEddyStone-URLを発信するプログラム

micro:bitのEddyStone-URL発信プログラムは、上図のように簡単です。
次に、これを受信して、このURLのホームページを表示するプログラムは、Androidプログラムとして自作しました。


Eddystone-URLを発信するmicro:bitと受信用Androidアプリ

EddyStone信号受信プログラムには、幾つかの課題があります。具体的には以下のような事項です。

  1. 実環境では、多数の機器から多様なBluetooth信号が発信されている。
  2. Eddystoneだけでも、Eddystone-UID, Eddystone-URL, Eddystone-TLMがある。
  3. ここでは、それらのうちのEddystone-URL信号だけを取り出す。
  4. 複数のEddystone-URLを受信した場合は、受信強度の順にソートする。
  5. 通常、もっとも近い(受信強度の強い)ものを採用する。
  6. そのアドバタイズデータを得て、urlをデコードする。
  7. ブラウザでそのurlの内容を表示する。
Eddystone-URLのAndroid受信アプリは、最近のMIT App Inventorでは、BLE extensionsが提供されているので、だいぶ楽に作成できるようになりました!
これらについては別の記事で書こうと思っています。

1 件のコメント: