朝の眠気にも影響!? ESP-WROOM02( ESP8266)とCO2センサー(MH-Z19B)でCO2濃度を測定してみる

最終更新日

Comments: 9

こんにちは!

皆さんは日常生活でCO2(二酸化炭素)を気にしたことはありますか?

実はCO2は日常生活において大きな影響を及ぼすんです!

下記がCO2濃度の大まかの基準です。

350~500ppm外気
500~1000ppm一般的な屋内
1000~2000ppm
悪い室内空気環境
2000~2500ppm
眠気を感じてくる人が出てくる
2500~3000ppm
肩こりや頭痛を感じてくる人が出てくる
3000ppm~
集中力などが低下してくる
ちなみに、日本での二酸化炭素濃度の基準値は建築物衛生法によって、
居室内は1,000ppm以下、幼稚園、保育園、学校は1,500ppm以下と定められています。
では、自分の部屋が今どのくらいのCO2濃度(ppm)なのかESP-WROOM02(マイコン)と、
CO2センサーを使って測定してみたいと思います!
(開発環境はArduinoIDEを使用します)

今回CO2濃度に使うセンサーはMH-Z19Bというものを使います!

 

・仕様

・MH-Z19BはCO2の濃度を赤外線で測定し、0~5000ppmの範囲で結果を、

PWM通信のパルス幅または、シリアル通信で出力してくれます。

  • サイズ  上の画像を参考に縦が2cm、横金部分が2.6cm、基盤を含めた横が4cm
  • 非分散形赤外線吸収式
  • 電源 4.5〜5.5V
  • 平均電流 20mA
  • インターフェイス UART または PWM 3.3V
  • 動作温度 0~50度
  • プリヒート 3分
  • 温度補正あり。精度は±50ppm + 5%

※今回はシリアル通信で作ります。

(CO2センサーで安価なものはMQ-135などがありますが正直熱を発生するし精度があまり良くなかったです。)

それでは、早速作っていきたいと思います!


①「使う部品」

・MH-Z19B

2022年1月16日時点では電子工作ステーションで購入可能(2900円)⇩⇩⇩

電子工作ステーション

 

※MH-Z19Cモデルが秋月電子などで売っておりますが性能が上がっている分、扱いが難しく今回紹介するやり方では動きませんのでMH-Z19Bをご使用ください

※MH-Z19Bモデルは現時点で、秋月電子などでの取り扱いは無いですので電子工作ステーションやメルカリにて入手することをお勧めします。

 

Wi-Fiモジュール ESP-WROOM-02

 

超小型USBシリアル変換モジュール

 

低損失三端子レギュレーター 3.3V1A TA48033S

 

電解コンデンサ 47μF35V(秋月電子で購入すると、3端子レギュレータに付属されています。)

 

セラミックコンデンサ 0.1μF(秋月電子で購入すると、3端子レギュレータに付属されています。)

 

・LED(起動などを確認するためのメッセージ用に使う。なので任意)

電子工作ステーション 10円+送料(500円以上で送料無料)
秋月電子  10円+送料

 

・タクトスイッチ(2個)(任意ですがあると便利です)

電子工作ステーション 9円+送料(500円以上で送料無料)

秋月電子 10円+送料

 

・ブレットボード(どんな形状でもOK)

電子工作ステーション 250円+送料(500円以上で無料)(400穴)

秋月電子 270円+送料(400穴)

 

・ジャンパーワイヤー(オス・メス)

電子工作ステーション 1セット(10本)100円+送料(500円以上で無料)

秋月電子 10本220円+送料

 

 

ブレッドボード・ジャンパーワイヤ

(ブレットボードの細かいところを接続するためのワイヤーです。

ブレットボードで回路を組むとき、見栄え良く綺麗に繫げられますのであると便利)

 

・通信用マイクロUSBケーブルタイプB (家に無ければ)

秋月電子 120円+送料

ESP-WROOM-32とパソコンを繋ぐためのケーブルです。

100円ショップなどでも販売していますが、スマホ用充電専用タイプだと使えないのでご注意ください。

タイプB通信ケーブル

 

※任意(楽したい方向け)

ESP-WROOM-02開発ボードを使うとすぐに開発ができるよう回路が組まれているため、上記の「ESP-WROOM02」「超小型USBシリアル変換モジュール」「3端子レギュレータ」「電解コンデンサ 47μF35V」「セラミックコンデンサ 0.1μF」「タクトスイッチ」は不要になります!

