logo
Published on

Arduinoに「SCD30」を接続し制御する

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

「SCD30」は、二酸化炭素(CO2)濃度を測定するためのセンサーモジュールです。この記事では、Arduinoに「SCD30」を接続し、その機能を制御してCO2濃度を取得する方法について解説します。

※モジュールの価格を比較 ▶ TemuAliExpress楽天メルカリ

1. SCD30センサーの概要

SCD30は、非常に高い精度でCO2濃度を測定できるセンサーモジュールです。I2C通信を使用してArduinoと連携し、簡単に利用できます。このセンサーは、室内の空気品質モニタリングや温室効果ガスの監視などに広く利用されています。

2. SCD30の接続

SCD30をArduinoに接続するためには、以下の接続が必要です。

  • VCC(赤色): 5Vの電源
  • GND(茶色): 接地
  • SCL(緑色): I2C通信のクロックライン
  • SDA(黄色): I2C通信のデータライン

これらの線を対応するArduinoのピンに接続します。Arduino Unoなどでは、通常A4がSDA、A5がSCLに割り当てられています。

3. Arduinoコードの作成

Arduino IDEを開いて、SCD30を制御するためのライブラリをインストールし、次に以下のようなサンプルコードを書きます。

#include <Wire.h>
#include <SCD30.h>

SCD30 airSensor;

void setup() {
  Serial.begin(9600);
  
  if (airSensor.begin() == false) {
    Serial.println("SCD30 sensor not detected. Please check your connections.");
    while (true);
  }
}

void loop() {
  if (airSensor.dataAvailable()) {
    float co2 = airSensor.getCO2();
    float temperature = airSensor.getTemperature();
    float humidity = airSensor.getHumidity();

    Serial.print("CO2: ");
    Serial.print(co2);
    Serial.print(" ppm, Temperature: ");
    Serial.print(temperature);
    Serial.print(" °C, Humidity: ");
    Serial.print(humidity);
    Serial.println(" %");

    delay(2000); // 2秒間隔でデータを取得
  }
}

このコードは、SCD30からCO2濃度、温度、湿度のデータを読み取り、シリアルモニターに表示するものです。

4. コードのアップロードと動作確認

コードを書き終えたら、Arduinoにアップロードして動作を確認します。シリアルモニターにCO2濃度、温度、湿度のデータが表示されれば、接続とプログラムが正常に機能しています。

これで、ArduinoにSCD30を接続し、室内のCO2濃度を監視するプロジェクトが完成しました。空気品質モニタリングや自動換気制御など、様々なアプリケーションに応用できます。