logo
Published on

Arduinoに「MH-Z16」を接続し制御する

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

Arduinoを使用して、さまざまなセンサーを接続し制御することは、IoTプロジェクトや環境モニタリングなどの分野で広く利用されています。この記事では、Arduinoに「MH-Z16」二酸化炭素(CO2)センサーを接続し、制御する方法について解説します。

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

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

MH-Z16は、二酸化炭素(CO2)濃度を測定するためのセンサーであり、非常に高い精度でCO2濃度を検出することができます。このセンサーは、室内の空気品質をモニタリングするために使用され、Arduinoとの組み合わせが容易です。

2. MH-Z16の接続

MH-Z16センサーは、通常、以下の4つのピンを持っています。

  • VCC(赤色): 5Vの電源
  • GND(黒色): 接地
  • RXD(緑色): ArduinoのTXピンに接続
  • TXD(白色): ArduinoのRXピンに接続

これらを対応するArduinoのピンに接続します。

3. Arduinoコードの作成

MH-Z16センサーは、シリアル通信を使用してCO2濃度を送信します。以下は、MH-Z16センサーを接続したArduinoのサンプルコードです。

#include <SoftwareSerial.h>

SoftwareSerial mh_z16(2, 3); // RX, TX

void setup() {
  Serial.begin(9600);
  mh_z16.begin(9600);
}

void loop() {
  if (mh_z16.available() >= 9) {
    if (mh_z16.read() == 0xFF) {
      if (mh_z16.read() == 0x86) {
        int co2 = mh_z16.read() * 256 + mh_z16.read();
        int temp = mh_z16.read() - 40;

        Serial.print("CO2濃度: ");
        Serial.print(co2);
        Serial.println(" ppm");

        Serial.print("温度: ");
        Serial.print(temp);
        Serial.println(" ℃");

        delay(2000); // 2秒待つ
      }
    }
  }
}

このコードは、MH-Z16から送信されるデータを解釈し、CO2濃度と温度をシリアルモニターに表示します。

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

コードをArduinoにアップロードし、MH-Z16センサーが正しく動作しているかを確認します。シリアルモニターにCO2濃度と温度が表示されれば、センサーの接続と制御が成功しています。

これで、ArduinoにMH-Z16センサーを接続し、室内のCO2濃度と温度をモニタリングする基本的な手順が完了しました。さらに、この情報を利用して環境の監視やアクションを制御するプロジェクトを構築することが可能です。