BME-280で温湿度、気圧測定

更新日 2021-10-04 (月) 12:17:56
作成日 2021年10月04日

ArdiunoでBME-280を動作して温湿度、気圧を測定してみる。出力はシリアルモニタに表示する。

Ardiunoは5Vロジックで、BME-280は3.3Vロジックなので以下の変換器を入れる

変換器

4チャンネル IIC I2C ロジック レベル 変換 双方向モジュール 5V Arduinoに対応

構成

    -------------            -------------------            ---------------
    |           |            |                 |            |             |
    | Ardiuno   |============| I2C 3V⇔5V 変換 |============|  BME-280    |
    |           | 5V Logic   | 双方向モジュール| 3.3V Logic |             |
    -------------            -------------------            ---------------
  • BME-280 I2C アドレス : 0x76

ライブラリDownload

SparkFun_BME280_Arduino_Libraryを以下からDL

プログラム

測定条件を設定して、sensor.readTempC()を呼びだしているが、関数を理解していないので、これで補正が適用されているか不明。(ここでは補正されていると思っている)

//
// BME280をSparkFunBME280.hを使用して利用する
// BME280のI/F は I2C
 

#include <Wire.h>
#include "SparkFunBME280.h"

BME280 sensor;

void setup() {
  Serial.begin(9600);

  while (!Serial);

  // 測定パラメータを設定
  sensor.settings.commInterface = I2C_MODE; 
  sensor.settings.I2CAddress = 0x76;
  sensor.settings.runMode = 3; //0xF4(ctrl_mess) 1-0bit 11 → 通常モード
  sensor.settings.tStandby = 4; //0xF5(config) 2-0bit 0 → 500ms
  sensor.settings.filter = 0;  // 0xF5(config) 4-2bit 000 → フィルタOFF
  sensor.settings.tempOverSample = 1 ;
  sensor.settings.pressOverSample = 1;
  sensor.settings.humidOverSample = 1;
  
  delay(10); 
  Wire.begin();
  sensor.beginI2C();  // Wire を用いて I2C 接続開始
}

void loop() {
  Serial.print("Temp: ");
  Serial.print(sensor.readTempC(), 2);  //小数点第2位まで

  Serial.print(" °C, Humidity: ");
  Serial.print(sensor.readFloatHumidity(), 2);

  Serial.print(" %, Pressure: ");
  Serial.print(sensor.readFloatPressure() / 100.0, 1);
  Serial.println(" hPa");

  delay(2000);
}

実行結果

Temp: 30.62 °C, Humidity: 48.90 %, Pressure: 1020.8 hPa
Temp: 30.63 °C, Humidity: 49.16 %, Pressure: 1020.8 hPa
Temp: 30.62 °C, Humidity: 49.14 %, Pressure: 1020.8 hPa

参考


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-10-04 (月) 12:17:56 (12d)