3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MH-Z19で二酸化炭素濃度を測る (PC/TeraTerm)

Last updated at Posted at 2020-05-06

#概要
二酸化炭素を測ることが出来るMH-Z19を、組み込み前に動作試験したときの備忘録です。
コマンドとレスポンスで試験結果を確認したかったのでUARTによる取得を行っています。
これを応用することで、電子工作で確実なレスポンスを得られるため、プログラムが組みやすくなります。 (MH-Z19の電圧やパルス信号と比べれば)
私自身はESP32 (Arduino IDE)で実装出来ることを確認しています。

詳細な仕様については公式のドキュメントをあわせてご覧ください。

#必要なもの

  • MH-Z19(B)
  • パソコン
  • USB-UART変換アダプター
  • TeraTerm

#手順
※ 事前にソフトウェアやドライバーのインストール、変換アダプターとセンサーの接続を行ってください。

センサーにはバイナリを送信する必要がありますが、TeraTermではそのまま送ることは出来ません。
マクロファイルを用意した上で、それを読み込むことで実行可能です。以下はマクロファイルのサンプルです。

Command.ttl
/* Set binary display mode. */
setdebug 2

/* Send [Read CO2 concentration] command. */
send $FF$01$86$00$00$00$00$00$79

この実行が成功すると、コンソール上には以下のように表示されます。
なお、送信と受信の内容を確認するため、ローカルエコーを有効にしています。

Response
FF 01 86 00 00 00 00 00 79 FF 86 02 C8 42 00 02 00 6C

このうち、前半の9バイトは送信したバイナリ、後半9バイトが受信したバイナリです。
受信バイナリの (3バイトめの値) * 256 + (4バイトめの値) で濃度が算出できるので、上記の例では 02(2) * 256 + C8(216) = 728[ppm]となります。

#余談
Python + PySerialでも良いかもしれません。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?