BME280 とesp32で温度・湿度・気圧を測定する

今までarduino megaでbme280を動かしていたのですがesp32に変えたところそのままでは動かないことが判明しました。

そこでesp32でbme280を使えるようにするまでの備忘録です。

スポンサーリンク

BME280

BME280はあのBOSCH社が開発したセンサーで、温度・湿度・気圧・高度をコンマ2桁まで計測する優れものです。

BME280自体は2.5ミリ角の米粒よりも小さいチップで、一般に販売されているBME280はこのチップを組み込んだシールドとして販売されています。

米粒を置いてみました。 (^^;

『 BME280 とesp32で温度・湿度・気圧を測定する 』 ..販売されています。米粒を置いてみました。 (^^;..

お米の上の□がボッシュ社のbme280です。

[amazon_link asins=’,B01M98R905,B07ZK697GK’ template=’ProductCarousel’ tag=’toraberuko-22′ marketplace=’JP’ link_id=’1e988895-f60c-490b-a739-ae99efcdd40a’]

adafruit bme280ライブラリ

esp32でbme280を使うにはadafruit bme280ライブラリを使うのが簡単です。

arduino IDEを起動し、スケッチ ⇒ ライブラリをインクルード ⇒ ライブラリを管理 へと進みます。

ライブラリマネージャにadafruit bme280と入力しライブラリをダウンロードします。

『 BME280 とesp32で温度・湿度・気圧を測定する 』 ..スケッチ ⇒ ライブラリをインクルード ⇒ ライブラリを管理 へと進みます。ライブラリマネージャにadafruit bme280と入力しライブラリをダウンロードします。..

次に Adafruit Unified Sensor と入力しライブラリをダウンロードします。

『 BME280 とesp32で温度・湿度・気圧を測定する 』 ..次に Adafruit Unified Sensor と入力しライブラリをダウンロードします。..

(画像はすでにダウンロード済みです)

これでarduino開発環境(arduino IDE)側の準備は終わりです。

BME280の配線

BME280はI2CとSPI接続の両方をサポートしています。

SPIの方が読み込みが早いそうですが手持ちのBME280がSCL SDAピンですのでI2C接続をご紹介します。

BME280 配線

VCC ⇒ 3V3

GND ⇒ GND

SCL ⇒ GPIO22

SDA ⇒ GPIO21

他のピンは使わない

GPIO22はSCL,GPIO21はSDAピンです。

スケッチ

スケッチはコピペでそのまま使用出来ます。

[php]#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme;
unsigned long delayTime;
float ondo;
float kiatu;
float koudo;
float shitudo;
void setup() {
Serial.begin(115200);
bool status;
status = bme.begin(0x76);
if (!status) {
Serial.println("BME280 sensorが使えません");
while (10);
}
delayTime = 1000;
}
void loop() {
ondo=bme.readTemperature();
kiatu=bme.readPressure() / 100.0F;
koudo=bme.readAltitude(SEALEVELPRESSURE_HPA);
shitudo=bme.readHumidity();
Serial.print("温度 ;");
Serial.print(ondo);
Serial.println(" °C");

Serial.print("気圧 ;");
Serial.print(kiatu);
Serial.println(" hPa");
Serial.print("高度 ;");
Serial.print(koudo);
Serial.println(" m");
Serial.print("湿度 ;");
Serial.print(shitudo);
Serial.println(" %");
Serial.println();
delay(delayTime);
}[/php]

シリアルモニタ

実際の計測状況はこのようになりました。

『 BME280 とesp32で温度・湿度・気圧を測定する 』 ..実際の計測状況はこのようになりました。..

ボッシュ社は車関連の世界的大手ですので車載センサーとして高度の計測も標準装備ですが家庭菜園やビニールハウスの管理ではあまり必要性はないようですね。

湿度はビニールハウスの管理に役立ちそうです。また自宅の空調管理にも使えそうです。

気圧は降雨予報に役立ちます。天気が良くても急激な気圧の低下は必ず数時間後に雨になります。

雨が降っていても気圧が上がってくれば天気も良くなります。(カズが実証済みです。 (^^; )

スポンサーリンク