Arduino IDE 用の MH-Z19 二酸化炭素センサ用のライブラリです。
version 0.31
License MIT
-
このライブラリを Arduino IDE にインクルードしてください。
-
MH-Z19 を Arduino や ESP-WROOM-02/32 にシリアル接続してください。
MH-Z19 Vout → Arduino Vout(5V)
MH-Z19 GND → Arduino GND
MH-Z19 Tx → Arduino Digital Pin (Serial の Rx ピン用)
MH-Z19 Rx → Arduino Digital Pin (Serial の Tx ピン用)
MH-Z19 の他のピンは使用しません。 -
Arduino IDE からスケッチ例を参照してください。
- MH-Z19 は PWM での接続もサポートしていますが、このライブラリはシリアル(UART)接続のみ対応しています。
- ESP-WROOM-02/32 でのみテストをしています。他の Arduino(もしくは互換機)で動作しない場合はご連絡ください。
-
MHZ19_uart
素のコンストラクタ。こちらで変数宣言した場合は、事後にbegin関数でRx/Txピン番号を設定してください。 -
MHZ19_uart(int rx, int tx)
使用するRx/Txピン番号を設定できるコンストラクタです。
-
void begin(int rx, int tx)
使用するRx/Txピン番号を設定する。 -
void setHardwareSerialNo(int serialNo)
使用するHardwareSerialを指定する(0-2) ※ESP32でのみ使用可 -
void setAutoCalibration(bool autocalib)
この関数は、オートキャリブレーション機能を有効にするか無効にするかを設定します。 MH-Z19 は、デフォルトで「オートキャリブレーション」機能が有効になっています。 オートキャリブレーションが有効な場合、電源投入後24時間ごとに「ゼロキャリブレーション」(その時点の二酸化炭素濃度を「大気=400ppm」と判断すること)して、以後の数値を出力します。 MH-Z19を屋外で使う場合は非常に有効な機能ですが、屋内で使う場合は迷惑な機能でしかありません。 -
void calibrateZero()
ゼロキャリブレーションを実施します。ゼロキャリブレーションは大気下での算出精度を高めるためのものです。 ゼロキャリブレーションを実施する場合は、MH-Z19の電源を投入後、最低20分以上大気(屋外)で動作させ、その後この関数を実行してください。 -
void calibrateSpan(int ppm)
スパンキャリブレーションを実施します。スパンキャリブレーションは1000~2000ppm程度のもとでの算出精度を高めるためのものです。 スパンキャリブレーションを実施する場合は、MH-Z19の電源を投入後、最低20分以上2000ppm程度(少なくとも1000ppm以上)の環境で動作させ、その後この関数を実行してください。 なお、1000ppm未満でこの関数を実行した場合、スパンキャリブレーションは実行されません。
また、スパンキャリブレーションを実行する前にゼロキャリブレーションを実施してください。 -
int getCO2PPM()
現在の二酸化炭素濃度(ppm)を取得します。 -
int getTemperature()
現在の温度(℃)を取得します。(MH-Z19の隠し機能?のため動作保証はしません。また、取得できる値は整数値であるため精度はイマイチです。)
-
MH-Z19 Data sheet
http://www.winsen-sensor.com/d/files/PDF/Infrared%20Gas%20Sensor/NDIR%20CO2%20SENSOR/MH-Z19%20CO2%20Ver1.0.pdf -
MH-Z19B Data sheet
http://www.winsen-sensor.com/d/files/infrared-gas-sensor/mh-z19b-co2-ver1_0.pdf -
MH-Z19C Data sheet
https://www.winsen-sensor.com/d/files/infrared-gas-sensor/mh-z19c-pins-type-co2-manual-ver1_0.pdf
- ver. 0.1: 非公開
- ver. 0.2: 初回公開
- ver. 0.3: ESP-WROOM-32対応, ライブラリ名変更(MHZ19_Serial→MHZ19_uart)
- ver. 0.31: MH-Z19Cで動作確認, getStatus(), isWarming()関数を削除, getPPM()関数名を変更(getCO2PPM), その他リファクタリング