logo
Published on

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

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

Raspberry Piは豊富なGPIOピンを備えたシングルボードコンピュータで、様々なセンサーやデバイスを制御するために利用されます。この記事では、二酸化炭素(CO2)濃度を測定できるセンサー「SCD30」をRaspberry Piに接続し、制御する方法について解説します。

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

1. SCD30センサーの概要

SCD30は、二酸化炭素濃度を高精度で測定できるセンサーモジュールです。I2C通信を利用してデータを取得し、Raspberry Piと容易に連携できます。このセンサーを使用することで、室内の空気品質やCO2濃度をモニタリングできます。

2. SCD30の接続

SCD30をRaspberry Piに接続するためには、通常以下のような接続が必要です。

  • VCC(赤色): 3.3Vの電源
  • GND(茶色): 接地
  • SCL(黄色): I2Cクロック
  • SDA(緑色): I2Cデータ

これらの線をRaspberry Piの対応するGPIOピンに接続します。

3. Pythonコードの作成

Raspberry Pi上でSCD30を制御するためには、Python言語を使用します。まず、SCD30を操作するためのライブラリをインストールします。

pip install adafruit-circuitpython-scd30

次に、以下のPythonコードを使用してSCD30を制御します。

import board
import busio
import adafruit_scd30
import time

# I2Cバスの初期化
i2c = busio.I2C(board.SCL, board.SDA)

# SCD30センサーの初期化
scd = adafruit_scd30.SCD30(i2c)

# 測定開始
scd.measurement_interval = 2  # 2秒ごとに測定
scd.start_periodic_measurement()

try:
    while True:
        if scd.data_available:
            # 測定データの取得
            co2_ppm = scd.CO2
            temperature = scd.temperature
            humidity = scd.relative_humidity

            # 取得したデータの表示
            print(f"CO2: {co2_ppm} ppm, Temperature: {temperature} C, Humidity: {humidity} %")

        time.sleep(2)  # 2秒待つ

except KeyboardInterrupt:
    # プログラムが終了したときにセンサーを停止
    scd.stop_periodic_measurement()
    print("Measurement stopped.")

4. コードの実行とデータの取得

コードを実行すると、SCD30が指定した間隔でCO2濃度、温度、湿度を取得します。コンソールにデータが表示されることを確認できます。取得したデータを活用して、室内環境をモニタリングするプロジェクトを進めることができます。

これで、Raspberry PiにSCD30を接続し、Pythonコードを使用してセンサーを制御する基本的な手順が完了しました。