Arduinoと一酸化炭素モジュールでCO濃度を計測し、可視化する

2 min read読了の目安(約1800字

昨年末にこの記事を読んでからサウナ電子工作がアツい。

*趣味の開発記録です。一酸化炭素は命に関わるので自己責任でお願いします。

TL; DR;

これ ↓ が目標です。

開発環境

  • Arduino Uno Rev.3 / Arduino 1.8.13
  • Mac OS X Catalina 10.15.7

回路図とセンサ

これを買いました。COガス濃度が 10~500 ppm の範囲で取得できます。

https://www.aitendo.com/product/10219

回路図はこうです。

MQ-7のモジュール画像はこちらから。

https://github.com/e-radionicacom/e-radionica.com-Fritzing-Library-parts-

ソースコード

アナログ値から ppm への変換はこちらのライブラリを使いました。

Sketch > Add File... から MQ7.h, MQ7.cpp を追加します。

#include "MQ7.h"

const int AOUTpin=0;//the AOUT pin of the CO sensor goes into analog pin A0 of the arduino
const int DOUTpin=8;//the DOUT pin of the CO sensor goes into digital pin D8 of the arduino

MQ7 mq7(A0, 5.0);

void setup() {
  Serial.begin(115200);             // シリアル通信の準備をする
  while (!Serial);                  // 準備が終わるのを待つ
  pinMode(DOUTpin, INPUT);//sets the pin as an input to the arduino
}

void loop() {
  Serial.print(mq7.getPPM());
  Serial.println("");
  delay(1000); // 1秒毎に更新
}

まるっとこちらにあります。

https://github.com/johiroshi/arduino_mq7

使い方

  1. Tools > Port から Arduino を選択する
  2. Arduino にプログラムを書き込む
  3. Tools > Serial Protter で表示する
  4. 115200 baud を選択する

動いた

今後のこと、課題など

  • ログが保存されないので保存する
  • ppm の値によってアラートを出す
  • アラートを出す条件を決める(移動平均などを駆使して!
  • センサの感度を適切に調整する(感度調整ボリウム)
  • テントサウナ内の高い位置に置いて動作確認する(使用温度範囲外なので壊れるはず