logo
Published on

Raspberry Piに「MH-Z19C」を接続し制御する

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

Raspberry Piは、シングルボードコンピューターとして広く利用されています。この記事では、二酸化炭素(CO2)センサーである「MH-Z19C」をRaspberry Piに接続し、センサーデータを取得して制御する方法について解説します。

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

1. MH-Z19Cセンサーの概要

MH-Z19Cは、二酸化炭素濃度を測定するためのセンサーモジュールです。このセンサーは、UART通信を介してデータを送信し、二酸化炭素の濃度を取得することができます。Raspberry Piなどのシングルボードコンピューターと組み合わせて使用されることが一般的です。

2. MH-Z19Cの接続

MH-Z19CをRaspberry Piに接続するには、以下の手順を実行します。

  • VCC(赤色): 5Vの電源
  • GND(黒色): 接地
  • RXD(白色): Raspberry PiのTXD(GPIOピン14)に接続
  • TXD(緑色): Raspberry PiのRXD(GPIOピン15)に接続

3. Pythonコードの作成

Raspberry Pi上でPythonを使用してMH-Z19Cを制御するためのサンプルコードを以下に示します。

import serial
import time

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

def read_co2():
    ser.flush()
    ser.write(b"\xFF\x01\x86\x00\x00\x00\x00\x00\x79")
    time.sleep(0.1)
    response = ser.read(9)
    
    if len(response) == 9 and response[0] == 0xFF and response[1] == 0x86:
        high = response[2]
        low = response[3]
        co2 = (high << 8) + low
        return co2
    else:
        return None

try:
    while True:
        co2_level = read_co2()
        if co2_level is not None:
            print(f"CO2 Level: {co2_level} ppm")
        else:
            print("Failed to read CO2 level.")
        time.sleep(5)

except KeyboardInterrupt:
    ser.close()
    print("Exiting program.")

このコードは、MH-Z19Cから二酸化炭素の濃度を読み取り、5秒ごとにそれを表示します。

4. コードの実行と動作確認

Raspberry PiにMH-Z19Cを接続し、上記のPythonコードを実行します。正しく接続されていれば、コンソールに定期的にCO2の濃度が表示されるはずです。

これで、Raspberry PiにMH-Z19Cを接続し、二酸化炭素の濃度を測定する基本的な手順が完了しました。このデータを活用して、室内の空気の品質を監視したり、適切な制御を行うプロジェクトを展開することが可能です。