BOSCH社のBME280は、I2C/SPIで接続して温度・湿度・気圧が測定できるセンサーモジュールです。Raspberry Piでは、簡単なスクリプトでデータの取得ができます。
以下の説明は、I2Cが使用できるようセットアップされていることを前提としています。
I2Cのセットアップ方法については参考書やインターネットの情報を参考にしてください。
センサーをRaspberry Piに接続したら、念のためI2Cアドレスを確認します。
例ではSDOをGNDに接続したので、I2Cアドレスは 0x76 だということがわかります。
次にデータ取得用のプログラムを用意します。測定データの計算は複雑で、一から作成するのはとても大変です。インターネット上で公開されているライブラリを使用するのが簡単です。様々なものがありますが、今回は例としてAdafruitのライブラリを使用することにします。
はじめにAdafruit_Python_GPIOをインストールします。
次にAdafruit_Python_BME280をインストールします。Adafruit_BME280.pyファイルをダウンロードします。
最後にメインのプログラムを作成します。
I2C_ADDR = のところがI2Cアドレスです。実際の使用環境に合わせて書き換えてください。
ファイル名:bme280.py
プログラムを保存したら実行します。
このように簡単に温度・湿度・気圧を測定することができました。
[PR]
I2C接続 BME280使用 温度/湿度/気圧センサーモジュール・キット【メール便可】 1,280円(税込1,382円)
以下の説明は、I2Cが使用できるようセットアップされていることを前提としています。
I2Cのセットアップ方法については参考書やインターネットの情報を参考にしてください。
センサーをRaspberry Piに接続したら、念のためI2Cアドレスを確認します。
$ i2cdetect -y 1
(省略)
70: -- -- -- -- -- -- 76 --
例ではSDOをGNDに接続したので、I2Cアドレスは 0x76 だということがわかります。
次にデータ取得用のプログラムを用意します。測定データの計算は複雑で、一から作成するのはとても大変です。インターネット上で公開されているライブラリを使用するのが簡単です。様々なものがありますが、今回は例としてAdafruitのライブラリを使用することにします。
はじめにAdafruit_Python_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
次にAdafruit_Python_BME280をインストールします。Adafruit_BME280.pyファイルをダウンロードします。
$ wget https://raw.githubusercontent.com/adafruit/Adafruit_Python_BME280/master/Adafruit_BME280.py
最後にメインのプログラムを作成します。
I2C_ADDR = のところがI2Cアドレスです。実際の使用環境に合わせて書き換えてください。
ファイル名:bme280.py
# -*- coding: utf-8 -*-
from Adafruit_BME280 import *
## 使用デバイスのアドレス
I2C_ADDR = 0x76
## 測定
s = BME280(mode=BME280_OSAMPLE_1, address=I2C_ADDR)
data_t = s.read_temperature()
data_h = s.read_humidity()
data_p = s.read_pressure() / 100
## 出力
print "Temp = {0:4.2f} deg C".format(data_t)
print "Humidity = {0:4.2f} %".format(data_h)
print "Pressure = {0:4.2f} hPa".format(data_p)
プログラムを保存したら実行します。
$ python bme280.py
Temp = 26.30 deg C
Humidity = 49.81 %
Pressure = 1005.54 hPa
このように簡単に温度・湿度・気圧を測定することができました。
[PR]
I2C接続 BME280使用 温度/湿度/気圧センサーモジュール・キット【メール便可】 1,280円(税込1,382円)
python bme280.py
Traceback (most recent call last):
File "bme280.py", line 8, in <module>
s = BME280(mode=BME280_OSAMPLE_1, address=I2C_ADDR)
File "/home/pi/Adafruit_BME280.py", line 131, in __init__
self._device = i2c.get_i2c_device(address, **kwargs)
File "build/bdist.linux-armv7l/egg/Adafruit_GPIO/I2C.py", line 64, in get_i2c_device
TypeError: __init__() got an unexpected keyword argument 'mode'
と、このようなエラーが出て温度などが表示されません、何が問題でしょうか、教えてください。