記事一覧へ戻る
Raspberry Pi/初級/8分で読める/

Raspberry PiでBME280温湿度・気圧センサーを読む配線とPythonコード

BME280は温度、湿度、気圧をI2Cで読めるセンサーです。Raspberry Piでは標準のSDA/SCLピンに接続し、I2Cを有効化してから読み取ります。

WIRING ORDER

配線順序のスクリーンショット

レッスン用プレビュー
Tsunagu IoT Learn / Raspberry Pi
DEVICE
Raspberry Pi
breadboard
MODULE
BME280
配線する順番
  1. 1

    BME280 VINまたはVCCRaspberry Pi 3.3V(物理ピン1など)

    3.3V対応モジュールとして扱うのが安全です。

  2. 2

    BME280 GNDRaspberry Pi GND(物理ピン6など)

    電源とI2C信号の基準を共通にします。

  3. 3

    BME280 SDARaspberry Pi GPIO2/SDA1(物理ピン3)

    I2Cのデータ線です。

  4. 4

    BME280 SCLRaspberry Pi GPIO3/SCL1(物理ピン5)

    I2Cのクロック線です。

用意するもの

  • Raspberry Pi 4 / 5 などGPIOを使える本体
  • BME280センサーモジュール
  • ブレッドボード
  • ジャンパーワイヤー

配線

接続元接続先確認点
BME280 VINまたはVCCRaspberry Pi 3.3V(物理ピン1など)3.3V対応モジュールとして扱うのが安全です。
BME280 GNDRaspberry Pi GND(物理ピン6など)電源とI2C信号の基準を共通にします。
BME280 SDARaspberry Pi GPIO2/SDA1(物理ピン3)I2Cのデータ線です。
BME280 SCLRaspberry Pi GPIO3/SCL1(物理ピン5)I2Cのクロック線です。

手順

  1. 1Raspberry Piの電源を切った状態で3.3V、GND、SDA、SCLを接続します。
  2. 2raspi-configなどでI2Cを有効化します。
  3. 3必要なPythonライブラリをインストールします。
  4. 4i2cdetectで0x76または0x77のアドレスが見えるか確認します。
  5. 5Pythonコードを実行し、温度、湿度、気圧が表示されるか確認します。

I2CでBME280を読むPythonコード

python
import time
import board
import busio
from adafruit_bme280 import basic as adafruit_bme280

i2c = busio.I2C(board.SCL, board.SDA)
bme280 = adafruit_bme280.Adafruit_BME280_I2C(i2c, address=0x76)

while True:
    print(f"温度: {bme280.temperature:.1f} C")
    print(f"湿度: {bme280.relative_humidity:.1f}%")
    print(f"気圧: {bme280.pressure:.1f} hPa")
    print("---")
    time.sleep(2)

動かないときの確認

  • SDAをGPIO2、SCLをGPIO3へ接続しているか
  • I2Cが有効化されているか
  • センサーのI2Cアドレスが0x76か0x77か確認したか
  • 5V専用モジュールではなく3.3Vで安全に使えるモジュールか

よくあるミス

  • SDAとSCLを逆に接続する
  • I2Cを有効化せずにコードだけ実行する
  • 実際のアドレスが0x77なのにコードを0x76のままにする

次に試すこと

BME280が読めたら、OLED表示やログ保存を追加すると、環境モニターとして実用に近い構成へ広げられます。

デモで配線を確認する