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