Featured image of post CO2センサー(SCD30)を接続したM5Stackで測定値を記録して毎週の変化をグラフで見てみる。

CO2センサー(SCD30)を接続したM5Stackで測定値を記録して毎週の変化をグラフで見てみる。

Grove - SCD30搭載 CO2・温湿度センサ(Arduino用)を買ってみた。

最終更新 2021/11/27 00:00 JST

前回使った「TVOC/eCO2 ガスセンサユニット(SGP30)」の測定値が信用できなかったので, Grove - SCD30搭載 CO2・温湿度センサ(Arduino用)を買ってみた。

前回のM5StackセットにSCD30センサーを追加する。
BME280 / SGP30 / SCD30 環境センサー3種盛り。

image01

GitHubリポジトリ

前回と同じ。 SCD30を追加した。

https://github.com/ak1211/m5stack-azure-iot

毎週のグラフ化

https://github.com/ak1211/m5stack-azure-iot/tree/main/test

M5Stack Core2で測定したデータをAzure Cosmos DBに蓄積してみた。で用意したデータベースから plot_db.py スクリプトで取り出して出力したグラフなので plot_db.py を自分のurl とkey を渡して使えばこんな感じのグラフが手に入る。

  • 2021年03月08日より2021年03月14日まで 2021-03-08_2021-03-14

写真に写っていてグラフに表されているように, SCD30内臓温度センサーは2℃ほど高い測定値になるようだ。

CO2の測定値は窓を閉めていると上昇して, 窓を開けると下がるという行動がわかる。
ところでSGP30センサーはいったい何を測定しているのだろう?手についた消毒用アルコールか?。

まあSCD30は最初のキャリブレーションに7日間必要1なので今週の測定値は参考程度にしておく。

で 最新の月別二酸化炭素全大気平均濃度は
http://www.gosat.nies.go.jp/recent-global-co2.html
によると

2021年4月 414.3 ppm

だと。

換気していて部屋に誰もいない時に SCD30 による測定値が 440 ppm 位になっているので信用できる測定値かな。

ソフトウェアを稼働してからそれなりに経ちました

image02

表示されているのは上側から

  • BME280による温度 / 湿度 / 気圧の測定値
  • SGP30によるeCO2 / TVOCの測定値
  • SCD30による温度 / 湿度の測定値

image03

2021年03月15日より2021年03月21日まで
2021-03-15_2021-03-21

2021年03月22日より2021年03月28日まで
2021-03-22_2021-03-28

2021年03月29日より2021年04月04日まで
2021-03-29_2021-04-04

2021年04月05日より2021年04月11日まで
2021-04-05_2021-04-11

2021年04月12日より2021年04月18日まで
2021-04-12_2021-04-18

2021年04月19日より2021年04月25日まで
infinity値が混ざったデータを計算したことによって, ソフトウェアがハングアップしてデータが欠損していた。
2021-04-19_2021-04-25

2021年04月26日より2021年05月02日まで
途中の異常値はセンサーをケーブルで吊っていたから接続不良になっていた。
2021-04-26_2021-05-02

2021年05月03日より2021年05月09日まで
2021-05-03_2021-05-09

2021年05月10日より2021年05月16日まで
ソフトウェアがハングアップしてデータが欠損していた。
2021-05-10_2021-05-16

2021年05月17日より2021年05月23日まで
なぜか湿度100%になっていた。
2021-05-17_2021-05-23

2021年05月24日より2021年05月30日まで
2021-05-24_2021-05-30

2021年05月31日より2021年06月06日まで
2021-05-31_2021-06-06

2021年06月07日より2021年06月13日まで
2021-06-07_2021-06-13

2021年06月14日より2021年06月20日まで
2021-06-14_2021-06-20

2021年06月21日より2021年06月27日まで
2021-06-21_2021-06-27

2021年06月28日より2021年07月04日まで
2021-06-28_2021-07-04

2021年07月05日より2021年07月11日まで
2021-07-05_2021-07-11

2021年07月12日より2021年07月18日まで
2021-07-12_2021-07-18

2021年07月19日より2021年07月25日まで
2021-07-19_2021-07-25

2021年07月26日より2021年08月01日まで
2021-07-26_2021-08-01

