MH-Z19センサーを使用し、pythonにより、二酸化炭素濃度(CO2濃度)を取得し、Google BigQueryに取得データを記録します。
前提
ラズパイ:Raspberry pi 4B
OS:Raspbian GNU/Linux 10 (buster)
使用言語:python3
事前準備
アップデート
# sudo apt-get update
# sudo apt-get upgrade
# sudo apt-get dist-upgrade
シリアル通信有効化
以下の記事を参照し、ラズパイのシリアル通信を有効にします。
MH-Z19
MH-Z19準備
amazonから購入しました。
購入したものはピンが付いていないタイプであったため、はんだ付けしました。
MH-Z19結線
結線は以下のとおりです。
MH-Z19 | → | ラズパイ |
Vin | 5V(pin4) | |
GND | GND(pin6) | |
RX | Txd0(pin8) | |
TX | Rxd0(pin10) |
RX⇒Txd
TX⇒Rxd
とするのは謎です。。。
※MH-Z19 の write を RPi で read して、RPi の write を MH-Z19 に read させるためにクロスさせるとのことです!
ラズパイ
以下のモジュールを使用します。
GitHub - UedaTakeyuki/mh-z19: Read CO2 concentration from mh-z19 sensor on the Raspberry Pi & handle it. Detect Raspberry Pi model automatically and read the value from an appropriate serial device.
Read CO2 concentration from mh-z19 sensor on the Raspberry Pi & handle it. Detect Raspberry Pi model automatically and r...
# pip install mh-z19
# vi example.py
#coding: utf-8
import mh_z19
if __name__ == '__main__':
out = mh_z19.read()
print(out)
# sudo python example.py
{'co2': 494}
これで出力確認ができました。
この値を取得して、スプレッドシートへの格納やBigQueryへ格納し、見える化しています。
コメント
> RX⇒Txd
> TX⇒Rxd
> とするのは謎です。。。
MH-Z19 の write を RPi で read して、RPi の write を MH-Z19 に read させるためにクロスさせてます
作成者様が自ら教えていただきありがとうございます!
これでなぞが解けました。