Der Sensor BME280 misst Temperatur, Luftdruck und Luftfeuchtigkeit.
Anhand des standardmäßigen Luftdrucks auf Meereshöhe von 1013,25 hPa im Verhältnis zum gemessenen Luftdrucks berechnet der Sensor die ungefähre Höhe des Standortes.
Die Ausgabe erfolgt im Seriellen Monitor.

Verschiedene BME280-Sensoren
![]() | ![]() |
| DFRobot BME280 | GY-BME280 |
Beim GY-BME280 entscheidet der Anschluss SDO über die HEX-Adresse:
Wird der Pin mit 5V/3,3V verbunden, ändert sich die HEX-Adresse auf 0×77, die Standard-Adresse ist 0×76.
Die HEX-Adresse kannst du mit diesem ⇒Programm herausfinden.
Benötigte Bauteile
- BME280
- Leitungsdrähte
Der Schaltplan
Baue die Schaltung auf.

Benötigte Bibliothek installieren

Das Programm
#include "Adafruit_BME280.h"
#define MeeresHoehe (1013.25)
// Name des BME280
Adafruit_BME280 bme;
void setup()
{
Serial.begin(9600);
// auf Serielle Verbindung warten
while (!Serial);
delay(1000);
// BME280 starten, bei Misserfolg Meldung anzeigen
if (!bme.begin(0x76))
{
Serial.println("BME280 nicht verbunden");
Serial.println("Verkabelung und/oder HEX-Adresse prüfen!");
Serial.println("Start mit möglichen HEX-Adressen:");
Serial.println("bme.begin(0x76);");
Serial.println("bme.begin(0x77);");
Serial.println("Programm wird beendet!");
while(1);
}
else Serial.println("BME280 erfolgreich gestartet!");
}
void loop()
{
/*
Daten erfassen
die Daten liegen als Zahlen im Format float vor
für die weitere Verarbeitung werden sie direkt in eine String umgewandelt
*/
String Temperatur = String(bme.readTemperature());
String Luftfeuchtigkeit = String(bme.readHumidity());
String ungefaehreHoehe = String(bme.readAltitude(MeeresHoehe));
String Luftdruck = String(bme.readPressure() / 100.0);
// float verwendet den . als Dezimaltrennzeichen
// . mit replace durch , ersetzen
Temperatur.replace(".", ",");
Luftdruck.replace(".", ",");
Luftfeuchtigkeit.replace(".", ",");
ungefaehreHoehe.replace(".", ",");
// Daten im Serieller Monitor anzeigen
Serial.print("Temperatur: ");
Serial.println(Temperatur + " °C");
Serial.print("Luftdruck: ");
Serial.println(Luftdruck + " hPa");
Serial.print("Luftfeuchtigkeit: ");
Serial.println(Luftfeuchtigkeit + " %");
Serial.print("ungefähre Höhe: ");
Serial.println(ungefaehreHoehe + " m");
Serial.println("--------------------------");
delay(5000);
}Letzte Aktualisierung:

