- Published on
Raspberry Piに「BMP388」を接続し制御する
1513文字3分で読めます–––
閲覧数
- Authors
- Name
- 将 有坂
- short bio
- ラズパイやArduinoで電子工作をしてます。
はじめに
Raspberry Piは小型で高性能なシングルボードコンピュータであり、様々なセンサーやモジュールとの組み合わせによって、さまざまなプロジェクトを実現することができます。この記事では、「BMP388」と呼ばれる気圧センサーをRaspberry Piに接続し、制御する方法について解説します。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚
1. BMP388気圧センサーの概要
BMP388は、気圧と温度を測定するための高精度なセンサーモジュールです。Raspberry Piと組み合わせることで、大気圧や気温のモニタリング、気象情報の取得などの用途に利用できます。
2. BMP388の接続
BMP388をRaspberry Piに接続するために、以下のように接続します。
- VCC(赤色): 3.3Vの電源
- GND(茶色): 接地
- SDA(白色または緑色): I2Cのデータライン
- SCL(黄色): I2Cのクロックライン
これらの線をRaspberry Piの対応するピンに接続します。
3. Raspberry Piコードの作成
BMP388を制御するためのPythonコードを作成します。Raspberry Piには既にsmbusモジュールがインストールされているため、これを使用してI2C通信を行います。以下は、BMP388から気圧と温度を読み取る簡単な例です。
import smbus
import time
# BMP388のI2Cアドレス
BMP388_ADDRESS = 0x77
# I2Cバスの初期化
bus = smbus.SMBus(1)
def read_bmp388():
# データ読み取りコマンド
bus.write_byte_data(BMP388_ADDRESS, 0x3D, 0x5E)
# 20ms待機(データの読み取りが完了するまで)
time.sleep(0.02)
# 気圧データ読み取り
pressure_raw = (bus.read_byte_data(BMP388_ADDRESS, 0x1E) << 16) | (bus.read_byte_data(BMP388_ADDRESS, 0x1F) << 8) | bus.read_byte_data(BMP388_ADDRESS, 0x20)
# 温度データ読み取り
temperature_raw = (bus.read_byte_data(BMP388_ADDRESS, 0x21) << 12) | (bus.read_byte_data(BMP388_ADDRESS, 0x22) << 4) | (bus.read_byte_data(BMP388_ADDRESS, 0x23) >> 4)
# データ変換
pressure = pressure_raw / 1048576.0
temperature = temperature_raw / 100.0
return pressure, temperature
# メインプログラム
while True:
pressure, temperature = read_bmp388()
print(f"気圧: {pressure} Pa, 温度: {temperature} ℃")
time.sleep(1)
4. コードの実行と確認
作成したPythonコードを保存し、Raspberry Pi上で実行します。これにより、BMP388から取得した気圧と温度が1秒ごとに表示されるはずです。
これで、Raspberry PiにBMP388を接続し、気圧と温度を制御するための基本的な手順が完了しました。気象観測や環境モニタリングのプロジェクトに応用するなど、様々なアプリケーションで活用できます。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