BOSCHの温湿度・気圧センサーをArduinoに繋いでみた


2019年 06月 08日

部屋の環境、快適さを調べるには、温度、湿度、気圧、二酸化炭素の4つのデータが重要であろう。

前回、二酸化炭素濃度センサーについて書いたので、今回は残りの3つをまとめて計測してみよう。

世の中、この3つを同時に計測してくれる、とても小さなセンサーがあるので、入手してみた。

AE-BME280-AKIZUKI.JPG

画像は、秋月電子のサイト「BME280使用 温湿度・気圧センサモジュールキット」より拝借

秋月のサイトには、マニュアルとデータシートが用意されている。
Bosch Sensortecには、BME280 Integrated Environmental Unit のページが用意されている

そして、ちょっとネットで検索したら、とても懇切丁寧に使い方を書いているページ How to Hookup BME280 Sensor to Arduino using I2C があったので、参考にした。
英語のページだが、英語を読まなくても全てが分かるような素晴らしいページだった。

そして出来上がったのが次図である。
左右の電源を除くと、たった2本でArduinoに繋いでいるだけだ。

DSCN4648−600.JPG1pinと3pinをジャンパ線で結んで、I2Cの接続方法にしてある。

プログラムはオリジナルを微かに変更した程度である。

#include  <Wire.h>
#include  <cactus_io_BME280_I2C.h>

// Create BME280 object
// BME280_I2C bme; // I2C using address 0x77
BME280_I2C bme(0x76); // I2C using address 0x76

void setup() {

Serial.begin(115200);
Serial.println("Pressure\tHumidity\tTemp");

if (!bme.begin()) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}

bme.setTempCal(-1);// Temp was reading high so subtract 1 degree
delay(1000);
}

void loop() {
bme.readSensor();

Serial.print(bme.getPressure_MB()); Serial.print(" mb\t");
Serial.print(bme.getHumidity()); Serial.print(" %\t\t");
Serial.print(bme.getTemperature_C()); Serial.println(" C");

delay(5000);    // 5 second delay
}

そして、こちらが Arduino IDE のシリアルモニタに表示された内容である。

Pressure	Humidity	Temp
1007.04 mb	51.52 %		27.23 C
1007.03 mb	51.62 %		27.23 C
1007.01 mb	51.49 %		27.26 C
1007.04 mb	51.42 %		27.26 C
1007.00 mb	51.35 %		27.29 C
1007.07 mb	51.29 %		27.30 C
1007.04 mb	51.32 %		27.27 C
1007.01 mb	51.35 %		27.27 C
1006.99 mb	51.39 %		27.25 C

こんな感じで、さまざまなセンサーをArduinoに繋ぐことができる

よほど変なセンサーでない限り、色々な情報がネットに溢れているので、初心者でも何とかなるものである。