Skip to main content

Grove - マルチチャンネルガスセンサー

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

Grove – マルチチャンネルガスセンサーは、環境検知センサーであり、内蔵されたMiCS-6814により多くの有害なガスを検知することができます。また、マルチチャンネルにより3種類のガスを同時に測定することが可能で、複数のガス濃度を監視するのに役立ちます。

このセンサーはGroveシステムに属しており、Base Shieldに接続してジャンパーワイヤなしでArduinoと直接動作させることができます。インターフェースはI2Cであるため、Base ShieldのI2Cポートに接続するだけで使用を開始できます。

注意

センサー値は許容誤差範囲内でガス濃度の概略的な傾向を反映するものであり、正確なガス濃度を示すものではありません。空気中の特定成分の検出には、通常、より精密で高価な機器が必要であり、単一のガスセンサーでは実現できません。プロジェクトが非常に正確なレベルでガス濃度を取得することを目的としている場合、このガスセンサーは推奨されません。

pir

tip
 製品を[マルチチャンネルガスセンサーv2](https://wiki.seeedstudio.com/ja/Grove-Multichannel-Gas-Sensor-V2/)に更新しました。より詳細なドキュメントとオンボードセンサーモジュールが追加されています。また、[Seeed Gas Sensor Selection Guide](https://wiki.seeedstudio.com/ja/Seeed_Gas_Sensor_Selection_Guide/)を公開しました。これにより、ニーズに最適なガスセンサーを選択するのに役立ちます。

使用前に

関連読書

ガスセンサーを使用する前に以下の知識を読むことをお勧めします。これによりArduinoや弊社製品についてさらに理解を深めることができ、オープンソースハードウェアをより簡単に使用できるようになります。

  • Arduinoの始め方
  • Groveシステムとは
  • なぜBase Shieldが必要なのか?

これらを読んだ後、Base Shieldを使用してGrove製品をArduinoと連携させる方法が分かります。それでは始めましょう!

準備するもの

このチュートリアルでは以下の必要な製品を含みます:

  • Arduino UNO R3またはSeeeduino v4
  • Base Shield
  • Grove - マルチチャンネルガスセンサー

ハードウェア概要

pir

上記の図から4つのピンが示されています。

ピンラベル説明
GNDグランドに接続
VCC電源供給: 3.3V - 5V
SDAI2Cデータ
SCLI2Cクロック

電源供給は3.3Vから5Vの間であるため、出力電圧が3.3Vのマイクロコントローラーと互換性があります。

特徴

  • 1つのパッケージに完全に独立した3つのセンサー素子を搭載
  • ATmega168PAを搭載
  • プログラム可能なアドレスを持つI2Cインターフェース
  • 低消費電力のために加熱電力をシャットダウン可能
  • 検知可能なガス
    • 一酸化炭素 CO 1 – 1000ppm
    • 二酸化窒素 NO2 0.05 – 10ppm
    • エタノール C2H6OH 10 – 500ppm
    • 水素 H2 1 – 1000ppm
    • アンモニア NH3 1 – 500ppm
    • メタン CH4 >1000ppm
    • プロパン C3H8 >1000ppm
    • イソブタン C4H10 >1000ppm

ブロック図

pir

対応プラットフォーム

ArduinoRaspberry Pi

pir

pir

caution
上記でサポートされているとされるプラットフォームは、モジュールのソフトウェアまたは理論的な互換性を示しています。ほとんどの場合、Arduinoプラットフォーム用のソフトウェアライブラリまたはコード例のみを提供しています。すべての可能なMCUプラットフォーム用のソフトウェアライブラリやデモコードを提供することはできません。そのため、ユーザーは独自のソフトウェアライブラリを作成する必要があります。

電気的特性

項目条件最小値標準値最大値単位
電圧-3.13.35.25V
リップル@最大電力-80100mV
加熱電力---88mW
最大電力---150mW
ADC精度--10-ビット
I2C速度--100400kHz
VIL@I2C-0.5-0.99V
VIH@I2C2.31-5.25V

REDセンサーの性能

REDセンサーの特性記号標準値最小値最大値単位
空気中の感知抵抗R0-1001500
一般的なCO検出範囲FS-11000ppm
感度係数SR-1.250-

pir

OXセンサーの性能

OXセンサーの特性記号標準値最小値最大値単位
空気中の感知抵抗R0-0.820
一般的なNO2検出範囲FS-0.0510ppm
感度係数SR-2--

pir

NH3センサーの性能

NH3センサーの特性記号標準値最小値最大値単位
空気中の感知抵抗R0-101500
一般的なNH3検出範囲FS-1300ppm
感度係数SR-1.515-

pir

はじめに

danger
センサーは安定したデータを得るために、少なくとも10分間の予熱が必要です。

ハードウェアのインストール:

  1. Grove - Multichannel Gas SensorをSeeeduinoに接続します。

pir

コードのアップロード:

  1. Arduinoライブラリ & Grove/Xadowファームウェアをダウンロードし、インストールしてArduinoライブラリに追加します。

  2. 次のパスからコードを直接開きます: File -> Example -> Mutichannel_Gas_Sensor -> ReadSensorValue_Grove。

以下はReadSensorValue_Groveのコードです。

// Grove - Multichannel Gas Sensorからデータを読み取る
#include <Wire.h>
#include "MutichannelGasSensor.h"

void setup()
{
Serial.begin(115200); // 出力用シリアルを開始
Serial.println("電源オン!");
gas.begin(0x04); // スレーブのデフォルトI2Cアドレスは0x04です。マルチチャンネルガスセンサーのバージョン2ではI2Cアドレスは0x08です。
gas.powerOn();
Serial.print("ファームウェアバージョン = ");
Serial.println(gas.getVersion());
}

void loop()
{
float c;

c = gas.measure_NH3();
Serial.print("NH3の濃度は ");
if(c>=0) Serial.print(c);
else Serial.print("無効");
Serial.println(" ppm");

c = gas.measure_CO();
Serial.print("COの濃度は ");
if(c>=0) Serial.print(c);
else Serial.print("無効");
Serial.println(" ppm");

c = gas.measure_NO2();
Serial.print("NO2の濃度は ");
if(c>=0) Serial.print(c);
else Serial.print("無効");
Serial.println(" ppm");

c = gas.measure_C3H8();
Serial.print("C3H8の濃度は ");
if(c>=0) Serial.print(c);
else Serial.print("無効");
Serial.println(" ppm");

c = gas.measure_C4H10();
Serial.print("C4H10の濃度は ");
if(c>=0) Serial.print(c);
else Serial.print("無効");
Serial.println(" ppm");

c = gas.measure_CH4();
Serial.print("CH4の濃度は ");
if(c>=0) Serial.print(c);
else Serial.print("無効");
Serial.println(" ppm");

c = gas.measure_H2();
Serial.print("H2の濃度は ");
if(c>=0) Serial.print(c);
else Serial.print("無効");
Serial.println(" ppm");

c = gas.measure_C2H5OH();
Serial.print("C2H5OHの濃度は ");
if(c>=0) Serial.print(c);
else Serial.print("無効");
Serial.println(" ppm");

delay(1000);
}
  1. コードをアップロードします。Arduino環境のツール | ボードメニューからSeeeduino Unoを選択し、Arduinoが使用している正しいシリアルポートを選択してください。

シリアルモニターを開くことで、センサーから読み取った生データを確認できます。

pir

tip
Groveモジュールの詳細については、[Grove System](https://wiki.seeedstudio.com/ja/Grove_System/)を参照してください。

ファームウェアの更新

このGroveモジュールにはATmega168 MCUが搭載されており、工場出荷時のファームウェアが書き込まれています。バージョンは2016年11月11日にV2に更新されました。 以下のコードをアップロードして、センサーのバージョンを検出してください。

// Groveマルチチャンネルガスセンサーのファームウェアバージョンを取得
#include <Wire.h>
#include "MutichannelGasSensor.h"

#define SENSOR_ADDR 0X04 // デフォルトは0x04

void setup()
{
Serial.begin(115200);
gas.begin(SENSOR_ADDR);

unsigned char version = gas.getVersion();
Serial.print("Version = ");
Serial.println(version);
}

void loop()
{
// 何もする必要はありません
}

センサーのバージョンがV1の場合、性能向上のためにV2にアップグレードすることをお勧めします。

ファームウェアを更新するには、以下が必要です:

  • Arduino UNO/Seeeduino V3/
  • 6本のデュポンワイヤ
  • はんだごて

基板の裏側にICSPパッドがあります。このパッドをArduinoボードに接続する必要があります。

センサーArduino
MISOD12
SCKD13
NRSTD10
GNDGND
MOSID11
VCC5V

pir

次に、ArduinoにUpdateFrimwareの例を開き、シリアルモニターを開くと情報が表示されます。 'g'を入力して開始します。

pir

キャリブレーション

常に不正確な値が得られる場合は、センサーをキャリブレーションしてみてください。 calibrationの例を開いてArduinoにアップロードし、シリアルモニターを開いてキャリブレーション中の情報を確認してください。

note
モジュールは工場出荷前にキャリブレーションされています。再キャリブレーションを行う場合は、空気の状態が新鮮であることを確認してください。キャリブレーションには数分から30分程度かかる場合があります。

回路図オンラインビューア

リソース

FAQ

  • Q1. モジュールのI2Cアドレスを変更する方法

    • A1. I2C_Addressの例を開いて実行してください。
  • Q2. I2Cアドレスを変更した後、運悪く忘れてしまいました。

    • A2. 心配しないでください。factory_settingの例を実行してデフォルトに戻してください。なお、キャリブレーションデータも工場出荷時設定に戻りますのでご注意ください。
  • Q3. マルチチャンネルガスセンサーはWio GPSやWio LTEで動作しますか?

    • *A3. はい、以下のコードを参照してください。

Wio GPS:

#include <Wire.h>
#include "MutichannelGasSensor.h"

#define WIOLTE_GROVE_PIN (12)
#define SENSOR_ADDR 0X04 // デフォルトは0x04

void setup()
{
SerialUSB.begin(115200);
pinMode(WIOLTE_GROVE_PIN, OUTPUT);
digitalWrite(WIOLTE_GROVE_PIN, HIGH);
delay(2000);
gas.begin(SENSOR_ADDR); //
}

void loop()
{
float R0_NH3, R0_CO, R0_NO2;
float Rs_NH3, Rs_CO, Rs_NO2;
float ratio_NH3, ratio_CO, ratio_NO2;

R0_NH3 = gas.getR0(0);
R0_CO = gas.getR0(1);
R0_NO2 = gas.getR0(2);

Rs_NH3 = gas.getRs(0);
Rs_CO = gas.getRs(1);
Rs_NO2 = gas.getRs(2);

ratio_NH3 = Rs_NH3/R0_NH3;
ratio_CO = Rs_CO/R0_CO;
ratio_NO2 = Rs_NH3/R0_NO2;

SerialUSB.println("R0:");
SerialUSB.print(R0_NH3);
SerialUSB.print('\t');
SerialUSB.print(R0_CO);
SerialUSB.print('\t');
SerialUSB.println(R0_NO2);

SerialUSB.println("Rs:");
SerialUSB.print(Rs_NH3);
SerialUSB.print('\t');
SerialUSB.print(Rs_CO);
SerialUSB.print('\t');
SerialUSB.println(Rs_NO2);

SerialUSB.println("ratio:");
SerialUSB.print(ratio_NH3);
SerialUSB.print('\t');
SerialUSB.print(ratio_CO);
SerialUSB.print('\t');
SerialUSB.println(ratio_NO2);

SerialUSB.println("------------------------");
delay(1000);
}

Wio LTE:

#include <Wire.h>
#include "MutichannelGasSensor.h"

#define WIOLTE_GROVE_PIN (26)
#define SENSOR_ADDR 0X04 // デフォルトは0x04

void setup()
{
// SerialUSB.begin(115200);
pinMode(WIOLTE_GROVE_PIN, OUTPUT);
digitalWrite(WIOLTE_GROVE_PIN, HIGH);
delay(2000);
gas.begin(SENSOR_ADDR); //
}

void loop()
{
float R0_NH3, R0_CO, R0_NO2;
float Rs_NH3, Rs_CO, Rs_NO2;
float ratio_NH3, ratio_CO, ratio_NO2;

R0_NH3 = gas.getR0(0);
R0_CO = gas.getR0(1);
R0_NO2 = gas.getR0(2);

Rs_NH3 = gas.getRs(0);
Rs_CO = gas.getRs(1);
Rs_NO2 = gas.getRs(2);

ratio_NH3 = Rs_NH3/R0_NH3;
ratio_CO = Rs_CO/R0_CO;
ratio_NO2 = Rs_NH3/R0_NO2;

SerialUSB.println("R0:");
SerialUSB.print(R0_NH3);
SerialUSB.print('\t');
SerialUSB.print(R0_CO);
SerialUSB.print('\t');
SerialUSB.println(R0_NO2);

SerialUSB.println("Rs:");
SerialUSB.print(Rs_NH3);
SerialUSB.print('\t');
SerialUSB.print(Rs_CO);
SerialUSB.print('\t');
SerialUSB.println(Rs_NO2);

SerialUSB.println("ratio:");
SerialUSB.print(ratio_NH3);
SerialUSB.print('\t');
SerialUSB.print(ratio_CO);
SerialUSB.print('\t');
SerialUSB.println(ratio_NO2);

SerialUSB.println("------------------------");
delay(1000);
}

プロジェクト

スマート作物: 従来の農業にIoTを導入!: 私たちの自然との使命はそれを保護することです。IoTを活用したHeliumを通じて、技術と監視方法を設計・実装します。

技術サポートと製品ディスカッション

産業用センサーへのアップグレード可能

SenseCAP S2110コントローラーS2100データロガーを使用することで、Groveを簡単にLoRaWAN®センサーに変えることができます。Seeedはプロトタイピングを支援するだけでなく、SenseCAPシリーズの堅牢な産業用センサーを使用してプロジェクトを拡張する可能性も提供します。

IP66の筐体、Bluetooth設定、グローバルLoRaWAN®ネットワークとの互換性、内蔵19Ahバッテリー、そして強力なAPPサポートにより、SenseCAP S210xは産業用途に最適な選択肢となります。このシリーズには、土壌水分、空気温度と湿度、光強度、CO2、EC、そして8-in-1気象ステーション用センサーが含まれています。次の成功する産業プロジェクトには最新のSenseCAP S210xを試してみてください。

Loading Comments...