LoginSignup
1
2

More than 5 years have passed since last update.

Raspberry PI 3 と RPZ-IR-Sensor を利用してセンサーの値を取得する #IoT #I2C

Last updated at Posted at 2017-11-25

以前の記事(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 本体の発熱影響を受けるとか、、、直接つける場合はあんまり意味ないですね。
Kobito.4ecUxO.png

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2