MH-Z19 CO2センサ on ESP32
IoT界隈でよく見るCO2センサを入手したのでESP32で使ってみる
開発が活発そうなライブラリがあったので使用
Arduino IDEのライブラリマネージャから直接落とせた
WifWaf/MH-Z19: For Arduino Boards (&ESP32). New Commands & Examples. Supports Hardware/Software Serial. SC16IS750 version (see extras).
DevkitC
UART0とか1使うと干渉して死ぬので大人しくExampleの16, 17を使いましょう
https://gyazo.com/e24a1221f115032da9951e16876f5c46
code:.ino
#include "MHZ19.h"
MHZ19 myMHZ19;
HardwareSerial mySerial(2);
void setup() {
Serial.begin(115200);
Serial.println("Hi, this is ESP32");
mySerial.begin(9600, SERIAL_8N1, 16, 17);
myMHZ19.begin(mySerial);
Serial.println("Callibrating...");
myMHZ19.autoCalibration(false);
}
void loop() {
int CO2 = myMHZ19.getCO2();
int8_t Temp = myMHZ19.getTemperature();
Serial.println("CO2 (ppm): " + String(CO2) + "\tTemperature (C): " + String(Temp));
delay(500);
}
obniz
obnizでもやってみた
先行事例.Webコンソールから実行するタイプ yukilab2/obniz_co2_monitor
Node.jsで動かせるプロジェクトを作った
https://github-link-card.s3.ap-northeast-1.amazonaws.com/kn1cht/obniz-mh-z19-to-machinist.png
kn1cht/obniz-mh-z19-to-machinist: Read MH-Z19 CO2 sensor by obniz and send to Machinist
ちょうどIIJさんのMachinistを使ってみたかったので,メトリックを送ってみることにした
ある日の会議室.時間が長くなるにつれ順調に上がっているが下限が300 ppmはおかしい
ちゃんとキャリブレーションしないとダメな個体を引いたかもしれない
https://gyazo.com/dd5dd73e759d07811a2435a2ea6f0707
参考にしていたコードのミスでした.計算式を修正したらちゃんと400 ppmが下限になった