Python3-smbus と BMP180 で気圧を測定する

はじめに

過去にも BMP180 を使った気圧測定方法を書いているが,当時は Python2 で処理していた.Adafruit のライブラリは一応 Python3 でも動くようだが,せっかくなので Python3 で動くライブラリを書いてみる.

BMP180 は Adafruit では既にディスコンになっているが,Amazon ではまだまだ販売している.入手しやすく比較的安価なセンサなので,お試しで遊んでみても良いかもしれない.

Amazon.co.jp

BMP180 で気圧測定

環境はこちら.今回は RasPi2 を使う.raspi-config から I2C を有効化する部分は説明省略.

$ cat /etc/os-release && cat /sys/firmware/devicetree/base/model 
PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)"
NAME="Raspbian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
Raspberry Pi 2 Model B Rev 1.1

以前使っていたライブラリはこちら.I2C 部分で使われている Adafruit_GPIO.I2C を smbus に置き換える.

GitHub - adafruit/Adafruit_Python_BMP: Python library for accessing the BMP series pressure and temperature sensors like the BMP085/BMP180 on a Raspberry Pi or Beaglebone Black.
Python library for accessing the BMP series pressure and temperature sensors like the BMP085/BMP180 on a Raspberry Pi or Beaglebone Black. - GitHub - adafruit/A...

ライブラリはこちら.LCD と HTU21D の処理も一緒に入っているが,今回使うのは BMP180 のものだけ.

GitHub - HeavyMoon/i2c-dev: i2c devices for raspberry pi
i2c devices for raspberry pi. Contribute to HeavyMoon/i2c-dev development by creating an account on GitHub.

まずは smbus をインストールする.pip3 を使ってインストールしてもいい.

$ sudo apt install python3-smbus git

ライブラリを拾ってきて気圧を測定する.出力結果の単位は Pa.

$ git clone https://github.com/HeavyMoon/i2c-dev.git
$ cd i2c-dev
$ ./bmp180.py help
Usage: ./bmp180.py [option]
 a       Altitude [m]
 p       Pressure [Pa]
 t       Temperature [C]
 s       Sealevel Pressure [Pa]
 help    show this message
$ ./bmp180.py p
101208.00

おわりに

BMP180 を使って 1 月に発生したトンガの火山噴火による気圧の変化もそれとなく観測できた.湿度の上昇は多分風呂上がりの痕跡かなにか.

コメント

タイトルとURLをコピーしました