Bei­spiel­pro­gramm BME280


Der Sen­sor BME280 misst Tem­pe­ra­tur, Luft­druck und Luft­feuch­tig­keit.
Anhand des stan­dard­mä­ßi­gen Luft­drucks auf Mee­res­hö­he von 1013,25 hPa im Ver­hält­nis zum gemes­se­nen Luft­drucks berech­net der Sen­sor die unge­fäh­re Höhe des Stand­or­tes.
Die Aus­ga­be erfolgt im Seri­el­len Monitor.

Ver­schie­de­ne BME280-Sensoren

DFRo­bot BME280GY-BME280

Beim GY-BME280 ent­schei­det der Anschluss SDO über die HEX-Adres­se:
Wird der Pin mit 5V/3,3V ver­bun­den, ändert sich die HEX-Adres­se auf 0×77, die Stan­dard-Adres­se ist 0×76.

Die HEX-Adres­se kannst du mit die­sem ⇒Pro­gramm herausfinden.

Benö­tig­te Bauteile

  • BME280
  • Lei­tungs­dräh­te

Der Schalt­plan

Baue die Schal­tung auf.

Benö­tig­te Biblio­thek installieren

Das Pro­gramm

#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);
}

🔗Daten­blatt BME280


Letz­te Aktua­li­sie­rung: Aug. 26, 2025 @ 19:10