edit

Grove 湿度、温度とCO2センサー(SCD30)

このGrove - CO2と温度、湿度センサー(SCD30)はSensirion SCD30に基づく高精度二酸化炭素センサーです。このセンサーの測定範囲は0 ppm-40'000 ppmであり、400ppm〜10'000ppmの間で測定精度は±(30 ppm + 3%) に達します。

二酸化炭素検出のための非分散赤外線(NDIR)測定技術に加えて、SCD30は、同じセンサーモジュール上でSensirion湿度センサーと温度センサーを統合します。

アプリケーションアイディア

  • 空気清浄器
  • 環境モニタリング
  • 植物環境モニタリングシステム
  • Arduino気象ステーション

特徴

  • NDIR CO2センサー技術を使用:Sensirion SCD30内蔵
  • 多機能:温度センサー、湿度センサーを同じセンサーモジュールに統合
  • 高精度、広い測定範囲:400ppmから10'000ppmの間で±(30 ppm + 3%)
  • 優れた安定性:デュアルチャネル検出
  • デジタルインターフェイスI2C、ブレッドボード対応、Grove互換
  • 低電力消費
  • センサーの超長寿命 (15年)

仕様

パラメーター
供給電圧 3.3V / 5V
作動温度 0 – 50℃
貯蔵温度 - 40°C – 70°C
湿度作動条件 0 – 95 %RH
センサーの寿命 15 years
インターフェース I2C
I2C アドレス 0x61
サイズ L: 61mm W: 42mm H: 19mm
重量 19.7g
パッケージサイズ L: 110mm W: 70mm H: 40mm
総重量 27g
表 1.一般的な仕様
パラメーター 条件
二酸化炭素測定範囲 0 – 40’000 ppm
精度 400ppm – 10'000ppm ± (30 ppm + 3%)
再現性 400ppm – 10'000ppm 10ppm
応答時間 τ63% 20 s
表2.二酸化炭素センサーの仕様
パラメーター 条件
湿度測定範囲 0 %RH – 100 %RH
精度 0 – 50°C, 0 – 100%RH ±2 %RH
再現性 0.1 %RH
応答時間 τ63% 8 s
表 3.湿度センサーの仕様
パラメーター 条件
温度測定範囲 -40°C – 120°C
精度 0 – 50°C ±0.5°C
再現性 0.1°C
応答時間 τ63% > 2 s
表4.温度センサーの仕様
パラメーター 条件
平均電流 2sの更新間隔 19 mA
最大電流 測定中 75 mA
エネルギー消費 1測定 120 mJ
表 5.電気仕様

ハードウェア一覧

プラットフォーム

Arduino Raspberry Pi BeagleBone Wio LinkIt ONE

GroveーCO2&温度&湿度センサー(SCD30)をはじめよう

Arduinoで実行する

ハードウェア

必要な部品

Seeeduino V4.2 ベースシールド Grove-CO2 & T&H SCD30
enter image description here enter image description here enter image description here
購入 購入 購入

Seeeduino V4.2とベースシールドの組み合わせにあたる新製品のSeeeduino Lotus M0+をリリースしました。ご利用ください。

Note

1 ポートを壊さないように、USBケーブルを穏やかに差し込んでください。内部2本のワイヤーを備えるUSBケーブルがデータを伝送できないので、4本のワイヤーを備えるのを使ってください。自分が持っているワイヤーをよく知らない場合、 こちら を使用してください。

2 grove製品を買うとき、各Groveモジュールは一つのGroveケーブルが付属されています。そのGroveケーブルをなくした場合、こちら から購入してください。

ハードウェアの接続

  • Step 1. Grove - 二酸化炭素と温度湿度センサー(SCD30)をベースシールドの I2C ポートに接続します。

  • Step 2. Grove - ベースシールドをSeeeduinoの中に差し込みます。

  • Step 3. USBケーブルを通して、SeeeduinoをPCに接続します。

ソフトウェア

Attention

初めてArduinoを使用する場合、始める前にぜひ Arduino入門 を読んでください。

  • Step 1. GithubからGroveマルチスイッチライブラリーをダウンロードします。
  • Step 2. ライブラリーをインストールする方法を参照して、Arduino用のライブラリーをインストールします。

  • Step 3. Arduino IDEを再起動し、例を開いてください。開く方法は次のように三つあります: a. File → Examples →Grove_scd30_co2_sensor→SCD30_Example というパスを介して、直接Arduino IDEの中で開きます。

    b. SCD30_Example.ino をクリックして、コンピューターの中で開きます。SCD30_Example.ino**が **XXXX\Arduino\libraries\Seeed_SCD30-master\examples\SCD30_Example というフォルダで見られます。その中の XXXX がArduino IDEをインストールしたロケーションです。

    c. または、コードブロックの右上隅にあるというアイカンをクリックして、次のコードをArduino IDEの中の新たなスケッチにコピーします。

#include "SCD30.h"

#if defined(ARDUINO_ARCH_AVR)
    #pragma message("Defined architecture for ARDUINO_ARCH_AVR.")
    #define SERIAL Serial
#elif defined(ARDUINO_ARCH_SAM)
    #pragma message("Defined architecture for ARDUINO_ARCH_SAM.")
    #define SERIAL SerialUSB
#elif defined(ARDUINO_ARCH_SAMD)
    #pragma message("Defined architecture for ARDUINO_ARCH_SAMD.")  
    #define SERIAL SerialUSB
#elif defined(ARDUINO_ARCH_STM32F4)
    #pragma message("Defined architecture for ARDUINO_ARCH_STM32F4.")
    #define SERIAL SerialUSB
