Датчик давления BMP-280 на raspberry pi
Может работать как по I2C так и по протоколу SPI. В моём случае, я подключил по I2C.
Схема подключения:
| BMP280 Pin | Raspberry Pi Pin |
|---|---|
| VCC | 3.3V (Pin 1) |
| GND | Ground (Pin 6) |
| SDA | SDA (Pin 3, GPIO2) |
| SCL | SCL (Pin 5, GPIO3) |
Далее необходимо зайти в raspi-config и включить интерфейс i2c. После чего понадобится малинку перазагрузить. После перезагрузки можно посмотреть, определяется ли она:
i2cdetect -y 1
Должно появиться что-то вроде:

Иногда садится на 77 порт, но чаще на 76. Далее необходимо установить библиотеки:
sudo apt install -y python3-smbus python3-spidev python3-pip
pip3 install adafruit-circuitpython-bmp280
Минимальный код для проверки работоспособности:
#!/usr/bin/env python3
import board
import busio
import adafruit_bmp280
import time
import datetime
import requests
import json
import threading
# Create sensor object using the I2C port
i2c = busio.I2C(board.SCL,board.SDA)
sensor = adafruit_bmp280.Adafruit_BMP280_I2C(i2c, address = 0x76)
while True:
print("\nTemperature: %0.1f C" % sensor.temperature)
print("Pressure: %0.1f hPa" % sensor.pressure)
mmHg = sensor.pressure * 0.75006
print("Pressure: %0.1f mmHg" % mmHg)
print("Altitude: %0.2f meters" % sensor.altitude)
print("Sea Level Pressure: %0.1f hPa " % sensor.sea_level_pressure)
print(datetime.datetime.now())
time.sleep(10)
У меня выводит что-то подобное:
