経緯
BLEモジュールを使いたいとの要望が飛んできたのでRaspiでの実装に挑戦中です。
bleライブラリのインストールに詰まったのでそのメモ書きです。
手順
こちらを参考にさせてもらいました。
# ①pyBluez の依存パッケージをインストール
$ sudo apt-get install python-dev libbluetooth3-dev
# ②pyBluez のインストール
$ sudo pip install pybluez
# ③gattlib の依存パッケージをインストール
$ sudo apt-get install libglib2.0 libboost-python-dev libboost-thread-dev
# ④BLEを使う場合に必要な gattlib をインストール
$ sudo pip install gattlib
①②③までは順調だったのですが④のgattlibのインストールがうまくいかない…
エラーログを見るとBT_SNDMTUとBT_RCVMTUが宣言されていない様子
対策
調べてみるとこちらに回答がありました。
google翻訳
-私はこれが環境問題でありpygattlibではないと思います。閉鎖
とのことで開発環境に問題があるとのこと。
とりあえずこちらを参考にRaspiを最新にアップデート
Raspiのカーネルを最新のStretchにしたところカーネルは4.9なので↓のリンクで現在のカーネルバージョンのヘッダファイルにて宣言されていることを確認。
http://elixir.free-electrons.com/linux/v4.9/source/include/net/bluetooth/bluetooth.h#L122
再度、④のpipコマンドを実行してみましたがエラーが治りません。
アップデートではなくカーネルビルドが必要なのでしょうか、理由は私ではわからないので手動インストールに変更。
対策その2
bitbucketからソースをダウンロード→scpでraspiにzipを送信。
# 解凍
unzip OscarAcena-pygattlib-a858e8626a93.zip
# 一応setup.pyの前にmake
cd OscarAcena-pygattlib-a858e8626a93
make
# setup.pyでインストール
sudo python setup.py install
これで無事pygattlibインストールが完了しましたのでBLEモジュールのセンサ受信ソフトの作成に取り掛かることができます。
終わり?に
加速度センサのMACアドレスを知りたいのですがlescanしても数が多すぎてわかりません…
そもそもMACアドレスでconnectを行うのかどうかもわかりません…
進捗があればこちらに追記か別記事を書く予定です。