Nr. 23 – BME280 Luftdruck-, Luftfeuchtigkeits- und Temperatursensor

Aufgabe : Der BME280 Sensor soll Temperatur-, Luftdruck- und Luftfeuchtigkeitswerte im seriellen Monitor anzeigen

Material: Arduino / BME280 Sensor / Kabel (Materialbeschaffung: www.funduinoshop.de)

In dieser Aufgabe möchten wir uns die Eigenschaften des BME280 Sensors näher ansehen.
Der Sensor ist in der Lage den Temperatur-, Luftdruck und den Luftfeuchtigkeitswert der Umgebung zu messen.
Diese Messwerte sollen uns im sogenannten „Seriellen Monitor“ angezeigt werden.

WICHTIG :
Der Sensor verwendet eine 3,3V Spannung!
Eine Stromzufuhr mit mehr als ~3,6V kann permanenten Schaden am Modul verursachen!
Des weiteren können Erschütterungen die Messwerte des BME280 beeinträchtigen.

Der BME280 Sensor verfügt über sechs Pins.
Bei der Bearbeitung dieser Aufgabe verwenden wir die Pins :

VCC – Pin für die Spannungsversorgung, anzuschließen an den 3,3V Pin des Arduinos
GND – „Ground Pin“, anzuschließen an den GND Pin des Arduinos
SCL – „Serial Clock“ Pin , wird zusammen mit dem SDA(Serial Data) Pin als Signalleitung des I²C verwendet, anzuschließen an den A5 Pin des Arduinos
SDA – „Serial Data“ Pin , wird zusammen mit dem SCL(Serial Clock) Pin als Signalleitung des I²C verwendet, anzuschließen an den A4 Pin des Arduinos

Ausserdem findet man noch zwei weitere Pins, welche wir in dieser Aufgabe jedoch nicht verwenden.

SDO – Pin für die Festlegung der Hexcodierung, die normale I²C Adresse lautet 0x77. Verbindet man den SDO und einen Ground Pin, so verändert sich die Adresse zu 0x76.
CSB – „Chip Select“ Pin

 

 

 

Sobald die Verkabelung abgeschlossen ist und wir unser Ergebnis noch einmal überprüft haben, schauen wir uns den Sketch an.

Bitte beachten Sie, dass der Sensor sowohl die I²C Bibliothek „<Wire.h>“, als auch eine eigene „<Seeed_BME280.h>“ benötigt.
Die „<Wire.h“> Bibliothek ist bereits auf Ihrem Arduino vorinstalliert. Die Bibliothek „<Seeed_BME280.h>“ muss manuell installiert werden.
Eine ausführliche Anleitung des Installationsprozesses finden Sie hier.

Der Sketch : 

#include <Seeed_BME280.h> // Implementieren der Seeed Bibliothek, ermöglicht die Kommunikation mit dem BME
#include <Wire.h>  // Implementieren der Wire Bibliothek, ermöglicht dem Arduino mit Geräten zu kommunizieren, welche das I²C Protokoll verwenden
 
BME280 bme280;

void setup ()
{
   Serial.begin(9600); // Einstellen der Baudrate
   if(!bme280.init()) // Wenn keine Daten vom BME abgefragt werden können...
   
        {
          Serial.println("FEHLER!"); // ...dann soll eine Fehlermeldung ausgegeben werden.
        }
}

void loop() // Starten unserer Schleife

{
  float Druck; // Deklarieren der Variablen
  float Pascal;
  double Bar;
  
          Serial.print("Temperatur : ");   
          Serial.print(bme280.getTemperature()); // Abfrage und Ausgabe der Temperatur
          Serial.println("C");
          Serial.print("Druck : ");
          
  Pascal = bme280.getPressure();  // Abfrage des Drucks in Pascal
  
          Serial.print(Pascal);  // Ausgabe des Drucks in Pascal
          Serial.print(" Pascal oder auch ");
          
  Bar = (Pascal/100000); // Wandlung des Pascal-Werts in Bar
  
          Serial.print(Bar); // Ausgabe des Drucks in Bar
          Serial.println(" Bar");
          
          Serial.print("Feuchtigkeit : "); 
          Serial.print(bme280.getHumidity()); // Abfrage und Ausgabe der Temperatur
          Serial.println("%");
          Serial.println(" ");
          
  delay(1000); 
  
}