今回は気圧センサーであるBME280を使って気圧測定をしました。
最近梅雨入りしたせいで、ニュース等でも天気病などといって、気圧の低下に伴う体調不良が取り上げられるようになりました。
この天気病は気圧の絶対値ではなく、変化量が重要だと考えられています。
そこで、実際に時系列の自宅の気圧データを取得することで体調管理をしましょうというのが目的です。
完成形はこちらです。
さて、実際に実装に移っていきます。
BME280とRaspberryPiはI2Cで接続しています。
詳細はこちら
今回使用した気圧センサーはドイツの自動車部品メーカーのボッシュ製のBME280になります。
ACEIRMC BME280搭載 温湿度 気圧センサーモジュール 5V用 SPI I2C Arduino対応 Raspberry Pi (1個)
データシートはこちらになります。
https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bme280-ds002.pdf
基本的にはこちらのデータシートの指示通りにレジスタを叩いてデータを取得していきます。
まず、実際のコードがこちらになります。
基本的にはデータシート通りの実装なのですが、pythonで記述する際に、変数の型が明示的ではなかったので、Numpyを使用して明示的に型変換を行うことでデータシート通りの温度と気圧の補正を行っています。
実際に実行するとこんな感じです。
pi@raspberrypi: python3 BME280.py
Device ID is 0x60
BME280 is connected.
Temperature 26.88 degC
Pressure 998.76 hPa
こちらの温度は気圧センサ補正に使用しているのでセンサーの温度です。
なので、室温よりは少し高い値になっているので単純な環境センサ値としては使えなさそうです。
あまり、レジスタ直叩きで使用している記事を見なかったので参考になればと思います。
実際に使用してみると、天気とは関係なく気圧が変動していることや、気密性の高いマンションだと換気扇を使うことで圧力が下がってしまうことです。
次回、頭が痛くなったときは値を確認してみようと思います。
コードの全体はこちらになります。