これはWeb Bluetooth API を試行した備忘です。

  1.  概要
    1. chromeブラウザ配下でのプログラミング教育用の環境を作っているとき,chromeブラウザにWeb-Bluetooth APIというのが実装されており,これを使えばBLEデバイスとchromeブラウザをリンクさせて利用できることを知った。
    2. このAPIを使えばmicro:bitなどのBLEデバイスがchromeブラウザを介してjavascriptのプログラムでWebと連携するサービス(いわゆるIoT)が実現できる。
    3. micro:bitのBLEを利用してWeb連携させる方法はRaspberry Piとmicro:bitでNode.jsGoで試したが追加のソフトウェアなしでchromeだけでWeb連携ができることに大いに興味を惹かれた。
    4. Googleで探索すると多くの先行事例がヒットした。その中で,次のページの事例を忠実に模倣してWeb-Bluetooth APIを試して見た。
      1. micro:bitとWebBluetoothで通信してみました
      2. micro:bitのLEDをWeb Bluetooth APIで制御してみる
    5. micro:bit web-bluetooth 資料
      1. Bluetooth Developer Studio Level 3 Profile Report
      2. Web Bluetooth API – Chrome Platform Status

    6. 模倣して試した後,今後に向けてBLEリンクさせる部分をできるだけ抽象化してmicro:bit搭載の色々なセンサー利用のプログラムを簡単に作れるようにした。
  2. 実験環境
    1. macOS Hight Sierra + Chrome 66
    2. ChromeOS 65
    3. Raspbian Stretch + Chromium 60 (chrome://flags で Experimental Web Platform features をenableにしておく)
  3.  プログラム
    1. micro:bit
      1. ブロック・プログラムエディタ右上の歯車マークをクリックし「プロジェクトの設定」から”No Pairing Required: Anyone can connect via Bluetooth.”を選択して事前のペアリングなしでBLEリンクできるようにしておく。
      2. 次のようなBluetoothサービスを起動するプログラムをmicro:bitに書き込む。
      3. 書き込みが終わるとLEDマトリクスに”DRAW CIRCLE”と表示され磁気コンパス校正モードに入るのでCalibrating the micro:bit Compassのように操作。
    2. 加速度センサー
      試行ページ https://kimio-kosaka.github.io/Web-Bluetooth/accelerometer/
      ソースコード https://github.com/kimio-kosaka/Web-Bluetooth/tree/master/accelerometer
    3. 磁気コンパス
      試行ページ https://kimio-kosaka.github.io/Web-Bluetooth/compass/
      ソースコード https://github.com/kimio-kosaka/Web-Bluetooth/tree/master/compass
      読み取り値が”おかしい”場合はコンパスの校正不良。参考ページ↓
      Compass results are inaccurate in some circumstances
    4. 温度センサー
      試行ページ https://kimio-kosaka.github.io/Web-Bluetooth/temperature/
      ソースコード https://github.com/kimio-kosaka/Web-Bluetooth/tree/master/temperature
    5. ボタンA,B状態読み取り
      試行ページ https://kimio-kosaka.github.io/Web-Bluetooth/button/
      ソースコード https://github.com/kimio-kosaka/Web-Bluetooth/tree/master/button
  4. 以上のようにchromeプラウザ側のjavascriptプログラムだけでmicro:bitを簡単に連携動作させることができる。

Follow me!