②「Arduino IDEにESP-WROOM02を使えるように設定する」

・こちらをご参考に↓

Arduino IDEでESP-WROOM-02(ESP8266)とESP-WROOM-32を使えるようにする!(Windows10)

※Arduinoでチャレンジされる方は必要ありません。

※WSP-WROOM32でチャレンジされるこちらのサイトをご参考にお願いします。



③「回路」

・ESP-WROOM02の回路は再び下記サイトさんの「6.各部品の接続」を参考にしていただければと思います。

WROOM 単体に Arduino スケッチで Wi-Fi ストリーミング

・ESP‐WROOM02本体の接続箇所

※GPIO 0(IO0)をLOWの状態で起動させるときのみ書き込みモード、LOWじゃなければ実行モードになります。

なのでGPIO 0とGNDにダクトスイッチをかましとくと後が楽です。

※RST(リセット)もLOWにすることでプログラムのリセットが行えますのでRSTとGNDにダクトスイッチをかましておくと後が楽です。

 

ESP-WROOM-02開発ボードをご使用の方はここからスタート。

・センサーの裏面を参考に、接続していきましょう♪

MH-Z19BESP-WROOM-02-接続箇所(接続pin)
V1n5V( + )
GNDGND( – )
TxIO4
RxIO5

接続するとこんな感じです。

(接続するコードが黒しかなくわかりずらいと思いますがお許しを(;^ω^))

※Tx、Rxは今回のプログラムに合わせて配置しているだけです。

空いているIOpinがあればそちらにしていただいても問題ないと思います。

・MH-Z19を起動させてみるとこんな感じに光ります↓

④「いよいよプログラミング」

・いよいよプログラミングですが、その前に今回はGitHbuで公開されているライブラリ、

「MHZ19_uart.h」というものを使わせて頂きますのでArduinoIDEにこちらのライブラリーを入れてください。

手順は簡単で、こちらからライブラリーをダウンロードして解凍します。

・解凍が終わりましたら「mhz19_uart-master」というフォルダーごと

「libraries」(C:\Users\…..\arduino\libraries)に入れるだけです。

後はArduinoIED起動させ、ファイルスケッチ例の中にmhz19_uartがあれば準備完了です。

 

・それでは今度こそプログラミングに入ります!

5秒ごとにCO2を取得するプログラムです。

後はESP-WROOM02を書き込みモードにしてこのプログラムを書き込めば完了です!

ちなみにコード内にさり気なく記載してあります気温取得ですが、精度は悪く±3度くらいはありました!

 

※ビルドをした際に、こんなエラーが出たら書き込みモードになっていないのが原因です。

(GPIO 0(IO0)をLOWの状態で起動させるときのみ書き込みモード、LOWじゃなければ実行モードになります。)

改善されない場合はもう一度③「回路」を読み直してみてください。

 

2018/7/21追記

※シリアルモニターに変な暗号が表示されたり、何も表示されない場合、

シリアルモニターの右下にあるbpsが115200bpsになっているか確認してください。

※シリアルモニターが選択できない場合、まずツールの中にあります「シリアルポート:COM 」が選択されているか確認してください。

これが選択できない状態だたUSBケーブルが原因の可能性があります。USBケーブルは必ずデータ通信が可能なものを使用しましょう。

 

実行結果

・室内で取得した結果↓(誰もいないリビング)

約580ppmで快適と言えるでしょう。(気温は28度だったらしい)

・屋外で取得した結果↓(4階のベランダ)

約490ppmですので正常に機能してると言えるでしょう!

(気温は約21度とこの時期にしては寒かったのでわりと合ってたと思われます)

※取得には数十秒のタイムラグがあるようです。

 

ちなみに以前寝起きの寝室を測ってみたところ約2000ppmもあり驚きました!

どうも寝起きが今一悪いわけですねw 原因が特定できて良かったです。

窓を開けて寝たら目覚めが良くなり、CO2の存在は偉大だと実感しました!

このことから、屋内にいるときはこまめに換気をすることでCO2濃度を下げ、結果として作業の効率化に繋げることが可能です。

応用編↓

睡眠時のCO2濃度を観察!ESP-WROOM02でCO2センサー(MH-Z19)を稼働してみる!

CO2センサー(MH-Z19)で濃度によってLEDの色が変わる物を作ってみる!

 

以上、ご訪問ありがとうございました^^

ご不明点などがございましたらお気軽にコメントくださいませ^^


9件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

コメントする