2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Raspberry PiのNode-REDでCCS811(eCO2/TVOC)のデータ採取

Last updated at Posted at 2022-01-05

はじめに

部屋の空気の汚染具合を監視したくて、Raspberry Piにセンサーを付けて採取しました。

機器

  • Raspberry Pi Zero WH (RaspiOS(Buster)「2021-12-02-raspios-buster-armhf-lite.zip」)

  • KEYESTUDIO DC 5V CCS811 CO2 二酸化炭素 TVOC 大気質 センサー モジュール for Arduino

接続は、以下の記事を参考にしました。

『VCCはラズパイの3.3Vに、GNDはラズパイのGNDに、SDAは3ピンに、SCLは5ピンに接続するあたりは通常のI2C接続と同じですが、これに加えてRSTをVCCに、WAKEをGNDに接続する必要があります。』とあるので、その通りに接続しました。
ブレッドボードは持ってないので、直ケーブル接続です。他の一般サイトではVCCを5Vに接続しているところもあるようですが、3.3Vで使えてます。

設定

「raspi-config」でi2cを有効にしておきます。よくわからんけど、spiも有効にしました。

$ sudo raspi-config

/boot/config.txtの末尾に以下のパラメータを追加します。

$ sudo vi /boot/config.txt
         :
dtparam=i2c_baudrate=10000

再起動します。

$ sudo reboot

i2c-toolsをインストールして、センサーが認識されているか確認します。

$ sudo apt install i2c-tools
$ sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- 5a -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                    

i2cバスとして指定した「1」と、「5a」を覚えておきます。
usermodでpiユーザでi2cを利用できるようにします。

$ sudo ls -la /dev/i2c-1
crw-rw---- 1 root i2c 89, 1 Jan  1 18:23 /dev/i2c-1
$ sudo usermod -aG i2c pi

Node-REDで利用する

$ sudo apt install nodered
$ sudo systemctl enable nodered
$ sudo systemctl start nodered

久しぶりにZeroでNode-RED起動しましたが、やっぱ遅いですね...
起動できたら、「パレットの管理」→「ノードの追加」で「node-red-contrib-ccs811-airquality-sensor」を追加します。

ノードを配置して設定を開くと、おそらく何も設定しなくてもi2cBusとAddressは合ってると思います。キャリブレーションも自動になっているので、そのままで良いかと思います。

スクリーンショット 2022-01-05 18.04.18.png

あとは、payloadに「getMeasurement」と文字列を設定して定期的に実行させれば良いです。
私は後続のノードで自宅内のElasticsearchにデータを投げ込んでいます。

スクリーンショット 2022-01-05 18.08.59.png

センサーに通電させて、12時間後くらいから値が出始めました。センサーの仕様的には少なくとも24時間は放っておく必要があるようです。
あとは24時間毎にキャリブレーションが行われるそうなので、数日は放置しておいた方がそれっぽい値が採取できると思います。

Zero WH + CCS811の最終的な外観はこちら。SwitchBotカーテンの操作も兼ねさせています。

おわりに

翌日はそれっぽい値が出てたのですが、さらに次の日は値が高めに出てなかなか収束しないです。
1週間くらい様子見てみようかと思います。

[追記]1週間様子みたところ、極端に大きな値が減り、そこそこ利用できそうな安定した値になってきました。

スクリーンショット 2022-01-11 14.38.10.png

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?