CO2センサー用基板EPEA-CO2-NDIR-04 Rev3.0.8の使い方

このページのライセンス

MITライセンス。すきにしてください。あわよくばセンサーをショップで売っているのでそちらから買ってください。

(12/27追記) サンプルで付けているソースのライセンスは各ライブラリのライセンス(MHZ19のライブラリはLGPL等)に従ってください。

はじめに

EPEA-CO2-NDIR-04 Rev3.0.8はMH-Z19B、MH-Z19CをAtmega328PU(内部クロック8Mhz/3.3v)で動かすための基盤です。マイクロUSBのDIP化基板のみAliexpressで調達したもので入手に時間がかかりますが他の部品は秋月電子等ですぐに手に入ると思います。3端子レギュレータの半田はかなり狭いです。次の3.0.9では広めにしました。

注意事項

LCD(液晶)は秋月電子様取り扱いのAE-AQM1248基盤を使用していますが、配線間違えによりSCL/SDAが逆になっています。当該部品を使用する場合はSCL/SDAを手作業で修正する必要があります。

必要部品

最低限動作スケッチ

最低限の動作をさせるためのスケッチです。基盤は0,1をソフトシリアルで使用していますが、ハードシリアルのピンなのでその内別のピンに変更します。

#include <FaBoLCDmini_AQM0802A.h>
#include <Wire.h>
#include <SoftwareSerial.h>
#include <MHZ19.h>

#define SRX 0
#define STX 1
#define INTERVAL 6

MHZ19 myMHZ19;

SoftwareSerial softSerial(SRX, STX);
FaBoLCDmini_AQM0802A lcd;

void setup()
{
  softSerial.begin(9600);
  delay(100);
  myMHZ19.begin(softSerial);

  Wire.begin();
  lcd.begin();
}
int count = 0;
int co2 = 0;
void loop()
{
  if ((count % INTERVAL) == 0 ) {
    co2 = myMHZ19.getCO2();
  }
  displayCo2(co2, (count % 2));
  count++;
  delay(1000);
}

void displayCo2(int co2, bool isPresiod) {
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("CO2 ppm");
  lcd.setCursor(0, 1);
  lcd.print(co2);
  if (isPresiod) {
    lcd.print(" .");
  }
}

本来の回路図

実際の基板(Rev3.0.8)はLCDのSCLとSDAが逆になっています。

応用例

数値が一定以上だったら音をならす。

数値が一定以上だったらLEDを光らせる。

数値が一定以上だったら何かを動作させる。

ネットワーク系は部品が足りないので苦手です。ネットワーク対応モジュール搭載基板がその内でるかもしれません。

コメントを残す

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