ラズパイでオフィス環境をセンシングしてグラフ化するのソフト準備編です。
この記事ではハード編で接続した次の3つのセンサーから値を取ってみます。
BME280から値を取る
AdafruitのBME280向けライブラリを使わせてもらいます。
使い方は上記のREADMEに記載されていますが、ざっくりと次の通りです。
- AdafruitのGPIOライブラリに依存しているので、最初にそちらをインストールします。
sudo apt-get update
sudo apt-get install build-essential python-pip python-dev python-smbus git
git clone https://github.com/adafruit/Adafruit_Python_GPIO.git
cd Adafruit_Python_GPIO
sudo python setup.py install
- BME280向けライブラリをダウンロードしてAdafruit_BME280.py内の I2Cアドレス を修正します。
(修正前)
# BME280 default address.
BME280_I2CADDR = 0x77
(修正後)
# BME280 default address.
BME280_I2CADDR = 0x76
- サンプルを実行してみます。
pi@raspi-is:/tmp/Adafruit_Python_BME280 $ python ./Adafruit_BME280_Example.py
Temp = 27.361 deg C
Pressure = 1015.87 hPa
Humidity = 39.26 %
TSL2561から値を取る
sim0nx/tsl2561 を使わせてもらいます。
使い方は上記のREADMEに記載されていますが、ざっくりと次の通りです。
- インストールします。
pip install tsl2561
- サンプルも頂きます。
pi@raspi-is:/tmp $ cat example.py
from tsl2561 import TSL2561
if __name__ == "__main__":
tsl = TSL2561(debug=True)
print(tsl.lux())
- サンプルを実行してみます。
pi@raspi-is:/tmp $ python ./example.py
394
MH-Z19から値を取る
先人の知見を参考にさせて頂き、そこから最小限のところを抜き出してみました。
https://qiita.com/UedaTakeyuki/items/c5226960a7328155635f
https://github.com/UedaTakeyuki/slider/blob/master/mh_z19.py
- 最小限のところを抜粋
mh.py
# -*- coding: utf-8 -*-
import serial
ser = serial.Serial('/dev/ttyS0',
baudrate=9600,
bytesize=serial.EIGHTBITS,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
timeout=1.0)
ser.write("\xff\x01\x86\x00\x00\x00\x00\x00\x79")
s=ser.read(9)
print ord(s[2])*256 + ord(s[3])
- 実行してみます。
pi@raspi-is:~ $ python mh.py
796
以上で各センサーから値が取れました。