部屋の環境、快適さを調べるには、温度、湿度、気圧、二酸化炭素の4つのデータが重要であろう。
前回、二酸化炭素濃度センサーについて書いたので、今回は残りの3つをまとめて計測してみよう。
世の中、この3つを同時に計測してくれる、とても小さなセンサーがあるので、入手してみた。
画像は、秋月電子のサイト「BME280使用 温湿度・気圧センサモジュールキット」より拝借
秋月のサイトには、マニュアルとデータシートが用意されている。
Bosch Sensortecには、BME280 Integrated Environmental Unit のページが用意されている
そして、ちょっとネットで検索したら、とても懇切丁寧に使い方を書いているページ How to Hookup BME280 Sensor to Arduino using I2C があったので、参考にした。
英語のページだが、英語を読まなくても全てが分かるような素晴らしいページだった。
そして出来上がったのが次図である。
左右の電源を除くと、たった2本でArduinoに繋いでいるだけだ。
1pinと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に繋ぐことができる
よほど変なセンサーでない限り、色々な情報がネットに溢れているので、初心者でも何とかなるものである。