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); |
最終的なスケッチは下記のように記述しました。
実行ボタン → を押して書き込むと下記のように値が表示されます。
Comments