You are here

ESP8266: 環境センサーBME280の測定値をOLEDディスプレイに出力

ESP8266-LEAFには、I2Cで接続する環境センサーBME280を搭載できます。

BME280を搭載したESP8266-LEAF-R5

ここでは、Tyler Glenn氏が提供しているBME280ライブラリを使用して、温度、湿度、気圧をOLEDディスプレイに表示する方法を示します。

Tyler Glenn氏のBME280ライブラリは、以下のURLで公開されています。

https://github.com/finitespace/BME280

このページからライブラリをダウンロードしてArduino IDEにインストールすることもできますが、Arduino IDEのライブラリマネージャで簡単にインストールすることができます。

ライブラリマネージャを開いて、上部の検索領域にBME280と入力すると、BME280用の幾つかのライブラリ項目が表示されるので、それらのライブラリの中から"by Tyler Glenn"と記載されているライブラリをインストールします。

ライブラリマネージャでのBME280ライブラリのインストール

ESP8266-LEAF-R5に、環境センサーBME280に加えてOLEDディスプレイを搭載し、温度等の計測結果をOLEDディスプレイに表示するプログラム例を示します。

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

// SSD1306をテキストディスプレイとして利用するためのコンストラクタ
U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE) ;
BME280I2C bme ;

#define PRESSURE_PA 0 // パスカル
#define PRESSURE_HPA 1 // ヘクトパスカル
#define PRESSURE_HG 2 // 水銀柱
#define PRESSURE_ATM 3 // 気圧
#define PRESSURE_BAR 4 // バール
#define PRESSURE_TORR 5 // トル

void setup() {
  u8x8.begin() ;
  u8x8.setFont(u8x8_font_artossans8_r) ;
  bme.begin() ;
}

void loop() {
  float temp, hum, pres ;

  // 気圧(hPa)、温度(摂氏)、湿度をまとめて取得
  bme.read(pres, temp, hum, true, PRESSURE_HPA) ;

  u8x8.clear();
  
  u8x8.println("BME280\nEnv. Sensor\n");

  u8x8.print(temp);
  u8x8.println(" C");
  u8x8.print(hum);
  u8x8.println(" % RH");
  u8x8.print(pres);
  u8x8.println(" hPa");

  delay(1000);
}

BME280の測定値をOLEDに表示した例


使用パーツ


チップファミリー: