IoT

ラズパイDockerのpythonからSensorTagを使う

今回は、ラズパイDockerのpythonからSensorTagを使えるか試してみました。

resin/rpi-raspbian:jessie コンテナを --net host をつけて起動

1
$ docker run -it --net host resin/rpi-raspbian:jessie

bluepy をインストール

1
2
# apt-get update; apt-get install -y python-pip libglib2.0-dev build-essential bluez
# pip install bluepy

hcitool lescan でSensorTagのアドレスを確認

1
2
3
4
# hcitool lescan
LE Scan ...
XX:XX:XX:XX:XX:XX (unknown)
XX:XX:XX:XX:XX:XX CC2650 SensorTag

SensorTagへのアクセスには、
https://github.com/IanHarvey/bluepy/blob/master/bluepy/sensortag.py
このスクリプトを利用しました。

1
2
3
4
5
6
7
8
9
10
11
# curl -O https://raw.githubusercontent.com/IanHarvey/bluepy/master/bluepy/sensortag.py
# python sensortag.py --all XX:XX:XX:XX:XX:XX
Connecting to XX:XX:XX:XX:XX:XX
('Temp: ', (36.0, 20.125))
('Humidity: ', (36.094970703125, 71.35009765625))
('Barometer: ', (36.85, 1008.52))
('Accelerometer: ', (-0.005859375, 0.16064453125, 0.8984375))
('Magnetometer: ', (21.59120879120879, 88.16410256410256, 49.030036630036626))
('Gyroscope: ', (-0.58746337890625, 0.17547607421875, 1.42669677734375))
('Light: ', 229.20000000000002)
('Battery: ', 83)

コンテナの中からpythonでSensorTagへのアクセスができました。

このスクリプトはBattery Levelの取得にも対応していました。