【Raspberry Pi Pico】BME680温湿気・空気品質センサを使用する方法

pico-bme680-top Raspberry Pi

本記事の内容

Raspberry Pi Picoを用いて、MicroPythonでBME680(温湿度、気圧、空気品質センサモジュール)を使用してみました。

I2C通信なので、シンプル・簡単・お手軽に空気品質を測定できるはずでした。が、結論からいうと、正確な空気質指数は測定できていません。Raspberry Pi Picoの活用に是非参考にしてみてください。

必要なもの

created by Rinker
Raspberry Pi
¥970 (2024/07/24 10:34:11時点 Amazon調べ-詳細)
created by Rinker
Pimoroni
¥6,800 (2024/07/25 02:44:26時点 Amazon調べ-詳細)

bme680もいろいろなメーカー製がありますが、私は秋月電子のAE-BME680を用意しました。2022年12月時点ではAmazonよりも安く、1320円で購入できました(秋月電子の製品ページ)。

主な仕様やピンアサインについて記載されたマニュアルが付いていて、とても信用できます。

配線

Raspberry Pi PicoにI2C通信で繋ぐだけなので、以下の通り至って簡単な配線です。

プログラムコード

プログラムコードはserverあれこれ様の記事と、Githubのコードを拝借しました。

bme680モジュールの用意

I2Cで気温、湿度、気圧、空気品質の値を取得するために、MicroPython用のbme680モジュールを用意します。Githubよりbme680.pyを拝借して、Raspberry Pi Picoにアップロードします。

メインコードの記載

I2CのSDA/SCLピンに合わせて、以下コードを書き換えてください。

from bme680 import *
from machine import I2C, Pin
import time
scl = Pin(19)
sda = Pin(18)
bme = BME680_I2C(I2C(1, scl=scl, sda=sda))

while True:
    print("Temp:{:.3g}C, Humidity:{:.3g}%, Pressure:{:.5g}hPa, Gas:{}".format(bme.temperature, bme.humidity, bme.pressure, bme.gas))
    time.sleep(3)

実行結果

気温、湿度、気圧がどれくらい正確かは分かりませんが、無事に値を取得できました。

空気品質が測定できていない問題

ここでの問題は、Gasの値がいったい何なのかわからないことです。。。Wikiによると、Air Quality Index (AQI)は日本語で空気質指数というようですが、なんと日本では空気質指数の測定および公表は実施されていません、、、

空気質指数について調べてみると、値が小さいほど空気が奇麗で、大きいほど汚染されているようです。私の部屋の測定値が13万を超えているって、もはや致死量・・・???

と心配して調べてみたところ、Gasは気体の導電率の値であり、上記の空気質指数とは異なるようです。気体の導電率は湿度に強く依存するため、内部で補正を掛けているが、それでもGasの値から空気質指数は導けないこともGithubに記載されていました。

ってことは、空気品質センサの意味ないじゃん!!!(もはや、気温気圧湿度センサbme280と同じ(;_:))

秋月電子ではbme280も1320円と同じ価格なので、bme680は良く分からない値を取得できるbme280っていうところでしょうか。以上、空気質指数を測定できなかった空気品質センサの話でした。

コメント