Sensoren: Luftdruck- und Temperaturmessung mit dem BMP085

Auf dem Weg zu einer kleinen Wetterstation beschäftigen wir uns heute mit der Luftdruck- und Temperaturmessung und verwenden dafür den BMP085 inklusive Breakoutboard mit I²C-Schnittstelle, sowie einen Arduino unserer Wahl.

Sensoren: Luftdruck- und Temperaturmessung mit dem BMP085 (GY-65 Breakoutboard)

Sensoren: Luftdruck- und Temperaturmessung mit dem BMP085 (GY-65 Breakoutboard)

Zuerst verkabeln wir das Breakoutboard mit dem Arduino (hier ein Arduino Nano-Klon) nach folgendem Plan (auch oben im Bild zu erkennen):

Schaltplan (Arduino-Verdrahtung des GY-65 Breakoutboards):

Schaltplangröße:

1afbgchdie1j55101015152020252530afbgchdie30j
Für weitere Informationen (z.B. Pinbelegungen von Bauteilen oder genaue Kabelverbindungen)
mit der Maus über Elemente fahren (oder im Touch-Modus: Elemente antippen)...

Arduino (Pro Mini, Nano, Uno) Arduino (Mega, Mega 2560) GY-65 mit BMP085
VCC 5V VCC 5V VCC
GND GND GND
A4 (SDA) D20 (SDA) SDA
A5 (SCL) D21 (SCL) SDL (SCL)
GY-65 Breakoutboard (BMP085) - Pinout

GY-65 Breakoutboard (BMP085) – Pinout

Achtung, es gibt verschiedene andere Breakoutboards auf dem Markt die nicht über einen integrierten Spannungsregler verfügen, diese müssen dann mit 3,3V betrieben werden!

Anschließend installieren wir uns noch die Adafruit-BMP085-Bibliothek von der GitHub-Webseite und laden dann folgenden Sketch auf unseren Arduino:

Programmcode (Sketch):

#include <Wire.h>
#include <Adafruit_BMP085.h>  // Adafruit Bibliothek einbinden

Adafruit_BMP085 bmp;

void setup(){

 // Seriellen Monitor aktivieren
 Serial.begin(9600);

 // Sensor initialisieren
 if (!bmp.begin()) {
  Serial.println("Keinen gültigen BMP085 Sensor gefunden!");
  while (true) {}
 }
}

void loop(){

 Serial.print("Temperatur: ");
 // readTemperature() Temperatur °C auslesen und anzeigen
 Serial.print(bmp.readTemperature());
 Serial.print(" ");  // Hier müssen wir ein wenig tricksen
 Serial.write(176);  // um das °-Zeichen korrekt darzustellen
 Serial.println("C");

 Serial.print("Luftdruck: ");
 // readPressure() Luftdruck in Pa auslesen und anzeigen
 Serial.print(bmp.readPressure());
 Serial.println(" Pa");

 Serial.print("Hoehe: ");
 // readAltitude() Höhe in meter auslesen und anzeigen
 Serial.print(bmp.readAltitude());
 Serial.println(" meter");

 Serial.println(); // Leerzeile anzeigen
 delay(5000);      // 5 Sekunden warten
}

… öffnen anschließend den seriellen Monitor und:

Sensoren: Luftdruck und Temperatur mit dem BMP085 - Serieller-Monitor

sehen dann eine ähnliche Ausgabe wie oben im Bild.

Allerdings ist die Höhenangabe nur eine ungefähre Angabe, Näheres findet man unter Barometrische Höhenmessung in der Wikipedia.

Weiterführendes Projekt:

Einfache (Raum-)Klimaüberwachung mit einem Arduino
Luftdruck, Temperatur, Luftfeuchtigkeit, Zeit und Datum

Bauteile (Bezugsquellen):

eBay: Arduino Nano
BMP085
Breadboard
Breadboard Kabel
GY-65
Amazon: Arduino Nano
BMP085
Breadboard
Breadboard Kabel
GY-65

Gut?

Facebooktwittergoogle_plusredditpinterestlinkedinmailFacebooktwittergoogle_plusredditpinterestlinkedinmail