CC2541をAndroidから使ってみる。
CC2541 SensorTag Development Kitについてのつづき。
http://d.hatena.ne.jp/kinneko/20131125/p4
対応アプリとかの情報のまとめはここ。
http://processors.wiki.ti.com/index.php/Bluetooth_SensorTag?INTC=SensorTag&HQS=sensortag-wiki
対応Androidデバイス
- Nexus 4 (JWR66V)
- Nexus 7 (2012) (JWR66V)
- Nexus 7 (2013) (JSS15J)
- Samsung S4 (JWR66V.S11.130708)
- HTC One (0.1.0.0 - 20130728)
N5はまだ書いてないのかな?
N7(2012)で4.3の時は、 Bluetooth Low Energy Enabler(有料)入れてね。
https://play.google.com/store/apps/details?id=com.manuelnaranjo.btle.installer2
温度センサーは7.5msに設定されているけど、これだと初期ファームではAndroidはタイムアウトしちゃう。1.4に上げることで対応できる。
私の手元のは1.4.0って書いてあるから大丈夫かな。
一応、ファームを上げる方法を調べる。
新しいファームはここ。OSX向けのアプリサンプルコードもある。
http://processors.wiki.ti.com/index.php/SensorTag_Firmware
1.5というのは、中身はこれの1.4と同じだけど、
Bluetooth low energy software stack and tools
http://www.ti.com/tool/ble-stack
CC debuggerで使えるhexイメージ、OTAダウンロード用のbinが入っているそう。
書き込み用のCC Debuggerはここ。
Debugger and Programmer for RF System-on-Chips
http://www.ti.com/tool/cc-debugger
ドキュメントはこれ。
http://www.ti.com/lit/ug/swru197f/swru197f.pdf
普通はCC Debuggerなんて持ってないから、OTAでアップデートするしかないのかな?
後でいいや。
タグサーチするAndroidアプリ
iOS用アプリと違って、Androidアプリは公式のものは、GooglePlayにはない。
とりあえず、BLEセンサータグとして見えるかどうか確認したい。
Macでは、何やらTIサイトから落としたツールを入れる必要があるようでメンドクサイ。
アプリは3つ見つかった。
B-BLE(Bluetooth4.0 Low Energy)
https://play.google.com/store/apps/details?id=com.billy.billylightblue
これはシンプル。パーミッションは、必要なもの以外要求されない。
BLE Explorer (Alpha)
https://play.google.com/store/apps/details?id=com.alexodus.bleexplorer
これもシンプル。必要なもの以外要求されない。
Bluetooth 4.0 Scanner
https://play.google.com/store/apps/details?id=com.bluemotionlabs.bluescan
こいつは、ネットワークへのフルアクセスとか、GPSとか要求する。
めんどくさい。
使ってみる。
Bluetooth 4.0 Scanner
Bluetooth 4.0 Scannerを起動する。
こちらは、BLEのみではなく、classicという従来のBTデバイスもスキャンできる。
BLEデバイスは切り替えが必要。
いずれも、ベースのアプリは同じで、何かからフォークしているような感じだ。
サービスについても、何の値を出しているかなどについてはわからないままになる。
センサの値を読み取るAndroidアプリ
見えることはわかったので、センサの内容を読みたい。
TIのサイトで、apkをダウンロードできるのだが、Win/Linux用のアーカイブを展開する必要があって、かつサイトへのユーザー登録が必要。
お手軽ではないので、探してみる。
2つあった。
BLE SensorTag
https://play.google.com/store/apps/details?id=sample.ble.sensortag
ソースはここ。
https://github.com/StevenRudenko/BleTISensorTag
これはシンプル。パーミッションは、必要なもの以外要求されない。
SenseView Sensor
https://play.google.com/store/apps/details?id=si.mobili.senseview
汎用だが、TIのタグにも対応している。
http://senseview.mobi/supported-sensors.html
でも、ネットワークへのフルアクセスとかメンドクサイこと言う。
BLE SensorTag
BLE SensorTagを起動してみる。
タグのボタンを押すと、すぐにリストに表示された。
加速度センサと、地磁気センサしか動いていないみたい。
これって、ひょっとして、TIのサンプルそのままかも...
と、思ったけど、Demoボタンのない項目も、タップすると詳細項目が表示された。
詳細項目は、R, R/Wなどが表示される。
設定データが表示されるものもあったが、値としては生に読んでいるだけで、意味をなさない感じがする。
SenseView Sensor
SenseView Sensorを起動してみる。
デフォルトでは、Android端末の内蔵センサの様子を表示している。
設定からセンサを選ぶ。
設定はBasicとAcvancedがあるので、Basicを選ぶ。
Androidに設定されているのがわかる。
設定でTIのセンサを選ぶと、GooglePlayに飛ばされて、ITタグ用のアプリを追加インストールする。
画面したに2つのモードが表示される。
温度だけのものと、その他のセンサからの情報を取る2つのモードがあり、モード選択後、デバイスを選択してトップ画面に戻ると値が表示される。
下の数字表示部を押すと、グラフ表示ができる。ZOOMでタイムスケールを変更できる。
温度二種類が増えているだけで、GyoとACCは同じ。
他のセンサーの値はとれていない。
残念。
Androidアプリの解説記事
Androidでのアプリ作成のサンプルなどは、以下のフェンリルの連載にある。
【連載】Bluetooth LE (5) Android 4.3 で Bluetooth LE 機器を使う
http://blog.fenrir-inc.com/jp/2013/10/bluetooth-le-android.html
この連載、他の回でも、CC2541を使っていてわかりやすい。
第1回 Bluetooth Low Energy の基礎
http://blog.fenrir-inc.com/jp/2013/09/bluetooth-le-firststep.html
第2回 iOS デバイスで Bluetooth LE 機器を使う
http://blog.fenrir-inc.com/jp/2013/10/bluetooth-le-ios-1.html
第3回 iOS デバイスを Bluetooth LE 機器にする
http://blog.fenrir-inc.com/jp/2013/10/bluetooth-le-ios-2.html
第4回 Windows 8.1 の Windows ストアアプリで BLE を使う
http://blog.fenrir-inc.com/jp/2013/10/bluetooth-le-win81.html