BOSHE の 温湿度気圧センサ BME280
(Final data sheet BME280 Combined humidity and pressure sensor)
https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bme280-ds002.pdf
- 電源電圧が 1.71 V to 3.6 V
- 消費電流が毎秒温湿度圧力計測で 3.6 µA
- スリープ下での消費電流が 0.1 µA
と、ボタン電池などで動かすのに最適なセンサです。
今回は、これを ESP32 で動かしてみます。
環境
- Arduino 1.8.10 for Linux
- esp32 by Espressif System Version 1.0.3
- WEMOS LOLIN32
- 秋月電子通商 AE-BME280
秋月電子のBME280モジュールキット
「BME280使用 温湿度・気圧センサモジュールキット: センサ一般 秋月電子通商-電子部品・ネット通販」
http://akizukidenshi.com/catalog/g/gK-09421/
(保管が悪くてラベルが汚くなってしまいました)
今回はこれを使ってみます。
GROVE 化
今回 GROVE 接続するために、GROVE コネクタを工夫して取り付けてみました。
設定
秋月電子のモジュールはI2C用に4.7kΩのプルアップ抵抗がオンボードで装着されています。今回はそれらを有効にしたうえ、I2Cでアドレス 0x76 の設定にしました。
設定箇所 | 設定項目 | 設定値 | 設定値の意味 |
---|---|---|---|
J1 | I2C SDAプルアップ | ショート | 有効 |
J2 | I2C SCLプルアップ | ショート | 有効 |
J3 | インターフェース | ショート | I2C |
SDO | I2Cアドレス | GNDに接続 | 0x76 |
Arduino 用プログラム
便利なライブラリが多く有りますが、今回は他マイコンボードで動かすためのパラメーター取得が目的なのでライブラリ使わずに動かしている以下のプログラムを使用しました。
スイッチサイエンスのおまけページ
「BME280搭載 温湿度・気圧センサモジュールの使い方」
http://trac.switch-science.com/wiki/BME280
ESP32 で動かす
先のプログラムはArduino Unoの実態配線図と共に掲載されていますが、ESP32でもそのまま使えます。
配線については以下のようにします。
信号名 | AE-BME280 | GROVE端子/ケーブル | ESP32 GPIO |
---|---|---|---|
SCL | SCK | Pin1/黃 | 22 |
SDA | SDI | Pin2/白 | 21 |
(電源/VDD) | VDD | Pin3/赤 | (3.3V) |
(電源/GND) | GND | Pin4/黒 | (GND) |
GROVEケーブルの色は、M5Stack用などだと異なるので注意!
測定パラメータ
元プログラムで記述されている以下の設定をそのまま使用します。
- スタンバイ時間 1000ms
- IIRフィルタ オフ
- 温度測定オーバーサンプリング x 1
- 湿度測定オーバーサンプリング x 1
- 気圧測定オーバーサンプリング x 1
- Normalモード
実行結果
TEMP : 23.93 DegC PRESS : 640.62 hPa HUM : 93.27 %
TEMP : 23.93 DegC PRESS : 640.62 hPa HUM : 93.27 %
TEMP : 23.93 DegC PRESS : 640.62 hPa HUM : 93.27 %
TEMP : 23.93 DegC PRESS : 640.62 hPa HUM : 93.27 %
未検証
「BME280 を M5stack で使って再びハマったこと、BOSCH 純正ドライバの使用について | mgo-tec電子工作」
https://www.mgo-tec.com/blog-entry-bosch-driver-bme280-m5stack-esp32.html
これによると、ESP32 と BME280,I2C の組み合わせだと安定性に欠けることがあるようです。
この方はその後解決したらしいのですが、今回使用したプログラムは同様の対策を行う必要性があるのかも知れません。
今回は、今回は他マイコンボードで動かすためのパラメーター取得が目的なのでこの件は未検証のままです。