Bluetooth Low Energy(BLE)を使った、通信をテストしてみました。
ここ最近、とても注目されている無線通信で、従来のBluetoothとはかなり違った特徴を持っています。
詳しくは、一番実装が進んでいるiPhoneを使った通信が参考になります。
ソシム「iOS×BLE Core Bluetoothプログラミング」
この書籍は、かなり詳しく書かれています。
ここではあえて、最近購入したRaspberry Pi2とLinuxのFedora22でテストします。
Fedoraを選んだ理由は、BLEのライブラリ・ツールが新しいからです。
またRaspberry Pi2には、最新版を導入するため、ソースからビルドします。
参考 : http://www.elinux.org/RPi_Bluetooth_LE
apt-get install libdbus-1-dev libdbus-glib-1-dev libglib2.0-dev libical-dev libreadline-dev libudev-dev libusb-dev
wget https://www.kernel.org/pub/linux/bluetooth/bluez-5.31.tar.xz
tar xvf bluez-5.31.tar.xz
cd bluez-5.31
./configure –disable-systemd
make
make install
hciconfig hci0 up
Fedoraは、ThinkPad内臓のBluetooth(4.0対応)
Raspberry Pi2はUSB Bluetoothは、ELECOM LBT-UAN05C2を使用します。
※このUSB Bluetoothは、メーカ配布のドライバを使っているにも関わらず、Windowsで使うと、ネットワーク関係のドライバを壊してしまいました。(ネットが不安定になりました)
Fedoraでアドバタイズします。
Bluezは、5.29が最初からインストールされています。
Raspberry Pi2にSSHでアクセスし、スキャン、接続、サービスの発見、キャラクタリスティックの発見、読み込みをテストしました。
ハンドル0x0003の内容は、以下のようです。
> echo ” 42 6c 75 65 5a 20 35 2e 32 39″ | tr ” ” “=” | nkf -WwmQ
BlueZ 5.29
実際に何を通信するかは、定義をする必要がありますが、とりあえず基本となるサービスとキャラクタリスティックへのアクセスを確認できました。
Bluetoothに関しては、まだまだいろいろとやってみたいことがありますので、またとりあげようと思います。