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