Posted at

python-gattlibのインストール方法

More than 1 year has passed since last update.


経緯

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を行うのかどうかもわかりません…

進捗があればこちらに追記か別記事を書く予定です。