Das brauchst du
- Raspberry Pi mit GPIO
- BME280 Breakout Board
- Vier Jumper-Kabel
- Breadboard optional
- Raspberry Pi OS
- Belüftetes Gehäuse
Nur 3,3 Volt verwenden und Beschriftung des konkreten Moduls prüfen.
Sensor verkabeln
- VIN → 3V3, physischer Pin 1
- GND → Masse, Pin 6
- SDA → GPIO 2, Pin 3
- SCL → GPIO 3, Pin 5
Pi vor Änderungen an der Verkabelung ausschalten.
I²C aktivieren
sudo raspi-config
# Interface Options → I2C → Enable
sudo reboot
sudo apt update
sudo apt install -y i2c-tools python3-venv python3-pip
sudo i2cdetect -y 1
Der Sensor erscheint meist unter 0x76 oder 0x77.
Messprogramm
python3 -m venv ~/weather-venv
~/weather-venv/bin/pip install adafruit-blinka adafruit-circuitpython-bme280
mkdir -p ~/weather
nano ~/weather/read.py
Code für read.py:
from datetime import datetime
import csv, board
from adafruit_bme280 import basic as bme
sensor = bme.Adafruit_BME280_I2C(board.I2C())
row = [datetime.now().isoformat(timespec="seconds"), round(sensor.temperature,1), round(sensor.relative_humidity,1), round(sensor.pressure,1)]
with open("/home/BENUTZER/weather/data.csv","a",newline="") as f:
csv.writer(f).writerow(row)
print(row)
~/weather-venv/bin/python ~/weather/read.py
cat ~/weather/data.csv
Alle fünf Minuten messen
crontab -e
*/5 * * * * /home/BENUTZER/weather-venv/bin/python /home/BENUTZER/weather/read.py >> /home/BENUTZER/weather/weather.log 2>&1
- Sensor bei i2cdetect sichtbar
- Messwerte plausibel
- CSV wächst alle fünf Minuten
- Sensor vor Sonne und Regen geschützt
Für Außenmessungen ein belüftetes Strahlungsschutzgehäuse verwenden.