M5Stack と Grove CO2&温度&湿度センサー SCD30 をつないで計測するメモ

M5Stack と Grove CO2&温度&湿度センサー SCD30 をつないで計測するメモです。

最近 Grove のセンサーを調べていたら CO2 センサーが安くなりつつ扱いやすそうだったので、私は以下で購入しました。

Arduino用 Grove CO2&温度&湿度センサー(SCD30)- Grove CO2 & Temperature & Humidity Sensor for Arduino 3 in 1 – Seeed Studio

1 台買ってみて実際扱いやすかったので 2 台目も購入しました。と思ったら、3/8 に スイッチサイエンスさんから Grove – SCD30搭載 CO2・温湿度センサ(Arduino用) として発売してうれしい限り。

こちらの説明 に書かれている、

image

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

image

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

image

標準的な大きさの 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 だけでなくて温湿度も取れるのでよいですね。

image