Raspberry Pi 3 Model BでSensorTag CC2650STKからデータを取ってみたときのメモ。
SensorTag CC2650STK
光、デジタル・マイク、磁気センサ、湿度、圧力、加速度計、ジャイロスコープ、磁力計、物体の温度、周囲温度が測れる10個のセンサが付いています。BLEで接続してセンサのデータを取ることができます。どんな環境かわからないですがコイン・セル・バッテリ1個で数年間の連続動作を実現できるらしいです。
Texas Instrumentsのサイトかサードパーティのショップから購入することができます。
TIから購入してCC2650STKが$35.99でした。配送に2週間くらいかかったので急ぐ人は日本の代理店で購入したほうが良いかもしれません。
スマホに繋ぐ
Raspberry Piに繋ぐ前にTIが出しているアプリからSensorTagに接続してみる。Simplelink Starter
というアプリをインストールすればSensorTagの電源ボタンを押すことで接続ができました。詳細は調べてないのでよくわからないですがSimplelink SensorTag
は繋がらなかったです。
こんな感じでデータをスマホに送ってグラフを見ることができます。
Raspberry Piから繋ぐ
Raspberry Pi 3 Model BからSensorTagに接続してみます。
インストールしているRaspbianの情報は次の通り。
root@raspberrypi:~# cat /etc/os-release |
最初からインストールされているbluezを使えば繋げられます。
root@raspberrypi:~# dpkg -l bluez |
Raspberry Pi 3 Model BはBLEがついているので起動したらRUNNINGになっていることが確認できます。
root@raspberrypi:~# hciconfig |
RUNNING
となっていればOK。起動していなければhciconfig hci0 up
で起動します。
コマンドを実行してSrnsorTagのボタンをポチッとすると一覧にIDが表示されるので確認します。
root@raspberrypi:~# hcitool lescan |
正しくスキャン出来ると上記の様にIDが表示されることが確認できます。
試しに表示されたIDに接続してみます。
root@raspberrypi:~# hcitool lecc 24:71:XX:XX:XX:XX |
hcidump
してセンサの値を取り出すのが面倒なので公開されているツールを使います。
GitHubでSensorTagを検索するといくつか見つかったので一番星の多いnode-sensortag
を使ってみます。
- https://github.com/sandeepmistry/node-sensortag
- https://github.com/StevenRudenko/BleSensorTag
- https://github.com/msaunby/ble-sensor-pi
node-sensortag
一通り必要そうなものをインストールします。
root@raspberrypi:~# apt-get install git nodejs npm |
aptを使ってインストールするとnodejsコマンドになっているのでnodeにシンボリックリンクをはっておきます。
root@raspberrypi:~# node -v |
インストールできているか確認したらnode-sensortagをインストールします。
root@raspberrypi:~# apt-get install bluetooth bluez libbluetooth-dev libudev-dev |
node-sensortagのtest.jsを参考に温度を取得してみる。
root@raspberrypi:~# vi sample.js |
実行してみる。
root@raspberrypi:~# node sample.js |
3分でSleep状態になってしまうのでSleepにならないようにSensorTagに接続する必要がある。一度SleepになってしまうとSensorTagの電源ボタンを押さないと復帰しないので注意が必要です。
おわり。