はじめに
株式会社ピー・アール・オーのアドベントカレンダー23日目です。
かなり前に購入したmicro:bitを引っ張り出して、郵便受けに荷物が届いた時にSlack通知をする。
というのを作ってみたいと思います。
micro:bitには加速度センサーがついてるので郵便受けの扉とかに貼り付ければ、動きが取れるのではないかと思ってます。
BLEの機能も備えてるので、Bluetooth通信で加速度センサーの値を MacBook側のPythonアプリにて受信し、Slackに通知を流すという構想です。
micro:bit については以前、書きました下記の記事からどうぞ。
https://qiita.com/m_ryusei/items/ec7b6c97f5f4929b43be
https://qiita.com/m_ryusei/items/02f16adfb9c0109a16c7
まずはBLEによる通信ができることの確認
先ずBLE確認用のプログラムを書いてみます。
ブラウザから https://makecode.microbit.org/?lang=ja#editor へアクセスし、
右上のプロジェクト設定をクリック。
No Pairing ・・・ を選択して保存。
高度なブロック → 拡張機能 → Bluetoothを検索してブロックを追加。
とりあえず通信の確認をしたいのでコードはこんだけ。(加速度計サービスだと確認しづらいので、とりあえず温度計サービス)
これで micro:bit に書き込んで、受信する Mac側で通信を確認。確認には LightBlue を使いました。
が、しかし、、、
あれ・・・?いないぞ、、、
『BBC micro:bit』というデイスが出てくるはずがいない。
一覧にある名無しのデバイスのどれかなのか??
一個ずつ確認するも、それらしいものがなく…ハマりました…
micro:bitのプロジェクト設定を再確認したり、コードを何回も書き込み直したりしても解消せず。
もしやBLEが物理的に死んでるのか?と疑うレベル。
ファームウェアアップデート
その後、調べてみるとファームウェアのアップデートが出てました。(購入したのは3年以上前だった)
バージョン毎にあてるファームウェアが異なる模様。バージョンってどこから確認するの?という感じだったが、どうやら右下に小さく書いてあるこちらのようです。
自分が持っているのは、V1.38のようなので下記のリンクの手順を参考に「Firmware for V1」をあてました。
これで LightBlue にて確認するも、出てこない…
工場出荷時のプログラムに初期化
続いて工場出荷時のプログラムが配布されていたので、下記のリンクからこれを書き込んでみる。
出荷時のプログラムを書き込み後、micro:bit上で、問題なく動作することを確認できたので、再び冒頭で用意したBLE確認用のプログラムを書き込んでみる。(内心、意味ないよなと思いながら)
LightBlue で確認するが、やはり出てこない、意味なかった…
iOSアプリでペアリング
micro:bitのiOS/Androidアプリが配布されています。
アプリ上で micro:bit のコードを書いたり、Bluetoothペアリングができるらしいです。(昔、入れてた気もする)
これでペアリングができればBluetoothは生きてるということになるのですが、、、どうでしょうか。
ペアリングの手順は下記のリンクが参考になります。
あれ?ペアリングできました。
その後、冒頭の確認用プログラムを再度、書き込んだ気がします。
LightBlueで確認すると、なんと出てきました!
いろいろやり過ぎて何が決め手だったのか、もはやよくわかりませんが、ようやく確認することができました!
今回は、ここまでにかなりの時間を要してしまいタイムアップです…
続きはどこかでやりたいと思います。
BLE デバッグツール
最後に使用したツールを紹介して終わりにしたいと思います。
今回の確認をするのに実はLightBlue以外にもいろんなツールを入れて試してました。
LightBlue
https://apps.apple.com/jp/app/lightblue/id557428110
App Storeで配布されてます。
Mac、iPhone、iPad版それぞれあるようです。(Android版もあります)
BluetoothExplorer
https://developer.apple.com/download/all/?q=additional%20Tools
AppleDevelopersで配布されてます。いろんなツール群が同梱されており、その中にBluetoothExplorerが含まれてます。
Hardwareフォルダの中に Bluetooth Explorer.app があるので、これを起動。
Devices → Low Energy Devices から下記のスクショのように画面が立ち上がるのでこちらで確認できます。
BLE Scanner
https://apps.apple.com/jp/app/ble-scanner-4-0/id1221763603
iOS版を入れてみました。(Android版もあります)
RSSIという電波強度を数値化した値を確認することができるので、おおよその位置を確認することができます。
ワイヤレスイヤホンを失くしてしまったとか、Bluetooth関連のデバイスを紛失したときにも役立つかもしれません。
以上です!