ラズパイで二酸化炭素濃度を測定(3)ーシステムの作成、設定 | virt_flyのブログ

virt_flyのブログ

フライトシミュレーターソフトのFlightGearで仮想飛行を楽しむブログです。

↑Raspberry Pi Zero WHとCO2センサーMH-Z19B(手前)

Raspberry PiとMH-Z19BでCO2濃度計測の覚書

コロナ対策として、換気の目安となる二酸化炭素濃度を知るための測定器が、あまた売られています。怪しげな安物を除いても、1万円から10数万円と高価ながら、キャリブレーションができないようなお粗末なものも少なくないとか。

 

貧乏人には、高額なものに手を出せないし、ハズレを引くくらいなら、はじめから安いセンサーで測定器を自作するほうがましかも。

 

1)システムを構成する機器

 

 シングルボードコンピューター  Raspberry Pi Zero WH
 非分散型赤外線(NDIR)方式
 CO2センサー
 MH-Z19B
 リモート操作用  パソコンまたはスマートホン

 

 

 

 

 

 

 

 

 

2)機器の接続

 

●CO2センサーMH-Z19BとRaspberry Piとの接続

 Raspberry Pi側  MH-Z19B側
 5V  V+
 GPO14(TXD)  Rxd
 GPO15(RXD)  Txd
 GND  V-

 

 

 

 

 

 

 

 

●パソコン(スマホ)とRaspberry Piとの接続

Wi-Fiを通じたインターネット接続を介し、realVNCによりパソコンまたはスマートホンからRaspberry Piをリモート操作します。

 

3)システムの設定と動作確認

 

●ライブラリーのインストール

Ued Takeyukiさんというご奇特な方がMH-Z19のpythonパッケージを公開されているのを利用(Https//test pypi.orgg/project/mh-z19/)。Terminalより以下のようなコマンドを実行します。

 $ sudo pip3 install mh-z19

 

 

この段階では、動作確認をしてもRaspberry Pi ZeroではttySOがどうしたやらのエラーが表示され、Raspberry Pi 4では何も起こらずじまいでした。

 

●シリアルを有効に

Raspberry Pi OSの[設定]から[インターフェース]タブの「シリアル」の有効にチェックをいれてみました。が、変化は見られません(次のraspi-configを実行するなら不要?)。

 

●UARTを有効に

/boot/config.txtの末尾にenable_uart=1を追加。変化は見られません。

しかたがないので、ターミナルでsudo raspi-configを実行。

 $ sudo raspi-config
 続いて[5 Interfacing Optoins]を選択
 →次いで[P6 Serial]を選択。
 →「Would you like a login shell to be accessible over serial?」と聞いてくるので、
 [いいえ]を選択。
 →「Would you like the serial port hardware to be enabled? 」と聞いてくるので、
 [はい]を選択して[了解]

 

 

 

 

 

 

 

 

 

 

 

●動作確認

動作確認のため、sudo python3 -m mh_z19を実行。無事、下記のように二酸化炭素濃度が表示されました。

 例)
 pi@raspberrypi:~ $ sudo python3 -m mh_z19  ←これを実行
 {"co2": 590}  ←CO2濃度

 

 

 

 

 

↑パソコンで遠隔操作されたRaspberry Pi ZeroでCO2測定の動作確認を行っているところ

 

4)キャリブレーション(校正)

 

CO2センサーの使用に際しては、精確を期すため常々calibration(校正)を行うことが求められます。基準となる外気の二酸化炭素濃度をゼロポイントとし、MH−Z19Bでは400ppmを与えます。その方法には複数ありますが、今回は手動校正を行いました。

400ppm未満(の屋外のもしくはよく換気した室内)で少なくとも20分間動作の上、HDピンをGNDに7秒以上接触させる、というわかりやすい方法です。

 

なお、MH-Z19Bには、ABCロジック機能という自動校正機能があって、電源投入後の24時間で一番低かった時を400ppmに設定してくれるという便利な(?)機能があります。デフォルトはON。24時間365日人がいるようなところに置いておいたらどうなるのでしょう。今回利用したpythonパッケージでは、ON/OFFの機能が実装されているようです。

 

<参考>

「Raspberry Piにセンサーを付けてCO2濃度を測定してみる」(打つか投げるか https://blog.ko31.com/202004/raspberry-pi-measure-co2/)

「窓を開けて新鮮な空気をいれよう!Raspberry PiでCO2濃度を測ろう」(https://qiita.com/UedaTakeyuki/items/c5226960a7328155635f

「Intelligent Infrared CO2 Module(Model: MH-Z19B)」(Winsen https://www.winsen-sensor.com/d/files/infrared-gas-sensor/mh-z19b-co2-ver1_0.pdf)