ショップ

製品概要

  • BME280 温度・湿度・気圧センサーのブレークアウトボードです。
  • SPIもしくはI2CでMCU等と接続します。
  • 電源電圧および信号線電圧は 3.3V です。
  • ボード上にプルアップ抵抗が乗っているので、I2Cで接続する場合には、信号線のプルアップは必要ありません。

ライブラリ

ライブラリのインストール

BME280 用のライブラリは、Arduino IDE のライブラリマネージャを利用してインストールすることができます。ライブラリマネージャの検索フィルタに[BME280] を入力して絞り込むと、BME280 用のライブラリが多数列挙されます。

ここでは、5年以上の実績がある[BME280 by Tyler Glenn] とタイトルが付けられているライブラリを選択してインストールします。
ライブラリマネージャのダイアログ上でインストールするライブラリの欄をクリックすると、インストールボタンが表示されるので、最新バージョンを選択して、ライブラリをインストールします。
なお、このライブラリは、以下のURL で取得することもできます。

ライブラリの利用

ライブラリのインストール後、Arduino IDE メニューから[ファイル] ) [スケッチ例] を選択すると、リストにBME280 フォルダが追加されているのが確認できます。BME280 フォルダの中を確認するといくつかのサンプルスケッチがあり、選択して実行することができます。
マイクロファンのボード製品では、BME280 モジュールはI2C で接続されているので、サンプルスケッチのうち[BME 280 I2C Test] を選択します。このサンプルスケッチは、温度、湿度、気圧を1.5 秒ごとに取得してシリアルモニタに出力します。
シリアルモニタの出力が文字化けする場合には、setup() 内で指定したボーレートと、シリアルモニタのボーレートが合致していることを確認してください。

基本的に上記のサンプルスケッチと同じですが、エッセンスを抜き出したスケッチを以下に示します。

#include <BME280I2C.h>
#include <Wire.h>

#define SERIAL_BAUD 115200

BME280I2C bme;

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

  Wire.begin();

  while(!bme.begin())
  {
    Serial.println("Could not find BME280 sensor!");
    delay(1000);
  }
}

void loop()
{
   float temp, hum, pres;
   BME280::TempUnit tu(BME280::TempUnit_Celsius);
   BME280::PresUnit pu(BME280::PresUnit_hPa);

   bme.read(pres, temp, hum, tu, pu);

   Serial.print("Sec: " + String(millis()/1000));
   Serial.print("\t\tTemp: " + String(temp) + "°C");
   Serial.print("\t\tHumidity: " + String(hum) + "% RH");
   Serial.println("\t\tPressure: " + String(pres) + " hPa");

   delay(5000);
}

関連記事