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
BME280 VINまたはVCC → Raspberry Pi 3.3V(物理ピン1など)
3.3V対応モジュールとして扱うのが安全です。
- 2
BME280 GND → Raspberry Pi GND(物理ピン6など)
電源とI2C信号の基準を共通にします。
- 3
BME280 SDA → Raspberry Pi GPIO2/SDA1(物理ピン3)
I2Cのデータ線です。
- 4
BME280 SCL → Raspberry Pi GPIO3/SCL1(物理ピン5)
I2Cのクロック線です。
用意するもの
- Raspberry Pi 4 / 5 などGPIOを使える本体
- BME280センサーモジュール
- ブレッドボード
- ジャンパーワイヤー
配線
| 接続元 | 接続先 | 確認点 |
|---|---|---|
| BME280 VINまたはVCC | Raspberry Pi 3.3V(物理ピン1など) | 3.3V対応モジュールとして扱うのが安全です。 |
| BME280 GND | Raspberry Pi GND(物理ピン6など) | 電源とI2C信号の基準を共通にします。 |
| BME280 SDA | Raspberry Pi GPIO2/SDA1(物理ピン3) | I2Cのデータ線です。 |
| BME280 SCL | Raspberry Pi GPIO3/SCL1(物理ピン5) | I2Cのクロック線です。 |
手順
- 1Raspberry Piの電源を切った状態で3.3V、GND、SDA、SCLを接続します。
- 2raspi-configなどでI2Cを有効化します。
- 3必要なPythonライブラリをインストールします。
- 4i2cdetectで0x76または0x77のアドレスが見えるか確認します。
- 5Pythonコードを実行し、温度、湿度、気圧が表示されるか確認します。
I2CでBME280を読むPythonコード
pythonimport 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表示やログ保存を追加すると、環境モニターとして実用に近い構成へ広げられます。
デモで配線を確認する