ロードバイクときどきiPad/Airなblog

タイトルとはだんだんかけ離れてきているような。。。

全体表示

[ リスト ]

Raspberry Piにも大分慣れてきたのでF-PLUGを繋いでみることにしました。
まずはBluetooth関連パッケージをインストールします。
$ sudo apt-get install bluetooth bluez-utils bluez-compat
ドングルを挿して認識していることを確認します。
$ sudo hciconfig -a
F-PLUGを1つ近くの電源に接続しペリングします。
$ sudo hcitool scan
$ sudo bluetooth-agent 1234 <BTアドレス>
※ F-PLUGのLEDが点灯したらボタンを押します
うまくいったら次のF-PLUGを電源に接続し同様にペアリングします。
/etc/bluetooth/rfcomm.confに設定を追加します。
#
# RFCOMM configuration file.
#
rfcomm0 {
        # Automatically bind the device at startup
        bind no;
        # Bluetooth address of the device
        device B0:99:28:xx:xx:xx;
        # RFCOMM channel for the connection
        channel 1;
        # Description of the connection
        comment "F-PLUG No.1";
}
rfcomm1 {
        # Automatically bind the device at startup
        bind no;
        # Bluetooth address of the device
        device B0:99:28:xx:xx:xx;
        # RFCOMM channel for the connection
        channel 1;
        # Description of the connection
        comment "F-PLUG No.2";
}
bluetoothサービスをstop/startします。
$ sudo /etc/init.d/bluetooth stop
$ sudo /etc/init.d/bluetooth start
準備ができたら2個のF-PLUGをconnectし、つながっていることを確認します。
$ sudo rfcomm -r connect 0 &
$ sudo rfcomm -r connect 1 &
$ sudo rfcomm -a
ついでにデバイスもちゃんとできていることを確認しておきます。
pi@raspberrypi ~ $ ls -l /dev/rfc*
crw-rw---T 1 root dialout 216, 0 Aug 18 11:11 /dev/rfcomm0
crw-rw---T 1 root dialout 216, 1 Aug 18 11:11 /dev/rfcomm1
pi@raspberrypi ~ $
これで準備はOKです。
OBDNマガジンの記事を参考にしてfptest、fpstatusコマンドを作成します。
# git clone https://github.com/goto2048/fplug_for_linux.git
# cc fptest.c -o fptest
# cc fpstatus.c -o fpstatus
コマンドが作成できたら値が取得できることを確認します。
問題はここからです。fptest、fpstatusコマンドは1台目(正確には/dev/rfcomm0につながっている方)のF-PLUGの値しか取得できませんでした。
せっかくソースを提供してくれているので強引に修正してみました。
修正前    fd = open(SERIAL_PORT, O_RDWR );
修正後    fd = open("/dev/rfcomm1", O_RDWR );
SERIAL_PORTと書かれているところを読んで欲しいデバイス(/dev/rfcomm1)に書き換えたのです。
# cc fptest1.c -o fptest1
# cc fpstatus1.c -o fpstatus1
これで2台目のF-PLUGの情報を取得するfptest1、fpstatus1コマンドができました。
まだ設定してから1日ほどですが正常に動作しているようです。
もっともF-PLUGを抜いたりすると以降のデータが取れなくなってしまいます。
その際の復旧方法もわかって来ましたのでスクリプト化して自動実行するようにしようかと考えています。

閉じる コメント(2)

顔アイコン

一旦ペアリング済のデバイスを初期化して再設定する際にはペアリングがうまくいかないことがあります。その際は"bluez-test-device remove アドレス"を実行して一旦削除すると良いみたいです。

2015/8/10(月) 午後 10:40 [ beach3 ] 返信する

顔アイコン

ペアリングを解除し工場出荷状態にする方法がわかり辛いのでメモを残します。10秒ほど押して橙に点灯したらすぐに離して再度押し、緑が3回点滅するまで押します。
もう一度10秒ほど押してみて緑→橙→赤に点灯すれば出荷状態にリセット完了です、

2015/8/11(火) 午後 7:31 [ beach3 ] 返信する

コメント投稿

顔アイコン

顔アイコン・表示画像の選択

名前パスワードブログ
絵文字
×
  • オリジナル
  • SoftBank1
  • SoftBank2
  • SoftBank3
  • SoftBank4
  • docomo1
  • docomo2
  • au1
  • au2
  • au3
  • au4
投稿

.


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事