MH-Z19センサーからCO 2濃度を読んで処理します。
RPI&MH-Z19を次のように接続します。
以下はケーブルの例ですが、RPIで他の5Vおよび0Vピンを自由に使用できます。
pi@raspberrypi:~/mh-z19 $ gpio readall
+-----+-----+---------+------+---+---Pi B+--+---+------+---------+-----+-----+
| BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
| | | 3.3v | | | 1 || 2 | | | 5v | | |
| 2 | 8 | SDA.1 | IN | 1 | 3 || 4 | | | 5v | | | <---- Vin
| 3 | 9 | SCL.1 | IN | 1 | 5 || 6 | | | 0v | | | <---- Gnd
| 4 | 7 | GPIO. 7 | IN | 1 | 7 || 8 | 1 | ALT0 | TxD | 15 | 14 | <---- RxD
| | | 0v | | | 9 || 10 | 1 | ALT0 | RxD | 16 | 15 | <---- TxD
| 17 | 0 | GPIO. 0 | IN | 0 | 11 || 12 | 0 | IN | GPIO. 1 | 1 | 18 |
| 27 | 2 | GPIO. 2 | IN | 0 | 13 || 14 | | | 0v | | |
| 22 | 3 | GPIO. 3 | IN | 0 | 15 || 16 | 0 | IN | GPIO. 4 | 4 | 23 |
| | | 3.3v | | | 17 || 18 | 0 | IN | GPIO. 5 | 5 | 24 |
| 10 | 12 | MOSI | IN | 0 | 19 || 20 | | | 0v | | |
| 9 | 13 | MISO | IN | 0 | 21 || 22 | 0 | IN | GPIO. 6 | 6 | 25 |
| 11 | 14 | SCLK | IN | 0 | 23 || 24 | 1 | IN | CE0 | 10 | 8 |
| | | 0v | | | 25 || 26 | 1 | IN | CE1 | 11 | 7 |
| 0 | 30 | SDA.0 | IN | 1 | 27 || 28 | 1 | IN | SCL.0 | 31 | 1 |
| 5 | 21 | GPIO.21 | IN | 1 | 29 || 30 | | | 0v | | |
| 6 | 22 | GPIO.22 | IN | 1 | 31 || 32 | 0 | IN | GPIO.26 | 26 | 12 |
| 13 | 23 | GPIO.23 | IN | 0 | 33 || 34 | | | 0v | | |
| 19 | 24 | GPIO.24 | IN | 0 | 35 || 36 | 0 | IN | GPIO.27 | 27 | 16 |
| 26 | 25 | GPIO.25 | IN | 0 | 37 || 38 | 0 | IN | GPIO.28 | 28 | 20 |
| | | 0v | | | 39 || 40 | 0 | IN | GPIO.29 | 29 | 21 |
+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
| BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
+-----+-----+---------+------+---+---Pi B+--+---+------+---------+-----+-----+
フルセットには、以下を含む:
フルセットをインストールし、リリースからダウンロードします
git clone https://github.com/UedaTakeyuki/mh-z19.git
次に、フォルダーに到達してsetup.sh *を発行します
./setup.sh
このスクリプトでは、シリアルポート有効化を含む必要な設定が行われます。
Python 2.xの場合
sudo pip install mh_z19
Python 3.xの場合
sudo pip3 install mh_z19
ルートの許可を使用している場合は、次のようにsudoなしでpipに電話してください。
Python 2.xの場合
pip install mh_z19
Python 3.xの場合
pip3 install mh_z19
各ラズベリーPIモデル間のインターフェイスの違いは、このモジュール内で解決されます。たとえば、シリアルデバイス名はRaspberry Pi 3以降のモデルの違いですが、MH-Z19モジュールはモデルを自動的に検出し、適切なシリアルデバイスから読み取ります。
MH-Z19を使用するには、Raspberry Piでシリアルポートデバイスを有効にする必要がある後に必要です。 Wikiページをフォローすることは有益かもしれません。また、詳細については、Pypiのトップページを参照してください。
pi@raspberrypi:~ $ sudo python3 -m mh_z19
{'co2': 668}
上記のように、MH-Z19センサー値はシリアル接続を通じて読み取られ、一般にルートの許可を要求するため、 Sudoが必要になる場合があります。
インストールされているMH-Z19モジュールは、センサー値で他の必要なことを保存、送信、実行するための複数の汎用センサーハンドラーであるポンドライダーに対応します。
例として、次のユースケースを紹介します。
Pondsliderは、センサーハンドラーが指定したSensorValueを読み取り、値をValue Handlers *に渡します。
センサーとバリューハンドラーの両方がPythonモジュールです。ハンドラーの詳細については、これを参照してください。
このモジュールは、センサー値で他の必要なことを保存、送信、および行うための複数の汎用センサーハンドラーであるポンドライダーに対応します。
つまり、上記の完全なインストールを選択した場合、言い換えれば、 setup.sh 、pondsliderを作成し、ハンドラーの例はすでにインストールされています。
Handlers/Value/Saver/Save2strageにあるSave2strage Valueハンドラー、およびMH-Z19センサーから読み取り、 Save2StrageでSaveでSaveを使用する構成ファイルを使用できます。
次のようにポンドライダーを呼び出すことにより、MH-Z19フォルダーで。
sudo python -m pondslider --config config.save.toml
次に、 /home/pi/data/co2.csvを作成する必要があり、各コールに新しい行を追加します。
The Monitor™は、Web上の最新のデータを表示する無料のリモート監視サービスです。


