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ピンです。

スポンサーリンク

スケッチ

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

#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);
}
スポンサーリンク

シリアルモニタ

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

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

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

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

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

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

タイトルとURLをコピーしました