2021年08月02日より2021年08月08日まで
2021-08-02_2021-08-08

2021年08月09日より2021年08月15日まで
2021-08-09_2021-08-15

2021年08月16日より2021年08月22日まで
2021-08-16_2021-08-22

2021年08月23日より2021年08月29日まで
2021-08-23_2021-08-29

2021年08月30日より2021年09月05日まで
2021-08-30_2021-09-05

2021年09月06日より2021年09月12日まで
2021-09-06_2021-09-12

2021年09月13日より2021年09月19日まで
2021-09-13_2021-09-19

2021年09月20日より2021年09月26日まで
2021-09-20_2021-09-26

2021年09月27日より2021年10月03日まで
2021-09-27_2021-10-03

2021年10月04日より2021年10月10日まで
2021-10-04_2021-10-10

2021年10月11日より2021年10月17日まで
2021-10-11_2021-10-17

2021年10月18日より2021年10月24日まで
2021-10-18_2021-10-24

2021年10月25日より2021年10月31日まで
2021-10-25_2021-10-31

2021年11月01日より2021年11月07日まで
2021-11-01_2021-11-07

2021年11月08日より2021年11月14日まで
2021-11-08_2021-11-14

2021年11月15日より2021年11月21日まで
2021-11-15_2021-11-21

ライブラリのアップデートでエラーがでた

こんなエラーが出たので

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
Compiling .pio\build\m5stack-core2\lib5f0\Adafruit BusIO\Adafruit_BusIO_Register.cpp.o
Compiling .pio\build\m5stack-core2\lib5f0\Adafruit BusIO\Adafruit_I2CDevice.cpp.o
Compiling .pio\build\m5stack-core2\lib5f0\Adafruit BusIO\Adafruit_SPIDevice.cpp.o
Compiling .pio\build\m5stack-core2\lib12b\Adafruit Unified Sensor\Adafruit_Sensor.cpp.o
Compiling .pio\build\m5stack-core2\lib25d\Adafruit BME280 Library\Adafruit_BME280.cpp.o
Compiling .pio\build\m5stack-core2\lib29e\Adafruit NeoPixel\Adafruit_NeoPixel.cpp.o
Archiving .pio\build\m5stack-core2\lib826\libSPI.a
Compiling .pio\build\m5stack-core2\lib29e\Adafruit NeoPixel\esp.c.o
Compiling .pio\build\m5stack-core2\lib29e\Adafruit NeoPixel\esp8266.c.o
.pio\libdeps\m5stack-core2\Adafruit BusIO\Adafruit_I2CDevice.cpp: In member function 'void Adafruit_I2CDevice::end()':
.pio\libdeps\m5stack-core2\Adafruit BusIO\Adafruit_I2CDevice.cpp:44:10: error: 'class TwoWire' has no member named 'end'
   _wire->end();
          ^
*** [.pio\build\m5stack-core2\lib5f0\Adafruit BusIO\Adafruit_I2CDevice.cpp.o] Error 1
=========================================== [FAILED] Took 33.39 seconds ===========================================
ターミナル プロセス "C:\Users\aki\.platformio\penv\Scripts\platformio.exe 'run', '--environment', 'm5stack-core2'" が終了コード 1 で終了しました。

ターミナルはタスクで再利用されます、閉じるには任意のキーを押してください。

エラーメッセージに書かれているファイル Adafruit_I2CDevice.cpp をこれから

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
/*!
 *    @brief  De-initialize device, turn off the Wire interface
 */
void Adafruit_I2CDevice::end(void) {
#ifndef ESP8266
  // ESP8266 does not implement Wire::end()
  _wire->end();
#endif
  _begun = false;
}

このように

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
/*!
 *    @brief  De-initialize device, turn off the Wire interface
 */
void Adafruit_I2CDevice::end(void) {
#if !(defined(ESP8266) || defined(ESP32))
  // ESP8266 does not implement Wire::end()
  _wire->end();
#endif
  _begun = false;
}

書き換えてビルドした。

comments powered by Disqus

This website uses cookies to improve your experience.
このサイトは「Googleアナリティクス」を使用しています。
Googleアナリティクスはデータの収集のためにCookieを使用しています。


Built with Hugo
テーマ StackJimmy によって設計されています。