Monior™に関する鳥類の理解を把握するには、紹介を参照してください。
次のように無料のアカウントが利用可能です。次に、ログインしてView_IDを取得します。これは、Monitor™のデータ領域をポイントして、次のように最新の値とチャートを表示する一意のIDです。
ブラウザでVALUE_IDを取得したら、Raspberry Piの端末に戻り、このソフトウェアを設定してValue_IDに測定値を送信する必要があります。これを行うには、MH_Z19インストールされたディレクトリにsetID.shコマンドを呼び出します。 Value_idがVPGPARGJであるとしましょう。
./setid.sh vpgpargj
次に、次のように「Pondslider」Pythonスクリプトを呼び出します。
pi@raspberrypi:~/mh-z19 $ sudo python -m pondslider
{'co2': 742}
co2
{"ok":false,"reason":"ViewID not valid"}
ブラウザのMonitor™ディスプレイのタイムシリーズチャートは、最新のCO2濃度値で更新する必要があります。
次のように、MH_Z19インストールされたディレクトリにAutoStart.shコマンドでそれを設定できます。
./autostart.sh --on
これを次のようにオフにすることができます。
./autostart.sh --off
また、次のように現在のステータスを確認できます。
./autostart.sh --status
詳細については、このブログを参照してください。
ポンドライダーはatt m2xもサポートしています。詳細については、このドキュメントを参照してください。
キャリブレーションに関する機能(MH-Z19およびMH-Z19Bの両方)、検出範囲の変化(MH-Z19B)、およびABCロジックオン/オフ(MH-Z19B)は、バージョン0.2.1以降で実装されています。
テストに必要なデバイスと装置、FX:標準濃度CO2ガス、MH-Z19Bモジュールのために必要なデバイスと装置が不足しているため、これらをテストなしで実装しただけです。これらのデバイスまたは装置を持っていて、これらの機能を寛大に使用しようとする場合、結果に関係なく、あなたの問題レポートが肯定的または否定的であることに本当に感謝しています。
詳細については、このwikiを参照してください。
Revspace/MHZ19は、公式のデータシート(MH-Z19、MH-Z19B)で文書化されていない値を示しています。これに従って、すべてのオプションは、次のようにreturn json値にこれらの値を追加します。
sudo python -m mh_z19 --all
{"SS": 232, "UhUl": 10752, "TT": 61, "co2": 818, "temperature": 21}
sudo python3 -m mh_z19 --all
{"TT": 61, "co2": 807, "SS": 232, "temperature": 21, "UhUl": 10752}
または、次のようにread_all()関数を呼び出します。
>>> import mh_z19
>>> mh_z19.read_all()
{'SS': 232, 'UhUl': 10738, 'TT': 61, 'co2': 734, 'temperature': 21}
>>>
このライブラリが自動的に選択するRaspberry PIデフォルトシリアルデバイスの代わりに特定のシリアルデバイスを使用する場合、たとえば、 FT232 USBシリアルコンバーターに /Dev /TTyusb0を発行#12として使用する必要がある場合、 -Serial_Deviceオプションでシリアルデバイスを指定できます。
sudo python -m mh_z19 --serial_device /dev/ttyUSB0
このウィキを参照してください。
このウィキを参照してください。
このウィキを参照してください。
ケーブル化が問題にならないように思われ、UARTは順調に推定されているように見えますが、センサーの値を取得できません。 NINCUBE8が示唆したように、1-5kΩレジスタでプルアップが機能する可能性があることを示唆しています。 nincube8ありがとうございます!
フォーラムはここにあります。質問、提案、レポートは大歓迎です!
--co2valueonlyオプションを追加します。 Jonesthefoxに感謝します!