top of page

M5 Stack SeriesのAtom S3をArduino IDEでTVOC/eCO2を動かしてみました

M5 Stack SeriesのAtom S3をArduino IDEでTVOC/eCO2を動かしてみました。


Atom S3をArduino IDEで動かす設定についてはこちらをご確認ください。



設定が終わったら、TVOC/eCO2とAtom S3をつないでPCに接続します。



PCへの接続が終わったらスケッチを準備します。


TVOC/eCO2 Document とGitHubのリンクは下記の通りです。


Document


GitHub



ライブラリーのインストールされてるかの確認を行います。


Tools > Manage Libraries...を選択します。


Adafruit_SGP30で検索して、Adafruit SGP30 Sensor by Adafruitがインストールされていない場合はインストールします。



スケッチの大幅変更を行います。


なお、スケッチの変更はM5Unifiedへの移植のポイントにならって下記の項目を書き換えています。


また、Display表示に関する項目については下記のリンクのHelloWorldを参考にしています。



変更前

変更後

変更箇所①

#include <M5Atom.h>

#include <M5Unified.h>

変更箇所②

M5.begin(true, false, true, true);

auto cfg = M5.config();

cfg.internal_imu = true;


M5.begin(cfg);

​M5.Lcd.setTextSize(2);

M5.Lcd.setCursor(80, 0);

M5.Lcd.println("TVOC TEST");

if (!sgp.begin()) {

M5.Lcd.println("Sensor not found");

M5.Display.setTextSize(1);

M5.Display.setCursor(20, 0);

M5.Display.print("TVOC TEST");

if (!sgp.begin()) {

M5.Display.print("Sensor not found");

変更箇所③

M5.Lcd.setCursor(0, 80);

M5.Lcd.println("\nInitialization...");

M5.Display.setCursor(0, 20);

M5.Display.print("\nInitialization...");

変更箇所④

static int i = 15;

while (i > 0) {

if (millis() - last_millis > 1000) {

last_millis = millis();

i--;

M5.Lcd.fillRect(20, 120, 60, 30, BLACK);

M5.Lcd.drawNumber(i, 20, 120, 2);

}

}

なし

変更箇所⑤

M5.Lcd.fillRect(0, 80, 90, 100, BLACK);

なし

M5.Lcd.fillRect(100, 40, 220, 90, TFT_BLACK);

M5.Lcd.setCursor(0, 50);

M5.Lcd.printf("TVOC:%d ppb\n", sgp.TVOC);

M5.Lcd.printf("eCO2:%d ppm\n", sgp.eCO2);

M5.Display..setCursor(0, 10);

M5.Display..printf("TVOC:%d ppb\n", sgp.TVOC);

M5.Display..printf("eCO2:%d ppm\n", sgp.eCO2);



最終的なスケッチは下記のように記述しました。



実行ボタン → を押して書き込むと下記のように値が表示されます。



閲覧数:22回

Comments


bottom of page