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 とか. 高いよね.