MESHハブアプリ用のRaspberry Piで、MH-Z19Cのデータが読み取れない

 

MESHハブアプリをインストールするのに、Raspberry Pi OS Stretchにしてカーネルをダウングレードした。

MESHハブアプリ

https://support.meshprj.com/hc/ja/articles/360041244813-MESHハブアプリをインストールするRaspberry-Piを準備する

Raspberry Pi OS(旧称:Raspbian)Stretchを用意する。

動作確認済みのカーネルバージョンは以下になります。

Linux raspberrypi 4.14.98-v7+ #1200 SMP Tue Feb 12 20:27:48 GMT 2019 armv7l GNU/Linux

https://support.meshprj.com/hc/ja/articles/115002125554-Raspberry-Piに-MESH-ハブ-アプリをインストールする方法を教えてほしい

ここまで問題なく完了。

それでは、これまでBullseyeでも使っていた、CO2センサーモジュール MH-Z19Cを復活させることにする。。。が!

mh-z19 3.1.3

憧れの二酸化炭素濃度が取得

できない。

$ sudo python3 -m mh_z19

{}

なぜ?

 

In case you can't get the value.

You need a 1-5k Ohm resistor between Vcc+ and TxD line.

そう言われても。

 

Please try to install "i2c-tools".

sudo apt install i2c-tools

After installing it, the "null" problem was solved.

これもダメで。(まあ、そもそもI2C通信ではないと思うのだが)

 

I had the same issue. I added:

[all]

enable_uart=1

core_freq=250

to /boot/config.txt, reboot and /dev/serial0 works.

これもダメで。

 

もひとつ、

MH-Z19BとRaspberry Pi Zeroで二酸化炭素濃度を測定する

mini UARTなので、そちらで使う方はパフォーマンスが落ちたり 問題が起きやすかったりする

のだそうで(PL011(UART0、UART2~UART5)とmini UART(UART1)の違い)、これが問題なのかも?と、

/boo/config.txt

dtoverlay=pi3-miniuart-bt

してみるも、ダメ。

 

うーん、、、

How about using PWM interface?

、、、ん?

PWM support.

つまり、シリアル通信でセンサー値を直接読み取るのではなくて、パルス幅をCO2濃度に換算するのかな。とりあえずこれでよいか。

Cons

・ Low resolution

とあるが、5ppm刻みということか。

・ Slow, in about 1 second necessary to get data.

これも注意しておく必要があるようだ。cronで同時に複数のプロセスで利用するような場合。

 

MESHハブアプリでBullseyeに対応してくれないかな。