Contents menu
※この記事は2020年2月14日に更新されました。
前回の記事ではM5Stackを使って、気温と湿度を計測しました。
今回は気圧センサーを追加して、気温・湿度・気圧計を作ってみたいと思います。
1、まずは、気圧センサーを用意

GROVE – 気圧センサ(BMP280)というセンサーなのですが、こちらもスイッチサイエンスさんで2020年2月14日現在は在庫切れとなっています。
こちらはGROVEケーブルでM5Stackと接続するだけで設置完了です。
ミニ四駆より簡単です。
2、プログラムを書く

前回の記事で開発環境は整っているかと思いますので、今回もArduino IDEを使います。
本日の記事も下島先生のみんなのM5Stack入門という書籍を参考にさせていただいています。
最初にGROVE – 気圧センサ(BMP280)のライブラリをインストールします。
Arduino IDE 「ツール」→「ライブラリを管理」をクリック。
ライブラリマネージャーを立ち上げて
「grove bmp280」と入力し、「Grove – Barometer Sensor BMP280 by Seeed Studio」というライブラリをインストールします。
#include <M5Stack.h>
#include "Adafruit_Si7021.h"
#include "Seeed_BMP280.h"
#include <Wire.h>
Adafruit_Si7021 sensor = Adafruit_Si7021();
BMP280 bmp280;
void setup(){
M5.begin();
if(!sensor.begin()){
Serial.println("not find Si7021");
while (true);
}
if(!bmp280.init()){
Serial.println("broken!");
while (true);
}
M5.Lcd.setTextSize(3);
}
void loop(){
float temp = sensor.readTemperature();
float humid = sensor.readHumidity();
float bmp280temp = bmp280.getTemperature();
uint32_t pressure = bmp280.getPressure();
float altitude = bmp280.calcAltitude(pressure);
M5.Lcd.setCursor(40,30);
M5.Lcd.printf("Temp: %5.1f'C", temp);
M5.Lcd.setCursor(40,70);
M5.Lcd.printf("Humid: %5.1f%%", humid);
M5.Lcd.setCursor(40,110);
M5.Lcd.printf("Temp: %5.1f'C", bmp280temp);
M5.Lcd.setCursor(40,150);
M5.Lcd.printf("Preess: %dhPa", pressure / 100);
M5.Lcd.setCursor(40, 190);
M5.Lcd.printf("Alti: %5.2fm", altitude);
delay(1000);
}
↑↑↑みんなのM5Stack入門(P110)引用
さて、実行結果はどうなったでしょうか?

このように、上から前回で使ったセンサーでのSi7021の温度。
次にSi7021の湿度。
3段目は今回使用したBMP280の温度。
4段目にBMP280で計測した気圧。
5段目は気圧から計算した高度が表示されています。
筆者は集合住宅の9階に住んでいるので、高度はだいたいこんなもんでしょうか。
まとめ
気圧計に関しては正直いらないかな~と思ったのですが、一応下島先生の書籍で紹介されていたので、試してみたくなり購入しました。
ここから何を創るかはアイディア次第だと思います。
筆者はとりあえず気圧に関してはまだイメージができないため、温度湿度で進めていきたいと思います。
次の記事では、特定の条件下でLEDランプを光らせるプログラムを創るため、まずはLEDを光らせなければいけません。
LEDとブレッドボードを紹介したいと思います。