#else
    #pragma message("Not found any architecture.")
    #define SERIAL Serial
#endif



void setup()
{
    Wire.begin();
    SERIAL.begin(115200);
    SERIAL.println("SCD30 Raw Data");
    scd30.initialize();
}

void loop()
{
    float result[3] = {0};

    if(scd30.isAvailable())
    {
        scd30.getCarbonDioxideConcentration(result);
        SERIAL.print("Carbon Dioxide Concentration is: ");
        SERIAL.print(result[0]);
        SERIAL.println(" ppm");
        SERIAL.println(" ");
        SERIAL.print("Temperature = ");
        SERIAL.print(result[1]);
        SERIAL.println(" ℃");
        SERIAL.println(" ");
        SERIAL.print("Humidity = ");
        SERIAL.print(result[2]);
        SERIAL.println(" %");
        SERIAL.println(" ");
        SERIAL.println(" ");
        SERIAL.println(" ");
    }

    delay(2000);
}

Attention

ライブラリーファイルが更新された可能性があるので、このコードが更新されたライブらアリーに応用できない可能性もあります。そのため、最初の二つの方法をお勧めします。

Success

うまくいったら、Grove - 二酸化炭素と温度湿度センサー(SCD30)の生データはシリアルモニターから読み取れます。

キャリブレーションと配置

実の状況の中でより精確な結果を得るために、次のような二つのポイントを注意しなければなりません。

    1. 正確な配置
    1. キャリブレーション

配置

正しく配置できるように、 SCD30デザインのガイドライン をご参照ください。

キャリブレーション

アルゴリズムがASCのために初期のパラメータセットを見つけられるように、初めて作動されるときに、最低7日が必要とします。このセンサーは毎日最低一時間に新鮮な空気にさらさなければなりません。また、この期間中、センサーは電源から切り離されないほうがいいです。そうしないと、キャリブレーションパラメーターを探すプロシージャが中止され、最初からはじめなければなりません。成功に計算されたパラメーターは、再起動した後、ASCのために発見されたパラメーターが依然として存在している効果があるSCD30の不揮発性メモリに保存します。キャリブレーションの詳しくについては、Sensirion SCD30センサーモジュールのインターフェースの説明をご参照ください。

SCD30ライブラリーフォルダの中には二つのinoサンプルがあります。SCD30_auto_calibration.ino を起動させて、キャリブレーションを始めることができます。

Wio Terminal(ArduPy)と一緒に使う

ハードウェア

  • Step 1. 必要な部品:
Wio Terminal Grove-CO2 & T&H SCD30
enter image description here enter image description here
Get One Now Get One Now
  • Step 2. Grove-SCD30 センサーをWio TerminalのGrove I2C ポートに接続します。

  • Step 3. Wio TerminalをPCにUSB Type-Cケーブルで接続します。

Software

  • Step 1. ArduPy Getting Started に従って、ArduPyの開発環境を設定します。

  • Step 2. ArduPyファームウェアがWioターミナルにフラッシュされていることを確認します。 詳しくは こちら をご覧ください。

aip install Seeed-Studio/seeed-ardupy-scd30
aip build
aip flash
  • Step 3. 次のコードをコピーして、 ArduPy-scd30.pyとして保存します:
from arduino import grove_scd30
from machine import LCD
from machine import Sprite
import time

scd30 = grove_scd30()
lcd = LCD()
spr = Sprite(lcd) # Create a buff

def main():
    spr.createSprite(320, 240)
    while True:
        spr.setTextSize(2)
        spr.fillSprite(spr.color.BLACK)
        spr.setTextColor(lcd.color.ORANGE)
        spr.drawString("SCD30 Reading", 90, 10)
        spr.drawFastHLine(40, 35, 240, lcd.color.DARKGREY)
        spr.setTextColor(lcd.color.WHITE)
        spr.drawString("- CO2 Level: ", 20, 50)
        spr.drawString("- Temperature: ", 20, 80)
        spr.drawString("- Humidity: ", 20, 110)

        if(scd30.isAvailable()):
            data = scd30.getCarbonDioxideConcentration()
            spr.drawFloat(data[0], 2,220,50) # CO2
            spr.drawFloat(data[1], 2, 220,80)
            spr.drawFloat(data[2], 2, 220,110)
            spr.pushSprite(0,0)
        time.sleep_ms(500)

        print("\nCarbon Dioxide Concentration:", data[0])
        print("Temperature:", data[1])
        print("Humidity:", data[2])

if __name__ == "__main__":
    main()
  • Step 4. ArduPy-scd30.py を既知の場所に保存します。次のコマンドを実行し、 <YourPythonFilePath>ArduPy-scd30.py の場所に置き換えます。
aip shell -n -c "runfile <YourPythonFilePath>"
# Example:
# aip shell -n -c "runfile /Users/ansonhe/Desktop/ArduPy-scd30.py"
  • Step 5. 以下のように3つのデータ値が表示され、Wio TerminalのLCD画面に表示されます。
ansonhe@Ansons-Macbook-Pro ~:aip shell -n -c "runfile /Users/ansonhe/Desktop/ArduPy-scd30.py"
Positional argument (/dev/cu.usbmodem1414301) takes precedence over --open.
Connected to ardupy
Carbon Dioxide Concentration: 2360.639
Temperature: 29.18707
Humidity: 66.88538

Carbon Dioxide Concentration: 2360.639
Temperature: 29.18707
Humidity: 66.88538

Carbon Dioxide Concentration: 2500.573
Temperature: 29.17372
Humidity: 66.61072

回路図

資料

技術サポート

技術問題があれば、フォーラムに提出してください。