以前の記事(Raspberry PI 3 と RPZ-IR-Sensor を利用して家電を操作)で照明を操作しましたが、今回は RPZ-IR-Sensor の他のセンサーを利用してみようかと思います。
センサーをサンプルプログラムから確認
例によって公式ページのサンプルを動かしてみます。
http://indoor.lolipop.jp/IndoorCorgiElec/RPZ-IR-Sensor.php
ダウンロード
$ wget http://indoor.lolipop.jp/IndoorCorgiElec/RPZ-IR-Sensor/rpz-sensor.zip
--2017-11-25 19:11:14-- http://indoor.lolipop.jp/IndoorCorgiElec/RPZ-IR-Sensor/rpz-sensor.zip
indoor.lolipop.jp (indoor.lolipop.jp) をDNSに問いあわせています... 157.7.107.148
indoor.lolipop.jp (indoor.lolipop.jp)|157.7.107.148|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 29245 (29K) [application/zip]
`rpz-sensor.zip' に保存中
rpz-sensor.zip 100%[============================================================================================>] 28.56K --.-KB/s in 0.1s
2017-11-25 19:11:15 (230 KB/s) - `rpz-sensor.zip' へ保存完了 [29245/29245]
解凍
$ unzip rpz-sensor.zip
Archive: rpz-sensor.zip
creating: rpz-sensor/
inflating: rpz-sensor/readme.txt
creating: rpz-sensor/cpp/
inflating: rpz-sensor/cpp/rpz-sensor
inflating: rpz-sensor/cpp/BME280I2C.o
inflating: rpz-sensor/cpp/TSL2561I2C.o
inflating: rpz-sensor/cpp/BME280I2C.h
inflating: rpz-sensor/cpp/TSL2561I2C.cpp
inflating: rpz-sensor/cpp/Makefile
inflating: rpz-sensor/cpp/main.o
inflating: rpz-sensor/cpp/BME280I2C.cpp
inflating: rpz-sensor/cpp/TSL2561I2C.h
inflating: rpz-sensor/cpp/main.cpp
creating: rpz-sensor/python3/
inflating: rpz-sensor/python3/rpz_sensor.py
inflating: rpz-sensor/python3/tsl2561.py
inflating: rpz-sensor/python3/bme280i2c.py
解凍したディレクトリ内に readme.txt があるので、こちらの内容通りに python のプログラムを実行してみます。
rpz_sensor.py の実行
BME280(温湿度、気圧センサー) と TSL2561(光(照度)センサー) に同時アクセスできる rpz_sensor.py を実行するには docopt パッケージが必要なためインストールします。
docopt インストール
$ sudo pip3 install docopt
Collecting docopt
Downloading docopt-0.6.2.tar.gz
Building wheels for collected packages: docopt
Running setup.py bdist_wheel for docopt ... done
Stored in directory: /root/.cache/pip/wheels/b2/16/5f/c33a2bb5f2dce71205f8e65cbfd05647d79d441282be31fd82
Successfully built docopt
Installing collected packages: docopt
Successfully installed docopt-0.6.2
実行
電気をつけた状態
$ ./rpz_sensor.py
BME280 0x77
Temp : 26.5C
Pressure : 1021.8hPa
Humidity : 26.5%
TSL2561
Lux : 131.4lux
電気を消した状態
$ ./rpz_sensor.py
BME280 0x77
Temp : 28.3C
Pressure : 1022.7hPa
Humidity : 23.6%
TSL2561
Lux : 0.0lux
実行時にエラーが出る場合
以下の記事を参考にして、Raspberry Pi の設定でI2Cが無効になっていないことを確認してください。
Check! Raspberry Pi で I2C を使いたい(トラブルシューティング)
まとめ
温度以外(気圧、湿度、照度)については問題なく検知できてるようですが、温度はやたら暑い感じなっています。
公式ページをよく読むと Raspberry Pi 本体の発熱影響を受けるとか、、、直接つける場合はあんまり意味ないですね。