MH-Z19D(二酸化炭素センサー)を使ってみた‼(Arudino編)
こんにちは‼
CO2を測定するための定番センサー「MH-Z19」シリーズの最新モデルが出たので、今回はそれを使いCO2を測定してみたいと思います。
MH-Z19シリーズは、MH-Z19Aから始まり、B、Cと出て、今年2021年にMH-Z19Dという最新モデルが2021年半ばぐらいに登場しました‼
果たして性能は上がっているのか、いじってみたいと思います♪
★使用例
・部屋のCO2濃度の測定
・ハウス植物のCO2濃度測定
①「比較」
製品モデル | MH-Z19A | MH-Z19B | MH-Z19C | MH-Z19D/MH-Z19E |
対象ガス | CO2 | CO2 | CO2 | CO2 |
動作電圧 | 3.6V~5.5V | 4.5V~5.5V | 5V(+-0.1V) | 5V(+-0.1V) |
平均電流 | <18mA | <20mA | <40mA | <40mA |
インターフェイスレベル | 3.3V (と互換性5v) | 3.3V (と互換性5v) | 3.3V (と互換性5v) | 3.3V (と互換性5v) |
測定範囲 | 0~5000ppm | 0~5000ppm | 400~5000ppm | 400~5000ppm |
出力信号 | UART/PWM | UART/PWM | UART/PWM | UART/PWM |
予熱時間 | 3分 | 3分 | 1分 | 1分 |
再sponse時間 | t90<90秒 | t90<120s | t90<120s | t90<120s |
動作温度 | 0~50℃ | 0~50℃ | -10~50℃ | -10~50℃ |
重量 | 10g | 5g | 5g | 5g |
寿命 | 5年 | 5年 | 10年 | 10年 |
見ての通り、今のところCタイプとDタイプの違いが判りません(;^ω^)
もしかしたら工場によるモデル名変更だけの可能性があります。
※MH-Z19Eは、MH-Z19Dと使用は同じです。(工場の都合でモデル名が変わりました。)
②「部品」
・MH-Z19D (MH-Z19E)
電子工作ステーション 2450円(送料無料)(MH-Z19E)
・Arduino UNO
電子工作ステーション 1255円(送料無料)(互換ボード)
※UNO以外の物でも大丈夫です。
・5V出力昇圧DCDCコンバーター
電子工作ステーション 250円(500円以上購入で送料無料)(pinはんだ済み)
秋月電子 300円+送料(pinはんだ未接続)
・ブレットボード(どんな形状でもOK)
電子工作ステーション 250円+送料(500円以上で無料)(400穴)
・ジャンパーワイヤー (オス・オス)
電子工作ステーション 1セットで100円(送料500円以上で無料)
(Arduinoと5V出力昇圧DCDCコンバーターを繋ぐために使用)
・ジャンパーワイヤー(オス・メス)
電子工作ステーション 1セットで100円(送料500円以上で無料)
(Arduinoと5V出力昇圧DCDCコンバーターとMH-Z19Dを繋ぐために使用)
③「回路図」
秋月電子のDCDCコンバータをご使用の場合は、まずpinをコンバータにはんだ付けしましょう。
次に、センサー裏面にpin名が書いてあるのでそちらを参考に接続しましょう。
MH-Z19D | Arduino接続箇所(接続pin) |
Tx | 4 |
Rx | 7 |
MH-Z19D | 5V出力昇圧DCDCコンバーター(秋月電子) |
V1n | O (OUT) |
GND | G (GND( – )) |
5V出力昇圧DCDCコンバーター(秋月電子) | Arduino接続箇所(接続pin) |
I (IN(ハンだの箇所が四角い方)) | 5V( + ) |
G (GND( – )) | GND( – ) |
※CO2センサーのHDピンはゼロキャリブレーション様です。
(ゼロキャリブレーションとは、測定値をリセットして測定値がゼロとなるように調整する作業です。)
やり方は幾つかあるそうですが、一番簡単な方法は下記の様になります。
- 400ppmの場所(屋外や喚起された屋内など)で20分程動作させる。
- HDピンをGNDに7秒接続する。この瞬間が400ppmとして調整されます。
ゼロキャリブレーションは基本しなくて大丈夫です。数値が大幅におかしいと感じた時に試してみましょう!
④「開発環境」
・いよいよプログラミングですが、その前にMHZ19をArduinoIDEで使えるようにするため、今回はGitHbuで公開されているライブラリ、
「MHZ19_uart.h」というものを使わせて頂きますので、ArduinoIDEにこちらのライブラリーを入れてください。
手順は簡単で、こちらからライブラリーをダウンロードして解凍します。
・解凍が終わりましたら「mhz19_uart-master」というフォルダーごと
「libraries」(C:\Users\…..\arduino\libraries)に入れるだけです。
後はArduinoIED起動させ、ファイルスケッチ例の中にmhz19_uartがあれば準備完了です。
⑤「プログラミング」
プログラミはMH-Z19Bなどと同じプログラムで動きました‼
MH-Z19Cタイプでも同じ回路、同じプログラムで動くと思われます。(未確認)
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 |
/*---------------------------------------------------------- MH-Z19 CO2センサーサンプルプログラム ----------------------------------------------------------*/ #include <MHZ19_uart.h> const int rx_pin = 4; //Serial rx pin no const int tx_pin = 7; //Serial tx pin no MHZ19_uart mhz19; /*---------------------------------------------------------- MH-Z19 CO2 sensor setup ----------------------------------------------------------*/ void setup() { Serial.begin(9600); mhz19.begin(rx_pin, tx_pin); mhz19.setAutoCalibration(false); Serial.print("MH-Z19 now warming up... status:"); Serial.println(mhz19.getStatus()); delay(500); } /*---------------------------------------------------------- MH-Z19 CO2 sensor loop ----------------------------------------------------------*/ void loop() { int co2ppm = mhz19.getPPM(); int temp = mhz19.getTemperature(); //CO2濃度出力 Serial.print("co2: "); Serial.println(co2ppm); //気温出力(おまけ機能ですが精度は悪いです) Serial.print("temp: "); Serial.println(temp); delay(5000); } |
ちゃんと通電すると、まずセンサーの白い布部分がオレンジ色にゆっくり点滅します。
シリアルモニターを開き、
みたいな表示がされれば成功です‼
1分ほどするとco2の数値が変わり、正確な値になっていきます‼
※tempは大よその気温です。
⑥「結果」
台風で窓を閉め切っていた影響で、数値が高く取得されました‼
なので窓を5分程全開にしてみたら、
どんどん下がりました‼
こんな感じで、結果がすぐ出ると楽しいですね♪
数値の基準は、こちらの票をご参考に⇩
CO2濃度の大まかの基準です。
350~500ppm | 外気 |
500~1000ppm | 一般的な屋内 |
1000~2000ppm |
悪い室内空気環境
|
2000~2500ppm |
眠気を感じてくる人が出てくる
|
2500~3000ppm |
肩こりや頭痛を感じてくる人が出てくる
|
3000ppm~ |
集中力などが低下してくる
|
ちなみに、日本での二酸化炭素濃度の基準値は建築物衛生法によって、
居室内は1,000ppm以下、幼稚園、保育園、学校は1,500ppm以下と定められています。
是非、これでより良い環境を作り、人生エンジョイしていきましょう♪
以上、ご閲覧ありがとうございました♪
1件のコメント