The BMP280 este o senzor de presiune barometrică și temperatură care oferă citiri precise ale presiunii atmosferice și ale temperaturii. Este folosit în mod obișnuit pentru monitorizarea vremii, urmărirea altitudinii și detectarea mediului. Acest ghid vă va ghida prin configurarea și utilizarea BMP280 cu un Raspberry Pi folosind Comunicare Python și I2C/SPI.
Ce vei avea nevoie
- Raspberry Pi (orice model cu suport GPIO, de exemplu, Pi 3, Pi 4)
- Modul senzor BMP280
- Breadboard și fire jumper
- Python instalat pe Raspberry Pi
Pasul 1: Conectați BMP280 la Raspberry Pi
The BMP280 acceptă atât comunicarea I2C, cât și SPI.
Pentru modul I2C (recomandat)
Pin BMP280 | Raspberry Pi Pin |
---|---|
VCC | 3,3 V (pin 1) |
GND | Masa (pin 6) |
SDA | SDA (Pin 3, GPIO2) |
SCL | SCL (Pin 5, GPIO3) |
Pentru modul SPI
Pin BMP280 | Raspberry Pi Pin |
---|---|
VCC | 3,3 V (pin 1) |
GND | Masa (pin 6) |
SCK | SCLK (Pin 23, GPIO11) |
SDI | MOSI (Pin 19, GPIO10) |
SDO | MISO (Pin 21, GPIO9) |
CS | CE0 (Pin 24, GPIO8) |
Nota: BMP280 operează la 3,3 V. Nu conectați-l la 5V, deoarece poate deteriora modulul.
Pasul 2: Activați I2C sau SPI pe Raspberry Pi
Pentru comunicare I2C
- Deschideți instrumentul de configurare Raspberry Pi:
sudo raspi-config
- Navigați la Opțiuni de interfață > I2C și activați-l.
- Reporniți Raspberry Pi:
sudo reboot
- Verificați că BMP280 este detectat pe autobuzul I2C:
The BMP280 ar trebui să apară la adresasudo i2cdetect -y 1
0x76
sau0x77
.
Pentru SPI Communication
- Activați SPI folosind:
sudo raspi-config
- Navigați la Opțiuni de interfață > SPI și activați-l.
- Reporniți Raspberry Pi:
sudo reboot
- Verificați interfața SPI folosind:
Ar trebui să vezils /dev/spidev*
/dev/spidev0.0
şi/dev/spidev0.1
.
Pasul 3: Instalați bibliotecile necesare
- Actualizați lista de pachete Raspberry Pi:
sudo apt update && sudo apt upgrade -y
- Instalați necesarul Instrumente I2C/SPI și biblioteci Python:
sudo apt install -y python3-smbus python3-spidev python3-pip pip3 install adafruit-circuitpython-bmp280
Pasul 4: Citirea datelor din BMP280
Cod Python pentru modul I2C
import time
import board
import busio
import adafruit_bmp280
# Initialize I2C bus and BMP280 sensor
i2c = busio.I2C(board.SCL, board.SDA)
bmp280 = adafruit_bmp280.Adafruit_BMP280_I2C(i2c)
# Set sea level pressure (optional, for altitude calculations)
bmp280.sea_level_pressure = 1013.25
try:
while True:
print(f"Temperature: {bmp280.temperature:.2f} °C")
print(f"Pressure: {bmp280.pressure:.2f} hPa")
print(f"Altitude: {bmp280.altitude:.2f} m")
print("------------------------")
time.sleep(2)
except KeyboardInterrupt:
print("Exiting...")
Cod Python pentru modul SPI
import time
import board
import busio
import digitalio
import adafruit_bmp280
# Initialize SPI bus and BMP280 sensor
spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
cs = digitalio.DigitalInOut(board.D8) # Use GPIO8 (Pin 24) for CS
bmp280 = adafruit_bmp280.Adafruit_BMP280_SPI(spi, cs)
try:
while True:
print(f"Temperature: {bmp280.temperature:.2f} °C")
print(f"Pressure: {bmp280.pressure:.2f} hPa")
print(f"Altitude: {bmp280.altitude:.2f} m")
print("------------------------")
time.sleep(2)
except KeyboardInterrupt:
print("Exiting...")
Pasul 5: Aplicații ale BMP280 cu Raspberry Pi
- Monitorizarea vremii - Colectați date de temperatură și presiune pentru analiza vremii în timp real.
- Măsurarea altitudinii – Utilizați datele de presiune pentru a estima modificările de altitudine.
- Proiecte IoT – Trimiteți datele senzorilor către platformele cloud pentru monitorizare de la distanță.
- Home Automation – Reglați ventilația și aerul condiționat pe baza citirilor de mediu.
Depanare
-
BMP280 nedetectat (
i2cdetect
nu arata0x76
sau0x77
)- Asigurați Pini SDA/SCL sunt corect conectate.
- Verifica asta I2C este activat folosind
sudo raspi-config
.
-
Citiri incorecte
- Verificați pentru conexiuni slăbite sau probleme de alimentare.
- Asigurați-vă că senzorul este nu sunt expuse la schimbări bruște de temperatură.
-
Probleme de comunicare SPI
- Asigurați-vă că SPI este activat (
ls /dev/spidev*
ar trebui să enumere dispozitivele). - Verifica selectarea corectă a pinului CS în scriptul Python.
- Asigurați-vă că SPI este activat (
Concluzie
The Senzor BMP280 prevede măsurători precise de presiune barometrică, temperatură și altitudine, făcându-l ideal pentru stații meteo, aplicații IoT și monitorizare a mediului. Urmând acest ghid, puteți integra cu ușurință BMP280 în dvs Proiecte Raspberry Pi pentru colectarea și analiza datelor în timp real! 🚀