MESHハブアプリ用のRaspberry Piで、MH-Z19Cのデータが読み取れない
- Raspberry Pi 3B+
- Raspberry Pi OS Stretch with Desktop (GUI)
- Linux raspberrypi 4.14.98-v7+ #1200 SMP Tue Feb 12 20:27:48 GMT 2019 armv7l GNU/Linux
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に対応してくれないかな。