arduino CO2 濃度計

概要

arduino を使って CO2 濃度を測りたい.

これまでにやってきた, CO2 を測るもの (MH-Z19C, UART 接続) のスケッチを変更 (使用するライブラリを変更).

使用機材

  • arduino uno
  • CO2 センサー (MH-Z19C)
    • 秋月電子通商 (ここ) から購入.

参考ページ

配線

こちらの配線に加えて下のように接続.

  • MH-Z19C の PWM を arduino の 8 に接続.

ライブラリのインストール

MH-Z19C を便利に使えるライブラリをインストールする.

  • なお, [スケッチ] -> [ライブラリのインクルード] -> [ライブラリの管理] で下のライブラリをインストール
    • "MH-Z19" をキーワードとして表示される MH-Z CO2 Sensors by Tobias Schurg, Andreas Horn

スケッチ

ここを参考にしてスケッチを作成.

メモ書き 1

当初, スケッチをコンパイルすると,

Compilation error: call of overloaded 'MHZ(int, int, const int&)' is ambiguous

と言われて上手く行かなかった. これはライブラリの関数の使い方が間違っている. 引数の数が足らなかったと思われる. 当初,

  • 第 1 引数 : RX のピン番号 (RX_PIN)
  • 第 2 引数 : TX のピン番号 (TX_PIN)
  • 第 3 引数 : センサー機種番号 (MHZ19C; ヘッダーファイルで宣言されているのだろう)

としていたが,

  • 第 1 引数 : RX のピン番号 (RX_PIN)
  • 第 2 引数 : TX のピン番号 (TX_PIN)
  • 第 3 引数 : PWM のピン番号
  • 第 4 引数 : センサー機種番号 (MHZ19C; ヘッダーファイルで宣言されているのだろう)

とする必要があったのだろう. そのために上では MH-Z19C の PWM のピンも arduino と接続している. のだが, 今は動くのだけど, 実はポイントを完全に理解しているわけではない.

メモ書き 2

"MH-Z" をキーワードとして表示される MH-Z19 by Jonathan Dempsey をインストールして, MH-Z19 を参考にスケッチを作成したりもした. しかし, スケッチのコンパイルはできるものの, 転送時に

avrdude: stk500_getsync() attempt 1 of 10: not in sync

とか言われて上手く行かなかった.

おそらく, 配線が間違っていたから(?). 上に書いたように RX と TX の配線がポイントだったような気がする. たぶん.

実行

スケッチを検証 (コンパイル) して書き込む (転送する) と, LCD (とシリアルモニタ) に圧力と温度が表示される.

起動直後は 256 ppm と表示されるが, しばらく経つとそれらしい(高すぎる?)値となる. ひとまずは ~750 ppm とか. 高いよね.

写真