6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Wio LTEで複数のCo2センサを比較してみた

Last updated at Posted at 2018-01-13

#始めに
以前の記事GroveのCo2センサの使い方を解説しましたが、Groveではないですが他のCo2を借りたので出力される値の比較を行ってみました。

#NDIR式CO2(二酸化炭素)センサモジュール CDM7160
もう一つのCo2センサはフィガロ技研のCDM7160というセンサです。I2CやUARTでマイコンと繋げられるので、Wio LTEにも接続可能です。ただし、このセンサも5Vで動作するため、繋ぐためには5Vを用意する必要があります。
CDM7160で計測できる範囲はGrove Co2センサが400ppm~2000ppmなのに対し300~5000ppmという広い範囲になっています。

#接続
Grove Co2センサはUART、CDM7160はI2CでWio LTEに接続します。
image.png
CDM7160は借り物のため回路部分は非公開とさせてください。3.3Vから5Vにする回路があるぐらいです。
Grove Co2センサも3.3Vから5Vにする回路を間に挟んでいます。

#スケッチ
GroveのCo2センサもCDM7160もライブラリを作りましたので、公開してます。

あと出力値をグラフで見るため以前に作ったAmbientのライブラリも使いました。

試したスケッチは30秒ごとにそれぞれのCo2センサの値をAmbientにアップするようにしました。

#include <WioLTEforArduino.h>
#include <Co2Sensor.h>
#include <CDM7160.h>
#include <Wire.h>
#include "Ambient.h"

#define APN               "soracom.io"
#define USERNAME          "sora"
#define PASSWORD          "sora"
#define INTERVAL          (30 * 1000)

Co2Sensor grove_co2;

CDM7160 cdm7160_co2;

WioLTE Wio;
WioLTEClient WioClient(&Wio);

unsigned int channelId = 100;
const char* writeKey = "...writeKey...";
const char* userKey = "...userKey...";
Ambient ambient;

bool connectLTE() {

  SerialUSB.println("");
  SerialUSB.println("--- Connect LTE ---------------------------------------------------");

  SerialUSB.println("### Power supply ON.");
  Wio.PowerSupplyLTE(true);
  delay(500);

  SerialUSB.println("### Turn on or reset.");
  if (!Wio.TurnOnOrReset()) {
    SerialUSB.println("### ERROR! ###");
    return false;
  }

  SerialUSB.println("### Connecting to \""APN"\".");
  if (!Wio.Activate(APN, USERNAME, PASSWORD)) {
    SerialUSB.println("### ERROR! ###");
    return false;
  }

  SerialUSB.println("### Connect completed.");

  return true;
}

void setup() {
  // 初期化
  Wio.Init();
  // Groveの電源をON
  Wio.PowerSupplyGrove(true);
  // I2C開始
  Wire.begin();
  
  // CMD7160 Co2センサとの通信準備
  cdm7160_co2.begin();

  // Grove Co2センサとの通信準備
  grove_co2.begin(&Serial);
  grove_co2.calibration();

  // LTEに接続
  connectLTE();
  // Ambientへの接続準備
  ambient.begin(channelId, writeKey, &WioClient);  
}

void loop() {
  unsigned long stime = millis();
  
  // CDM7160からデータが取れるかチェック
  if(!cdm7160_co2.readData()) return;
  
  // Grove Co2センサからデータが取れるかチェック
  if(grove_co2.readData()){
    // Co2センサが初期化完了してない場合はAmbientに送信しない
    if(!grove_co2.getInitEndStatus())  return;
  }
  else return;

  // 2つのセンサ共に値が取れたらAmbientへ送信    
  // 取得したデータをシリアルモニタに表示
  SerialUSB.print("CDM7160 CO2: ");
  SerialUSB.print(cdm7160_co2.getCo2());
  SerialUSB.println("");
  SerialUSB.print("Grove   CO2: ");
  SerialUSB.print(grove_co2.getCo2());
  SerialUSB.println("");
  
  // Ambientに送信
  ambient.set(1, cdm7160_co2.getCo2());
  ambient.set(2, grove_co2.getCo2());
  ambient.send();

  // インターバル時間に合うように残り時間をディレイする
  unsigned long elapse = millis() - stime;
  if (elapse < INTERVAL) delay(INTERVAL - elapse);

}

#出力されたグラフ
Ambient上でグラフを確認したところ次のようになりました。
image.png

青がCDM7160で、赤がGroveのCo2センサです。
変化の過程は同じに見えますが、ちょっとオフセットがのったような形になってます。
ほぼ同じ場所に置いていたので、センサの構造上のセンサに当たる空気の度合いの違いか、ソフトウェアのバグかは別途調査していきます。
とりあえず変化の具合が同じなのでセンサ自体は正常に動作してそうです。
次は市販のCo2センサと比較して、確認したいと思います。

#最後に

執筆しているWio LTEのkindle書籍については近々出版予定です。Groveの種類が多く、ページ数も膨らんでしまったので何冊かに分けて出版することにしました。
今回紹介したCo2センサの詳細な扱い方なども掲載しています。

以下、書籍の情報です。
image.png

出版形式:kindle(電子書籍)
価格:1,000円(予定)
その他:書籍の中で、扱っているライブラリやスケッチ例はGitHubからダウンロードできるようにします。
〇目次
Groveとは
Groveの種類
 電圧の違い
 インターフェースの違い
Groveリファレンス
 Grove IoT Starter kit
  Grove - ボタン
  Grove - ブザー
  Grove - 磁気スイッチ
  Grove - 温湿度センサー
  Grove - 超音波距離センサー
  Grove - GPS
  Grove - 3軸デジタル加速度センサー(±16g)
 さまざまなGroveモジュール
  Grove - 水センサ
  Grove - I2C タッチセンサ
 そのまま繋げられないGroveモジュール
  Grove - CO2センサー
 自作Groveモジュール
  e-DISP4
  BME680 温湿度・気圧・ガスセンサモジュール
  VEML6070 UV紫外線センサ・モジュール
 付録
  ライブラリの追加方法
  複数のI2Cモジュールの繋げ方

6
5
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
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?