空気質センサー(ENS160)を使ってCO2測定‼(Arduino編)
こんにちは!
今回は、電子工作ステーションさんで空気質センサー(ENS160)というものが発売されたので、使ってみたいと思います‼
ENS160はCO2は勿論、TVOCやAQIも取得可能です、が、正直Co2以外わからない!
ググってみるととりあえず、
TVOCは総揮発性有機化合物の総称で、AQIは大気質指数で、大気汚染中の大気汚染物質濃度とそれに関連する健康リスクの測定値らしいです‼
TVOCは何を言っているのかよく分かりませんが、AQIはとても重要ということが分かりました‼
それでは早速作ってみたいと思います‼
①「部品準備」
・空気質センサー(ENS160)
電子工作ステーション 1700円
※はんだ付けされていない状態です。はんだ付けが必要な方ははんだ付けサービスも同時にご購入をお勧めします。
・Arduino UNO
電子工作ステーション 1300円
※今回はType-C対応のArduinoを使っています。
・ブレットボード(どんな形状でもOK)
電子工作ステーション 110円(500円以上で送料無料)
※今回は170穴のミニボードを使っています。
・ジャンパーワイヤー(オス・オス)(4本)
電子工作ステーション 100円(500円以上で送料無料)
・Type-Cケーブル(持っていなければ)
電子工作ステーション 330円
合計3540円(2023年5月時点の価格)
(はんだ付けサービスをご利用の方は+500円となります。)
②「配線」
このセンサーは動作電圧3.3Vで、通信方式はI2Cなので下記の様に配線しました!
ENS160 | Arduino |
---|---|
VN | |
3V3 | 3.3V |
GND | GND |
SCL | A5 |
SDA | A4 |
SDD | |
CS | |
NT |
配線するとこんな感じになります↓
③「ライブラリー」
ESN160のライブラリーを入れます。
Arduino IDEを開き、「ツール」→「ライブラリーを管理…」を押します。
そうするとライブラリーマネージャーが開くので、「ESN160」と検索すると、
「SparkFun…ENS160」というのが出てくるのでそれをインストールします。
※もし出てこなかったら下記の参考サイトからDLし、直接ライブラリーに入れましょう。
④「プログラミング」
プログラムはライブラリーに用意されているのをそのまんま使います‼
「ファイル」→「スケッチの例」→「SparkFun Indoor Air Quality Sensor ENS160」→「example1_basic」を押すとプログラムが出てきますので、
それをそのまんま書き込めば完了です‼
一応プログラムをそのままコピペして載せておきます↓
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
#include <Wire.h> #include "SparkFun_ENS160.h" SparkFun_ENS160 myENS; int ensStatus; void setup() { Wire.begin(); Serial.begin(115200); if( !myENS.begin() ) { Serial.println("Did not begin."); while(1); } // Reset the indoor air quality sensor's settings. if( myENS.setOperatingMode(SFE_ENS160_RESET) ) Serial.println("Ready."); delay(100); // Device needs to be set to idle to apply any settings. // myENS.setOperatingMode(SFE_ENS160_IDLE); // Set to standard operation // Others include SFE_ENS160_DEEP_SLEEP and SFE_ENS160_IDLE myENS.setOperatingMode(SFE_ENS160_STANDARD); // There are four values here: // 0 - Operating ok: Standard Operation // 1 - Warm-up: occurs for 3 minutes after power-on. // 2 - Initial Start-up: Occurs for the first hour of operation. // and only once in sensor's lifetime. // 3 - No Valid Output ensStatus = myENS.getFlags(); Serial.print("Gas Sensor Status Flag: "); Serial.println(ensStatus); } void loop() { if( myENS.checkDataStatus() ) { Serial.print("Air Quality Index (1-5) : "); Serial.println(myENS.getAQI()); Serial.print("Total Volatile Organic Compounds: "); Serial.print(myENS.getTVOC()); Serial.println("ppb"); Serial.print("CO2 concentration: "); Serial.print(myENS.getECO2()); Serial.println("ppm"); } delay(200); } |
⑤「結果」
まず、シリアルモニターを開きます。
ENS160センサーは起動に1分程掛かりますので、正確な値が取れるまで数分待ちましょう!
※上手く映らない方はシリアルモニターの右下が115200になっていることを確認しましょう。
数分後、こんな感じに表示されれば成功です‼
とりあえずCO2だけが唯一読める‼
CO2参考数値↓
350~500ppm | 外気 |
500~1000ppm | 一般的な屋内 |
1000~2000ppm |
悪い室内空気環境
|
2000~2500ppm |
眠気を感じてくる人が出てくる
|
2500~3000ppm |
肩こりや頭痛を感じてくる人が出てくる
|
3000ppm~ |
集中力などが低下してくる
|
臭いであろう息をかけるとこんな感じになります‼
CO2が一気に上がりました‼
驚くことに、ほぼリアルタイムで数値が変化しました‼
CO2センサーといえばMH-Z19というセンサーがありますが、それよりも明らかにタイムラグがなく、リアルタイムに検知できます‼
(MH-Z19センサーだと5秒ぐらい遅れて数値に反映されます。)
MH-Z19センサーと比べると、ENS160センサーの方が数値が低く出る傾向があります。
果たしてどっちが より正確なのかわかりませんが、とにかくこのセンサーはタイムラグがほぼないです‼
その他、TVOCは40ppb前後、AQIは1前後と表示されてます。
AQIの正常値は0〜50らしいので、1という数値は合っているのかな?
TVOCは調べてみましたがよくわかりませんでしたので触れないでおきます。
以上、ご閲覧ありがとうございました‼