logo
Published on

Raspberry Piに「Senseair-K30」を接続し制御する

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

Raspberry Piは汎用のシングルボードコンピュータであり、様々なセンサーやデバイスを組み込んで利用することができます。この記事では、空気中の二酸化炭素濃度を測定する「Senseair-K30」センサーをRaspberry Piに接続し、制御する方法について説明します。

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

1. Senseair-K30センサーの概要

Senseair-K30は、室内の二酸化炭素(CO2)濃度を測定するためのセンサーモジュールです。このセンサーは、高い精度でCO2濃度を検出し、Raspberry Piなどのシングルボードコンピュータに接続して利用できます。

2. Senseair-K30の接続

Senseair-K30をRaspberry Piに接続するには、通常、以下のような接続が必要です。

  • VCC(赤色): 5Vの電源
  • GND(黒色): 接地
  • RXD(緑色): Raspberry PiのシリアルTXDピン(通常はGPIO14)
  • TXD(白色): Raspberry PiのシリアルRXDピン(通常はGPIO15)

これらの接続を行った後、適切なライブラリやドライバーをインストールする必要があります。

3. Raspberry Piコードの作成

Senseair-K30を制御するためには、シリアル通信を使用します。以下は、Pythonを使用してSenseair-K30センサーを読み取る簡単な例です。

import serial
import time

ser = serial.Serial('/dev/serial0', baudrate=9600, timeout=2)

def read_co2():
    ser.write(b"\xFE\x44\x00\x08\x02\x9F\x25")  # コマンドを送信してCO2濃度をリクエスト
    time.sleep(0.1)
    response = ser.read(7)  # レスポンスを受信
    high = response[3]
    low = response[4]
    co2_ppm = (high << 8) + low
    return co2_ppm

try:
    while True:
        co2_value = read_co2()
        print(f"CO2濃度: {co2_value} ppm")
        time.sleep(1)

except KeyboardInterrupt:
    ser.close()
    print("プログラムを終了します")

このPythonスクリプトは、Senseair-K30からCO2濃度を取得して1秒ごとに表示します。必要に応じて、取得したデータをデータベースに保存したり、他のデバイスと連携させたりすることができます。

4. スクリプトの実行と確認

Raspberry PiにSenseair-K30を接続し、作成したPythonスクリプトを実行します。すると、コンソールに定期的にCO2濃度が表示されるはずです。

これで、Raspberry PiにSenseair-K30を接続し、CO2濃度を制御するための基本的な手順が完了しました。このセンサーを活用して、室内の空気品質モニタリングや自動制御などのプロジェクトを進めることができます。