BME280 -Mess­da­ten anzeigen

Lese­zeit: 3 Minu­ten

Lösung
Seite als PDF

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 auf einem LCD und im Seri­el­len Monitor.

Mess­da­ten BME280 anzeigen

Ver­schie­de­ne BME280-Sensoren

DFRo­bot BME280GY-BME280

Benö­tig­te Bauteile

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

Der Schalt­plan

Baue die Schal­tung auf.
(Fah­re mit der Maus über das Bild, um die Bezeich­nun­gen der Bau­tei­le zu sehen)

Benö­tig­te Biblio­the­ken installieren

Biblio­the­ken und Variablen

Bin­de die benö­tig­ten Biblio­the­ken ein und defi­nie­re die Variablen:

#include "Adafruit_BME280.h"
#include "LCDIC2.h"

// 4-zeiliges LCD
LCDIC2 lcd(0x27, 20, 4);

#define MeeresHoehe (1013.25)

// Name des BME280
Adafruit_BME280 bme; 

Der set­up-Teil

void setup() 
{
  Serial.begin(9600);

  // auf Serielle Verbindung warten
  while (!Serial);
  delay(1000);

  // BME280 starten, bei Misserfolg Meldung anzeigen
  if (!bme.begin()) Serial.println("BME280 nicht verbunden");

  // LCD starten
  lcd.begin();

  // Cursor "verstecken"
  lcd.setCursor(false);
}

Der loop-Teil

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("--------------------------");

  // Anzeige LCD \337C = °
  lcd.setCursor(0, 0);
  lcd.print(Temperatur + " \337C");
  lcd.setCursor(0, 1);
  lcd.print(Luftdruck + " hPa");
  lcd.setCursor(0, 2);
  lcd.print(Luftfeuchtigkeit + " %");
  lcd.setCursor(0, 3);
  lcd.print(ungefaehreHoehe + " m");

  // Wartezeit bis zur nächsten Messung
  delay(5000);
}

Startseite
Aufgaben A-Z
Suchen
Downloads
Fehlermeldungen
Seite als PDF

Ver­wand­te Anleitungen:

Letz­te Aktua­li­sie­rung: Aug 23, 2024 @ 8:24