MQ-7モジュール(一酸化炭素ガスセンサ)を使ってみる(Arduino)

キャンプや車中泊をする方も多く居られます。
テントや車内でストーブを使うときは危険があります。
その一つが一酸化炭素中毒です。

そんなとき、こんなセンサモジュールは如何でしょう。
MQ-7モジュール(一酸化炭素ガスセンサ)です。
いつもの大陸調達品で ¥90- です。

参考:
 aitendo
  一酸化炭素センサモジュール [MQ7-4P]
   https://www.aitendo.com/product/10219
   ¥295-
など販売されています。

このセンサモジュールは、一酸化炭素濃度を、
アナログ、デジタル情報として提供してくれるものです。

MQ-7センサモジュール と Arduino の接続です。
回路は図の通りです。
   この回路図の作図には fritzing を利用させて頂いております。
   https://fritzing.org/home/

回路図
回路図

※MQ-7センサモジュールの各端子の並びが製品により異なります。
 回路図では、左から VCC、GND、AO、DO です。

MQ-7センサモジュール が一定量のガス感知をしたら、
ブザーを鳴らすものを作成してみます。

Arduino と PC を接続し、
Arduino IDE から、ボード、シリアルポートの設定をします。
・メニュー「ツール」→「ボード」
・メニュー「ツール」→「シリアルポート」

ボード、シリアルポートの設定
ボード、シリアルポートの設定

スケッチです。

// MQ-7センサモジュール

// アナログデータ取得用
int a_data;

void setup() {
  // put your setup code here, to run once:
  // ポート設定
  pinMode( A0, INPUT );     // センサからのアナログ入力
  pinMode( 8, INPUT );      // センサからのデジタル入力 
  pinMode( 12, OUTPUT );    // LED出力
  // シリアルモニタ設定
  Serial.begin( 9600 );
}

void loop() {
  // put your main code here, to run repeatedly:
  // デジタル信号による一酸化炭素感知確認
  if(digitalRead(8) == HIGH){    // 感知あり
    digitalWrite(12, HIGH);         // ブザー音ON
    delay(500);
    digitalWrite(12, LOW);          // ブザー音OFF
    delay(500);
  }
   // アナログポートデータ取得・シリアルモニタへ表示
  a_data = analogRead( A0 );
  Serial.println( a_data );
}

このMQ-7センサモジュールの、
デジタル出力値は、無感知時は LOW 、感知時はHIGHとなります。
アナログ出力値は、無感知時は200前後の数値で、
感知時は、この値が大きくなります。
試しにガスライターを近づけた場合、900程度の数値でした。

スケッチです。

検証して、マイコンボードに書き込み実行してみます。

検証とマイコンボードへの書き込み
検証とマイコンボードへの書き込み

シリアルモニタには、アナログデータが表示されています。

実行時のシリアルモニタ表示内容
実行時のシリアルモニタ表示内容
実際の回路
実際の回路

MQ-7センサモジュールの
デジタル信号、HIGH、LOWの感度は、
モジュール本体の可変抵抗の調整で可能です。

モジュール本体の可変抵抗の調整
モジュール本体の可変抵抗の調整

注意:
 このMQ-7センサモジュールが感知することは
 ガスライター等でテスト確認出来ますが、
 実際にどの程度の濃度になると危険なのかは別問題です。
 感知器として利用する場合は、
 データシート等で適切な感度に設定する必要があります。

無いよりましとは思いますが、正確なテストができません。
やはり感知器として使用する場合は、
自己責任とはいえ、生死にも関わりますので信用は禁物です。
市販品を購入使用するのがよいですね。

一日も早くコロナ渦が治まり、
楽しいアウトドアライフが送れますように!