node.jsでBLE通信におけるCentralの役割をするプログラム

相変わらずBLE通信の勉強をしています

ESP32やBleanno2等々でPeripheralを実装してきました

接続される側(Peripheral)はできたけど接続する側(Central)はどうするの?ということでnodejsでプログラムをつくりました

色々調べるとnodeで作るのがベターらしいのでnodejsで組んでみました

せっかくなのでRaspberrypi3でできるかの確認もしてみました

スポンサーリンク




スポンサーリンク

インストール

※nodeはすでにインストールしている状態で話をすすめます

Terminalで以下のコマンドを打つ

nobleというライブラリを使ってCentralを実現します

簡単な接続までのアルゴリズム

個人的な解釈ですが、BLEの通信のCentralは以下のようにしてつながると思います

赤色っぽい色で示されているところがすごーく重要です

BLEは単純にIPを検索して接続すれば良いというものではありません

デバイスを検索して、そのデバイスが持っているServiceにアクセスし、Serviceが持っているCharacteristicにアクセスし、通知や読み書きを受け取ります(または送信)をします

プログラム

論より先にプログラムを掲載

起動方法

解説

基本的に下記のところを書き換えればBLE通信ができると思います

周辺のBLE機器をスキャンして検索したいデバイス名があったら接続をします

その後、そのデバイスが持っているServiceのUUIDを検索し見つけたら接続

そしてServiceの中に接続したCharacteristicがあればそれを受け取るようにしています

Notifyを受け取るときに重要な一行があり下記のものがないとNotifyを受け取ることができません

ほんとに動くかどうかを試したい場合はBlenano2を購入し、以下のGitHubに上がっているサンプルのPeripheralプログラムをBlenano2書き込んでみてください

こんな感じで動くと思います

スポンサーリンク







フォローする