- Published on
Raspberry Piに「MH-Z19C」を接続し制御する
1315文字3分で読めます–––
閲覧数
- Authors
- Name
- 将 有坂
- short bio
- ラズパイやArduinoで電子工作をしてます。
はじめに
Raspberry Piは、シングルボードコンピューターとして広く利用されています。この記事では、二酸化炭素(CO2)センサーである「MH-Z19C」をRaspberry Piに接続し、センサーデータを取得して制御する方法について解説します。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚
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を接続し、二酸化炭素の濃度を測定する基本的な手順が完了しました。このデータを活用して、室内の空気の品質を監視したり、適切な制御を行うプロジェクトを展開することが可能です。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