1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

  • 自己紹介
    はじめまして。いまいま(@imaima0gou)と申します。
    X(旧twitter)のつながりで、コミュニティ"電子工作エントリー"に参加させていただいております。本業はITでなんかする人です。

  • 記事作成を行うことになった経緯
    上記のコミュニティにて、なんか手を動かそうぜとなりましたので、前々から気になっていた二酸化炭素濃度を計測するデバイスを作ってみることにしました。
    同僚とチャットしていて、在宅ワークで頭が冴えない事があるけどなんでかね?とか話していた時「窓閉め切っているとCo2濃度が高くなってよろしくないので濃度計買ったよ!」と聞いたのでネットを物色していたら結局センサのみ買っていました。(同僚はなんでセンサだけなのさ!って言ってましたw)

やりたいこと

Co2センサによる二酸化炭素濃度測定デバイスの作成

結果

できました。
■動画は下記
https://x.com/imaima0gou/status/1801325282420527284

準備

  • デバイス
    Amazonだと割高でしたので、センサはセンサは電子工作ステーションさんから購入しました。その他は何となく衝動買いしたストックです。(秋月電子とAmazon怖い)

[電子工作ステーション]
・MH-Z19E(二酸化炭素センサー)PIN付
・小型5V昇圧DCDCコンバーター

[秋月電子]
ブレッドボード(大):衝動買いストック
ジャンパーワイヤ:衝動買いストック

[Amazon]
Arduino nano互換ボード:衝動買いストック
ブレッドボード(小):衝動買いストック

  • PCへのセットアップ
    Arduino IDEをPCにセットアップします。
    https://www.arduino.cc/en/software
    からダウンロードしてインストールしましょう。

回路設計

  • 実体配線図
    circuit-jpg.jpg

ブレットボードでざっくり作成しました。

PG作成

Arduino IDEのスケッチは下記になります。
※サンプルコードmh-z19.inoから、LED発行部分を削除しただけになります。

#define pwmPin A0

int prevVal = LOW;
long th, tl, h, l, ppm;

void setup() {
  Serial.begin(9600);
  pinMode(pwmPin, INPUT);
}

void loop() {
  long tt = millis();
  int myVal = digitalRead(pwmPin);

  if (myVal == HIGH) {
    if (myVal != prevVal) {
      h = tt;
      tl = h - l;
      prevVal = myVal;
    }
  }  else {
    if (myVal != prevVal) {
      l = tt;
      th = l - h;
      prevVal = myVal;
      ppm = 5000 * (th - 2) / (th + tl - 4);
      Serial.println("PPM = " + String(ppm));
    }
  }
}

動作確認

  • シリアル接続により情報表示
    Teratermで表示してみました。ピンぼけですが、値は取れてますね。
    Teraterm.jpg

  • Teratermによるロギング
    せっかくなので、このログを時系列で記録してグラフにしてみました。
    15時から窓を閉めてみたので、そこからCo2の濃度が上昇していることがわかります。
    たまに外れ値が出ますね・・。サンプリングの平均で出すのがよいかもしれません。
    Graph.jpg

今回のまとめ

マイコンArduinoで手軽にCo2測定ができることがわかりました。
AmazonなどでもCo2測定器は簡単に入手できますが、表示の仕方を工夫したいとか、IoT的に使用してみたい方は気軽に挑戦できるよい素材ですね。
今後、機能を拡張していきたいと思います。
※言い訳※
本当はUARTでやろうと思ったのですが、なぜか値が読めなかったのでPWMにしました。いつかはそちらも挑戦したいです。

Next Action

今後やっていきたいことです。

  • I2CによるOLED表示
  • ワイヤレスデータ送信(IoT化)
  • Zabbixでのデータ集積
  • バッテリー内蔵でどこでも計測

感想いただければ嬉しいです

コメント欄やX@imaima0gouにコメントあればうれしいです!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?