スキップしてメイン コンテンツに移動

注目

Arduino Nano に CCS811(空気品質センサー) を接続し、部屋の二酸化炭素濃度を測定する #2/2

eCO2値の取得 利用するCCS811センサー用ライブラリ 今回購入した AliExpressで購入したCJMCU-811 については、ライブラリーに関する情報が提供されていませんでした。そこで、Google検索をして、CCS811センサーを扱うライブラリーとして MITライセンス で公開されている SparkFun CCS811 Arduino Library  *5 を使用することにしました。 *5 参照URL  https://github.com/sparkfun/SparkFun_CCS811_Arduino_Library 実装例を用いeCO2値が取得できるか確認する 同GitHubリポジトリにはArduinoでCCS811のセンサー値を読み取り、シリアル通信でその値を確認できる実装例: Example1_BasicReadings.ino  が公開されています。そこで、まずこの実装例を利用し、今回利用するArduino Nano+CJMCU-811で動作するように変更しました。 尚、実装例のコメントに下記が記載されていました。 A new sensor requires at 48-burn in. - 新しいセンサーは48時間の「慣らし」が必要。 Once burned in a sensor requires 20 minutes of run in before readings are considered good. - 一度慣らしを終えたセンサーは、良好な値を得るため使用前に20分間の暖気が必要。 #include <wire.h> #include "SparkFunCCS811.h" //Click here to get the library: http://librarymanager/All#SparkFun_CCS811 //#define CCS811_ADDR 0x5B //Default I2C Address #define CCS811_ADDR 0x5A //Alternate I2C Address CCS811 mySensor(CCS811_ADDR); void setup() { Serial.begin(115200); Serial.println(&

Raspberry Pi で部屋の二酸化炭素濃度を測定する#3/3

 はじめに

前回、”Raspberry Pi で部屋の二酸化炭素濃度を測定する#2/3”では、MH-Z19Bの接続コードを改造し、Raspberry Pi 3B+に接続する手順を説明しました。
今回は”Raspberry Pi で部屋の二酸化炭素濃度を測定する”の最終回として、下記3つの手順を説明します。

  • Raspberry Pi 3B+のUARTを有効化し、
  • PythonでMH-Z19Bを扱うためのモジュールmh-z19をインストールし、
  • PythonでMH-Z19Bのセンサー値を読み取ります。

準備(3)

Raspberry Pi 3B+のUART有効化の手順

Raspberry Piのドキュメントにあるように、3B+ではデフォルトでUART0は/dev/serial1に割り当てられており、/dev/ttyAMA0のBluetooth接続されています。そして、UART1は/dev/serial0でmini UARTに割り当てられていますが、mini UARTはデフォルトでは有効化されていません。
そこで、

  1. エディタで/boot/config.txtを開き、enable_uart=1を追加します。

    /boot/config.txtにenable_uart=1を追加

  2. Raspberry Piを再起動します。
    shutdown コマンドで再起動

  3. 再起動後下記のようになっていればOK!

    再起動後に/dev/serial*を確認する

Pythonモジュールmh-z19のインストール手順

PythonでMH-Z19Bを扱うためにmh-z19モジュール(https://pypi.org/project/mh-z19/)を下記のようにインストールします。なおmh-z19モジュールのソースコードはhttps://github.com/UedaTakeyuki/mh-z19にMITライセンスで公開されています。
$ sudo pip install mh-z19
mh-z19モジュールのインストール

二酸化炭素濃度の測定

動作確認も兼ねて、下記のようにMH-Z19Bセンサーを読み取ります。
$ sudo python -m mh_z19
{"co2": (二酸化炭素濃度ppm)}

二酸化炭素濃度の測定

問題なく二酸化炭素濃度を測定できているようです。
MH-Z19Bは二酸化炭素濃度以外にも気圧(UhUl)や温度(temperature)も計測できるようです。
今回作成したもの

最後に

センサーから二酸化炭素濃度を取得することができたので、今後は、二酸化炭素濃度がある濃度以上になったら警告したり、二酸化炭素濃度の推移をグラフ表示したりできると良いな!

コメント