YAS's VB.NET Tips
 
ラズベリーパイ活用
ラズベリーパイ活用 >> 記事詳細

2019/08/12

BME280で温度・湿度・気圧を測る

| by:YAS
 秋月で買った温度・湿度・気圧センサーBME280をラズパイに繋いでみました。
 校正をしていないLM335Zよりも正確そうな数値が得られました。

☆材料
 ブレッドボード BB-801 秋月 P-05294200円 
 ラズベリーパイ用ブレッドボード接続キット 秋月 K-08892450円 
 BME280使用
 温湿度・気圧センサモジュールキット
 秋月 K-09421 1,080円 
 ブレッドボードジャンパーワイヤセット 秋月 C-05159 (60本)220円 
 合計  1,950円 

☆回路図


☆できあがり


☆チェック
 
①「i2cdetect -y 1」でアドレス76が表示されれば認識されています。
$ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- 76 --

☆ライブラリのインストール
 
①smbus2をインストールする。(Python3を使っているときは「pip3」でインストールする。)
$ sudo pip3 install smbus2
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting smbus2
Using cached https://www.piwheels.org/simple/smbus2/smbus2-0.2.3-py2.py3-none-any.whl
Installing collected packages: smbus2
Successfully installed smbus2-0.2.3
 ②RPi.bme280をインストールする。(Python3を使っているときは「pip3」でインストールする。)
$ sudo pip3 install RPi.bme280
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting RPi.bme280
  Using cached https://files.pythonhosted.org/packages/8a/55/2c738564ceb478952f15d6331759c0ca4f4d518e8e44689766deac9f42de/RPi.bme280-0.2.3-py2.py3-none-any.whl
Requirement already satisfied: smbus2 in /usr/local/lib/python3.7/dist-packages (from RPi.bme280) (0.2.3)
Installing collected packages: RPi.bme280
Successfully installed RPi.bme280-0.2.3

☆テストコード
 RPi.bme280ライブラリを使えばとても簡単なコードで温度・湿度・気圧が取得できます。(SWITCHSCIENCEさんのサンプルコードとほぼ同じ数値が得られました。「ほぼ」なのは,同時刻に取得した数値ではないからで,まったく同じといってよいと思います。)
 
参考にしたWebページによると,この温度は湿度・気圧を求めるときの補正用に使うセンサー自身の温度であって,周辺の環境の温度とは異なるとのことです。校正していないLM335Zと比べると,確かに3℃近く高い温度を示しますが,市販の温度計や体温計などを近くに置いてみると,BME280に近い温度を示します。気温・湿度・気圧のロガーを作る際に,気温だけLM335Zで測るようにしようかと思いましたが,校正するのも大変そうなので,BME280の温度をそのまま使うことにします。
import smbus2 
import bme280
import time

port = 1
address = 0x76
bus = smbus2.SMBus(port)
calibration_params = bme280.load_calibration_params(bus, address)

while True:
    data = bme280.sample(bus, address, calibration_params)
    print("{0:%Y年%m月%d日 %H時%M分%S秒}".format(data.timestamp))
    print(" 温度:{0:.2f} ℃".format(data.temperature))
    print(" 湿度:{0:.2f} %".format(data.humidity))
    print(" 気圧:{0:.2f} hPa\n".format(data.pressure))
    time.sleep(1)
>>> %Run BME280_Rpi.bme280.py

  2019年xx月xx日 xx時xx分xx秒
   温度:32.58 ℃
   湿度:58.63 %
   気圧:1005.91 hPa

  2019年xx月xx日 xx時xx分xx秒
   温度:32.57 ℃
   湿度:58.55 %
   気圧:1005.87 hPa
 上の直後にSWITCHSCIENCEさんのサンプルコードを実行した結果が下です。ほぼ同じ値です。
>>> %Run BME280_SRpi.bme280.py

  temp : 32.56  ℃
  pressure : 1005.89 hPa
  hum :  58.47 %


☆参考にしたwebページ
・RPi.bme280 · PyPI
  https://pypi.org/project/RPi.bme280/

・BME280/bme280_sample.py at master · SWITCHSCIENCE/BME280 · GitHub
 https://github.com/SWITCHSCIENCE/BME280/blob/master/Python27/bme280_sample.py

・5ドル!ラズパイ・ゼロ(Raspberry pi Zero)でIoT(25) ディジタル湿度センサ3 I2C BME280 | 電子工作の環境向上
 https://www.denshi.club/pc/raspi/5raspberry-pi-zeroiot25-3-i2c-bme280.html

・ツール・ラボ » 第28回 温湿度・気圧センサ(BME280) 〜仕様概要〜
 https://tool-lab.com/make/pic-practice-28/

17:00