M5Stack と Grove CO2&温度&湿度センサー SCD30 をつないで計測するメモ
M5Stack と Grove CO2&温度&湿度センサー SCD30 をつないで計測するメモです。
最近 Grove のセンサーを調べていたら CO2 センサーが安くなりつつ扱いやすそうだったので、私は以下で購入しました。
1 台買ってみて実際扱いやすかったので 2 台目も購入しました。と思ったら、3/8 に スイッチサイエンスさんから Grove - SCD30搭載 CO2・温湿度センサ(Arduino用) として発売してうれしい限り。
こちらの説明 に書かれている、

の、性能比較は分かりやすいですよね。

スポンジの保護材に包まれて届いたので、結構デリケートな代物かもしれません。たしかに、レンズ?的なものもあるので、衝撃には弱そうな気がします。取り扱いには気を付けよう。

標準的な大きさの Grove リレー と比較すると、ちょっと大きめです。
実際のコード
Grove 湿度、温度とCO2センサー(SCD30) - Seeedウィキ(日本語版) の記事を参考にして、 Seeed-Studio/Seeed_SCD30: carbon dioxide sensor からライブラリをダウンロードしてインストールして使いました。
M5Stack Basic ではこのようにプログラムを書きました。
#include <M5Stack.h> // M5StackBasic
#include "SCD30.h"
void setup() {
M5.begin();
M5.Lcd.setTextColor(WHITE);
M5.Lcd.clear(BLACK);
M5.Lcd.setCursor(0,0);
M5.Lcd.setTextSize(2);
M5.Lcd.println("[Seeed SCD30]");
M5.Lcd.println("--------------------");
M5.Lcd.println("> start");
Wire.begin();
Serial.begin(115200);
scd30.initialize();
}
void loop() {
float result[3] = {0};
if (scd30.isAvailable()) {
scd30.getCarbonDioxideConcentration(result);
M5.Lcd.clear(BLACK);
M5.Lcd.setCursor(0,0);
M5.Lcd.println("[Seeed SCD30]");
M5.Lcd.println("--------------------");
M5.Lcd.print("CO2 : ");
M5.Lcd.print(result[0]);
M5.Lcd.println(" ppm");
M5.Lcd.println("--------------------");
M5.Lcd.print("Temperature : ");
M5.Lcd.print(result[1]);
M5.Lcd.println(" C");
M5.Lcd.println("--------------------");
M5.Lcd.print("Humidity : ");
M5.Lcd.print(result[2]);
M5.Lcd.println(" %");
M5.Lcd.println("--------------------");
}
delay(2000);
}
実際に動かしてみると、このように計測できました。CO2 だけでなくて温湿度も取れるのでよいですね。
