ブラウザ経由でBLEでラズパイと接続する方法についてまとめます.
ラズパイでBLEペリフェラルを立ち上げる
ラズパイの環境
私はpyblenoというライブラリを使ってペリフェラルを立ち上げることにしましたが,2021年6月現在,ペリフェラルからセントラルに値が変化したときに通知する「Notification」という機能が2018-11-13以降のラズベリーパイOSでは動作しません.公式ドキュメントによると,リナックスカーネルのBluetoothモジュールのバグが原因ということで,通知機能が必須な場合はラズベリーパイのOSを2018-11-13以前にする必要があります.従って,その場合rasbianのStrechやJessiになると思いますのでrasberry piは3B+を使う必要があります.
一方,私はラズベリーパイ4のBモデル(4G)を使ってこの記事を書いていますが,通知機能は使えなかったのでセントラルから定期的に読みに行くことにしてあまり問題は感じていません.
ライブラリをインストールする
sudo pip3 install pybleno
ソースコード
公式に置いてあるサンプルコードを参考に作成しました.main.pyとEchoCharacteristic.pyからなっています.
“`
スマホやPCのブラウザをBLEセントラルにしてラズパイからデータを取得
フレームワークを用いずに素のHTMLとJavaScriptで実装する方法はこちら
Angularを用いる方法
GiuHubの方にまとめました.
https://github.com/NP-Systems/demo-project-of-angular-ble/tree/main