はじめに
ラズベリーパイ4B + MH-Z19Cを使用したCO2の濃度測定をしました。
この構成自体は、他の記事で試されている方もいるので、
ピン配置やサンプルプログラムは多くの先行記事があると思います。
構築の仕方はそちらを参照してもらえればと思うのですが、
mh-z19 をpip installするときにはまってしまったのでその対処の仕方をここでは書こうと思います。
環境
ラズベリーパイOS 64bit版の 2023-05-03verを使用しております。
pi@raspberrypi:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 11 (bullseye)
Release: 11
Codename: bullseye
また、デフォルトでのpythonのバージョンは、3.9です。
mh-19cのインストール
先駆者の記事をもとに、以下のようなインストールを実行するとインストールに失敗する。
pip install mh-z19
この時に、lgpioをローカルでビルドしようとしてエラーになります。
理由
ラズベリーパイOSがBookwormをサポートし始めたというところもあり、Bookwormはデフォルトでインストールされているlgpioを内部で使用しています。
(ラズパイ5はRPI.GPIOがどうやら使えないとのこと)
https://github.com/gpiozero/gpiozero/issues/1120#issuecomment-1951405471
そのため、mh-z19ライブラリも、それに合わせて変更をしていってるようです。
現に、pypiのhistoryを見てみると、2024年5月と8月に新しいバージョンがリリースされています。
https://pypi.org/project/mh-z19/#history
このチケットを見るとgithubのissueで3.1.5からbookwormに対応すべく、lgpioを依存関係として含めているように変更してるようです。
https://github.com/UedaTakeyuki/mh-z19/issues/53#issuecomment-2095335182
解決方法
遅くなりましたが、mh_z19のバージョンを落としてインストールしてやったらいいです。
pip install mh-z19==3.1.3
ちなみに私は最初どこまで落としたらいいのかわからなかったので 0.6.3までバージョンを落としてしまいましたが。。。