De BMP280 barometrische druk- en temperatuursensor that provides accurate atmospheric pressure and temperature readings. It is commonly used for weermonitoring, hoogtemeting en omgevingsdetectie BMP280 met een Raspberry Pi met behulp van Python en I2C/SPI-communicatie.
Wat u nodig hebt
- Raspberry Pi
- BMP280
- Breadboard en jumperdraden
- Python geïnstalleerd op de Raspberry Pi
BMP280
De BMP280 ondersteunt zowel I2C- als SPI-communicatie.
For I2C Mode (Recommended)
| BMP280 Pin | Raspberry Pi Pin |
|---|---|
| VCC | 3.3V (Pin 1) |
| GND | Aarde (Pin 6) |
| SDA | SDA (Pin 3, GPIO2) |
| SCL | SCL (Pin 5, GPIO3) |
Voor SPI-modus
| BMP280 Pin | Raspberry Pi Pin |
|---|---|
| VCC | 3.3V (Pin 1) |
| GND | Aarde (Pin 6) |
| SCK_ | SCLK (Pin 23, GPIO11) |
| SDI | MOSI (Pin 19, GPIO10) |
| SDO | MISO (Pin 21, GPIO9) |
| CS | CE0 (Pin 24, GPIO8) |
Opmerking: BMP280 is actief op 3.3V. Niet doen sluit deze niet aan op 5V, omdat dit de module kan beschadigen.
Step 2: Enable I2C or SPI on the Raspberry Pi
For I2C Communication
- Open de Raspberry Pi-configuratietool:
sudo raspi-config - Navigeer naar Interface-opties > I2C activeer deze.
- Herstart de Raspberry Pi:
sudo reboot - Controleer of de BMP280 is gedetecteerd op de I2C-bus:
De BMP280 moet verschijnen op het adressudo i2cdetect -y 10x76or0x77.
For SPI Communication
- Schakel SPI in via:
sudo raspi-config - Navigeer naar Interface-opties > SPI activeer deze.
- Herstart de Raspberry Pi:
sudo reboot -
Je zou moeten zienls /dev/spidev*/dev/spidev0.0en/dev/spidev0.1.
Step 3: Install Required Libraries
- Werk de pakketlijst van je Raspberry Pi bij:
sudo apt update && sudo apt upgrade -y - Installeer de vereiste I2C/SPI-tools Python-bibliotheken:
sudo apt install -y python3-smbus python3-spidev python3-pip pip3 install adafruit-circuitpython-bmp280
Stap 4: Gegevens lezen uit de BMP280
python Python-code voor I2C-modus
python
import time
import board
import busio
import adafruit_bmp280
# Initialiseer I2C-bus en BMP280 python
sensor
i2c = busio.I2C(board.SCL, board.SDA)
bmp280 = adafruit_bmp280.Adafruit_BMP280python
_I2C(i2c)
# Stel de luchtdruk op zeeniveau in (optioneel, voor hoogtemetingen)
bmp280.sea_level_pressure = 1013.25
try:
while True:
print(f"Temperatuur: {bmp280.temperature:.2f} °C")
print(f"Druk: {bmp280.pressure:.2f} hPa")
print(f"Hoogte: {bmp280.altitude:.2f} m")
print("------------------------")
time.sleep(2)
except KeyboardInterrupt:
print("Afsluiten...")
python Python-code voor SPI-modus
python
import time
import board
import busio
import digitalio
import adafruit_bmp280
# Initialiseer SPI-bus en BMP280 python
sensor
spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
cs = digitalio.DigitalInOut(board.D8) # Gebruik GPIO8 (Pin 24) voor CS
bmp280 = adafruit_bmp280.Adafruit__BMP280python
_SPI(spi, cs)
try:
while True:
print(f"Temperatuur: {bmp280.temperature:.2f} °C")
print(f"Druk: {bmp280.pressure:.2f} hPa")
print(f"Hoogte: {bmp280.altitude:.2f} m")
print("------------------------")
time.sleep(2)
except KeyboardInterrupt:
print("Afsluiten...")
Stap 5: Toepassingen van BMP280 met Raspberry Pi
- Weermonitoring
- Hoogtemeting
- IoT-projecten
- Huisautomatisering
Probleemoplossing
-
BMP280 Niet gedetecteerd (
i2cdetectwordt niet weergegeven0x76or0x77)- Zorg ervoor dat de SDA/SCL-pinnen
- Controleer of I2C is ingeschakeld met behulp van
sudo raspi-config.
-
Onjuiste metingen
- Controleer op losse verbindingen or problemen met de stroomvoorziening.
- Zorg ervoor dat de sensor is niet blootgesteld aan plotselinge temperatuurschommelingen.
-
SPI-communicatieproblemen
- Zorg ervoor dat SPI is ingeschakeld (
ls /dev/spidev*should list devices). - Verifiëren correcte CS-pinselectie in het Python-script.
- Zorg ervoor dat SPI is ingeschakeld (
Conclusie
De BMP280 sensor biedt nauwkeurige metingen van barometrische druk, temperatuur en hoogte weerstations, IoT-toepassingen en milieumonitoring BMP280 in je Raspberry Pi-projecten voor realtime gegevensverzameling en -analyse! 🚀







