Raspberry PiでCO2センサ「MH-Z19C」を使ってCO2を計測します。プログラム開発はGo言語を使用します。

Raspberry PiとMH-Z19Cの接続

CO2センサ「MH-Z19C」の仕様を次に示します。

  • 電源電圧:DC5±0.1V
  • インターフェース電圧:3.3V(5V互換)
  • 検出範囲:400~5000ppm
  • 出力:シリアルポート(UART、TTLレベル3.3V)、PWM

CO2センサ「MH-Z19C」は中国の製造元から購入しました。

Raspberry PiとCO2センサ「MH-Z19C」とは次のようにUARTで接続します。

MH-Z19C Raspberry Pi
Vin 5V
GND Ground
Tx GPIO14 (RXD)
Rx GPIO15 (TXD)

接続画像を次に示します。

CO2計測プログラムの作成

CO2計測プログラム「goco2」は、「kebhr/mhz19」のサンプルコードを使用しました。最初に次のコマンドでライブラリをインストールします。

$ go get github.com/kebhr/mhz19/cmd/mhz19

動作確認に使用したCO2計測プログラム「goco2」を次に示します。

co2.go

package main

import (
	"log"
	"github.com/kebhr/mhz19"
)

func main() {
	m := mhz19.MHZ19{}
	if err := m.Connect(); err != nil {
		log.Fatal(err)
	}
	v, err := m.ReadCO2()
	if err != nil {
		log.Fatal(err)
	}
	log.Printf("CO2 Concentration: %dppm\n", v)
}

CO2計測プログラムの実行

作成したCO2計測プログラム「goco2」を実行します。赤く点滅している部分に息を吐きかけると値が上昇します。

$ go build
$ ls
co2.go  goco2
$ sudo ./goco2
2021/06/25 03:46:14 CO2 Concentration: 833ppm
$ sudo ./goco2
2021/06/25 03:47:23 CO2 Concentration: 740ppm
$ sudo ./goco2
2021/06/25 03:48:13 CO2 Concentration: 1947ppm
$ sudo ./goco2
2021/06/25 03:48:49 CO2 Concentration: 2020ppm
$ sudo ./goco2
2021/06/25 03:48:54 CO2 Concentration: 1809ppm
$ sudo ./goco2
2021/06/25 03:48:57 CO2 Concentration: 1743ppm