スキップしてメイン コンテンツに移動

投稿

MH-Z19B の自動校正をオフにする

前回 MH-Z19B を使った持ち歩きできる CO 2 センサーを作りました。 このセンサーは24時間で最低の CO 2 濃度を 400 ppm とみなす、という自動0点補正の機能が、出荷時に ON になっています。 しかし、持ち歩いて使うときだけ電源を入れる使い方をすると、 CO 2 濃度がめったに外気と同じにならないということもありそうなので、自動校正を OFF にしたいと思いました。 MH-Z19B のマニュアル を読んで、自動校正 OFF のプログラムを書きました。 #include<SoftwareSerial.h> #include<Wire.h> #include<Adafruit_GFX.h> #include<Adafruit_SSD1306.h> Adafruit_SSD1306 display(-1); SoftwareSerial MHZ19Serial(A0, A1); byte Request1[9] = {0xFF, 0x01, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86}; byte Request2[9] = {0xFF, 0x01, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78}; void setup() { MHZ19Serial.begin(9600); Serial.begin(115200); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); } void loop() { MHZ19Serial.write(Request1, sizeof Request1); delay(100); //念のため delay 入れた。たぶんいらない。 MHZ19Serial.write(Request2, sizeof Request2); display.clearDisplay(); display.setTextSize(2); display.setTextColor(WHITE); display.setCursor(0, 0); displ...
最近の投稿

「密」を測ろう

COVID-19 のパンデミックでみんながお家にこもるようになりました。 でも、たまにはお出かけしたいですよね。  お出かけするときに気になるのが、そこで換気がしっかり行われているかどうか、です。 換気の目安となる CO 2 濃度を測る測定器が欲しくなり、以下の記事を参考に自作してみました。   おうちの二酸化炭素濃度を計ってみる   使用しているセンサーは MH-Z19B というセンサーで、非分散赤外線吸収法 (non-disperse infrared, NDIR) という赤外線の吸収により CO 2 濃度を測るしくみのようです。このセンサーのデジタル出力を、arduino という小型コンピュータで読み出して、ディスプレイに表示するしくみですね。Arduino は安い arduino nano 互換機、ディスプレイは 128 × 64 ドットの有機ELディスプレイ (organic light-emitting diode, OLED) を使いました。一番高価なのは CO 2 センサーですね。 ついでに、LED でおおまかな換気状態を表示することにしました。arduino の D2, D3, D4, D5 ピンに 150 Ωの抵抗を介してそれぞれ、青、緑、黄色、赤の LED を接続し、以下のように制御しました。 void setup() { MHZ19Serial.begin(9600); Serial.begin(115200); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); pinMode(2, OUTPUT); //D2 pin blue pinMode(3, OUTPUT); //D3 pin green pinMode(4, OUTPUT); //D4 pin yellow pinMode(5, OUTPUT); //D4 pin red } void LED(const word ppm) { if (ppm あとは loop() の中で LED(ppm) を呼ぶようにして、LED を点灯させることができました。 古いモバイルバッテリーから USB で給電するようにして、穴を開けた箱に詰め込んだら、冒頭...