🍪 Privacy & Transparency

We and our partners use cookies to Store and/or access information on a device. We and our partners use data for Personalised ads and content, ad and content measurement, audience insights and product development. An example of data being processed may be a unique identifier stored in a cookie. Some of our partners may process your data as a part of their legitimate business interest without asking for consent. To view the purposes they believe they have legitimate interest for, or to object to this data processing use the vendor list link below. The consent submitted will only be used for data processing originating from this website. If you would like to change your settings or withdraw consent at any time, the link to do so is in our privacy policy accessible from our home page..

Vendor List | Privacy Policy
Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry PI

Menu
  • Projekte
    • LED’s
    • Servo & Schrittmotoren
    • Sound
    • LCD’s
    • Kommunikation
    • Sicherheit
    • Weekend Project
  • Arduino
    • Tutorials
    • ProMini
      • Anschließen & Programmieren
    • Nano
      • Arduino Nano – Übersicht
    • UNO
      • Übersicht
    • MEGA 2560
      • Übersicht
    • Leonardo
      • Übersicht
    • NodeMCU
      • NodeMCU – “Einer für (fast) Alles!”
    • Lilypad
      • Arduino: Lilypad “Jetzt Geht’s Rund!”
    • WEMOS
      • WEMOS D1 – Arduino UNO kompatibles Board mit ESP8266 Chip
      • WEMOS D1 Mini – Übersicht
      • Wemos D1 mini Shields
    • STM32x
      • STM32F103C8T6 – Übersicht
    • Maker UNO
      • Maker UNO – Überblick und Test
    • ATTiny85
      • Mini Arduino mit ATTiny85 Chip
      • ATtiny85 mit dem Arduino UNO beschreiben
  • Android
  • Über mich
  • DeutschDeutsch
  • EnglishEnglish
Menu

Arduino Lektion 10: BMP180 digitaler Luftdruck Sensor

Veröffentlicht am 13. Juni 20152. Mai 2023 von Stefan Draeger

Nach langer Zeit möchte ich gerne einen weiteren Sensor vorstellen, es ist der
„BMP180 digitaler Luftdruck Sensor“. Dieser Sensor enthält unter anderem auch einen Temperatursensor, welcher hier aber nicht weiter betrachtet wird.

BMP180 digitaler Luftdruck Sensor
BMP180 digitaler Luftdruck Sensor

Diesen Sensor habe ich bei Ebay für 1,99 € per Sofort-Kauf bei einem Händler aus Singapur (wiedermal lange Lieferzeiten).

Hier nun ein paar technische Daten:

  • Spannung 1,8 V bis 3,6V
  • Leistungsaufnahme 0,5µA bei 1Hz
  • Genauigkeit 0.02hPa
  • Messbereich 300hPa bis 1100hPa
    Entspricht einer Höhe bzw Tiefe von +9000 m bis – 500 m.
  • Der Schaltplan
  • Benötigte Bibliothek
  • Der Quellcode
  • Der Aufbau
  • Screenshot der Ausgabe auf dem seriellen Monitor
  • Der Quellcode zum Download
  • Nachtrag (05.12.2019)

Der Schaltplan

Es ist darauf zu achten, dass die PINs an den richtigen analogen Buchsen des Mikrocontrollers angeschlossen werden. Leider gibt die Bibliothek keine Möglichkeit die zu bestimmen. (Außer natürlich man ändert die *.h Datei.)

VCC  -> 3.3 V
GNG -> GND
SDA  -> A4
SCL  -> A5

Anschlussplan des BMP180 an den Sunfounder UNO R3
Anschlussplan des BMP180 an den Sunfounder UNO R3

Bei dem Anschlussplan habe ich keinen originalen Maßstab verwendet da der Sensor BMP180 sehr klein ist.

Benötigte Bibliothek

Für den Betrieb des Sensors werden folgende Bibliotheken benötigt:

  • Adafruit Unified Sensor Driver
  • BMP180 Bibliothek

Wie man eine Bibliothek der Arduino IDE hinzufügt habe ich im Tutorial Arduino IDE, Einbinden einer Bibliothek erläutert.

Der Quellcode

#include <Wire.h>
#include <BMP180.h>


BMP180 barometer; //Die Instanzvariable eines BMP180 Sensors.

void setup()
{
  Serial.begin(9600); // Baudrate auf 9600 setzen.
  Wire.begin(); //Adafruit Wire Bibliothek für die I2C Kommunikation mit dem BMP180 Sensor.
  barometer = BMP180(); //setzen einer Instanz des BMP180 Sensors.
  //Prüfen ob ein BMP180 Sensor gefunden wurde.
  if(!barometer.EnsureConnected()){ 
    Serial.println("Es wurde kein BMP180 Sensor gefunden.");
  }
}

void loop()
{
  //Nur wenn ein BMP180 Sensor gefunden wurde dann soll eine Ausgabe erfolgen.
  if(barometer.IsConnected)
  {
    //Lesen des Wertes für den Luftdruck aus dem Sensor.
    long currentPressure = barometer.GetPressure();
    
    //Schreiben des gelesenen Wertes auf den Serielenausgang
    Serial.print("Luftdruck: ");
    Serial.print(currentPressure / 100);
    Serial.print(" hPa");
   
    Serial.println(); //Eine neue Zeile einfügen.
    delay(1000);  //Kurze Pause von 1 sek.
  }
}

Der Aufbau

Sunfounder Uno R3 mit BMP180 Sensor
Sunfounder Uno R3 mit BMP180 Sensor

Screenshot der Ausgabe auf dem seriellen Monitor

Ausgabe auf dem Seriellen Monitor der Arduino IDE
Ausgabe auf dem seriellen Monitor der Arduino IDE

Der Quellcode zum Download

BMP180 digitaler Luftdruck SensorHerunterladen

Nachtrag (05.12.2019)

Wenn du nicht die Adafruit Bibliothek herunterladen kannst oder möchtest, so kannst du diese auch über den Bibliotheksverwalter installieren.
Den Bibliotheksverwalter öffnest du diesen über „Sketch“ > „Bibliothek einbinden“ >“Bibliotheken verwalten…“.

Adafruit Bibliothek BMP180 über den Bibliotheksverwalter installieren
Adafruit Bibliothek BMP180 über den Bibliotheksverwalter installieren

Nachdem diese Bibliothek installiert wurde, kannst du das Beispiel über „Datei“ > „Beispiele“ >“Adafruit BMP085 Library“ > „BMP085test“ öffnen und auf den Mikrocontroller schreiben.

Oder du nutzt dieses kleine, modifizierte Beispiel:

#include <Wire.h>
#include <Adafruit_BMP085.h>

//Instanz eines Sensors
Adafruit_BMP085 bmp;

void setup(){
  //beginn der seriellen Kommunikation mit 9600 Baud
  Serial.begin(9600); 
  //Wenn kein Sensor gefunden wurde dann...
  if (!bmp.begin()) {
  Serial.println("Es wurde kein Sensor gefunden, bitte prüfe die Verkabelung!");
  //eine Endlosschleife
  //Dieses sorgt dafür das die Loop nicht erreicht wird!
  while (1) {}
  }
}

void loop(){
  //Ausgabe des Luftdrucks auf der seriellen Schnittstelle
  Serial.print("Luftdruck = ");
  Serial.print(bmp.readPressure());
  Serial.println(" Pa");

  delay(1000);  //Kurze Pause von 1 sek.
}

Du solltest nun, wenn du alles so wie oben beschrieben angeschlossen hast, nachfolgende Ausgabe im seriellen Monitor finden.

Konsolenausgabe des Beispieles zum BMP180 Sensor
Konsolenausgabe des Beispieles zum BMP180 Sensor

15 thoughts on “Arduino Lektion 10: BMP180 digitaler Luftdruck Sensor”

  1. Werner G. sagt:
    23. Februar 2017 um 19:36 Uhr

    Danke für die tolle Vorstellung. Dein Codebeispiel funktioniert gut. Vielleicht solltest du noch eine Temperatur-Ausgabe im Code einbringen, wie hier z.B.: http://www.aeq-web.com/bmp085-180-arduino/?ref=ws

    Antworten
    1. lol hahaha sagt:
      5. Dezember 2019 um 14:13 Uhr

      LOL als ob bei dir irgendwas funktioniert hat, das ist doch fake. Bei mir hat gar nichts funktioniert

      Antworten
      1. Stefan Draeger sagt:
        5. Dezember 2019 um 14:23 Uhr

        Hi Werner,

        was ist denn dein Fehler?
        Gerne kann ich das ganze neu aufbauen und den Beitrag um ein kleines Video ergänzen.

        Gruß,

        Stefan Draeger

        Antworten
  2. lol hahaha sagt:
    5. Dezember 2019 um 14:07 Uhr

    Diese seite bringt nichts. Da dieser skatch einfach nicht klapt.

    Antworten
    1. gigerigi sagt:
      5. Dezember 2019 um 14:09 Uhr

      Beim mir hat es auch nicht geklappt. Es kam die ganze zeit der gleiche Fehler.

      Antworten
      1. Stefan Draeger sagt:
        5. Dezember 2019 um 14:23 Uhr

        Hi,

        welcher Fehler kommt denn bei dir?

        Gruß,

        Stefan Draeger

        Antworten
    2. Stefan Draeger sagt:
      5. Dezember 2019 um 20:42 Uhr

      Hallo,

      ich habe soeben den Sketch ausprobiert und er klappt bei mir.
      Aber ich habe den Beitrag um eine „zweite Lösung“ erweitert, ich hoffe das wird dir weiterhelfen.
      Ansonsten empfehle ich dir gerne eine Kontaktaufnahme über das Kontaktformular und dort kannst du mir dann ausführlich dein Problem beschreiben.

      Gruß,

      Stefan Draeger

      Antworten
      1. Joachim Scharmacher sagt:
        2. Dezember 2022 um 17:03 Uhr

        Hallo,
        als Arduinoanfänger habe ich mir Dein Bespiel herunter geladen und die Bibliotheken per ZIP geladen und eingebunden. so weit hat alles geklappt.

        Den Sketch in die Arduino IDE geladen und versucht zu kompilieren.
        Dabei kommt immer eine Fehlermeldung.

        Meine IDE Version ist die 2.0.2

        Hier ist sie:
        In file included from C:\Users\Jokim\Documents\Arduino\BMP180 Test\BMP180 Test.ino:2:0:
        c:\Users\Jokim\Documents\Arduino\libraries\bmp180/BMP180.h:26:10: fatal error: ../Wire/Wire.h: No such file or directory
        #include „../Wire/Wire.h“
        ^~~~~~~~~~~~~~~~
        compilation terminated.

        exit status 1

        Compilation error: exit status 1

        Antworten
        1. Stefan Draeger sagt:
          3. Dezember 2022 um 10:06 Uhr

          Hallo,

          da fehlt die eigentlich vorhandene Bibliothek Wire. Diese kannst du über den Bibliotheksmanager achinstallieren.

          Gruß

          Stefan

          Antworten
  3. Ralf sagt:
    6. Mai 2020 um 13:42 Uhr

    Super Toll beschrieben!
    Danke für Deine Bemühungen!

    Gruß
    Ralf

    Antworten
  4. Josef Ruppel sagt:
    8. Mai 2020 um 01:06 Uhr

    Hallo,
    ich habe eben den Sketch ausprobiert und er funktioniert.
    Aber : Die Konsolenausgabe, ich nehme an, das ist die Ausgabe über den seriellen Monitor, erhalte ich nicht.
    Wo ist denn da überhaupt die barometrische Höhenformel hinterlegt? Zumindest müsste man doch irgendwo die lokale Höhe eingeben, oder?
    Vielen Dank vorab!
    Gruß Josef

    Antworten
    1. Stefan Draeger sagt:
      8. Mai 2020 um 18:04 Uhr

      Hallo Josef,

      danke für dein Kommentar, ich freue mich das du dich auf mein Blog verirrt hast.
      Wenn du die Ausgabe auf dem seriellen Monitor nicht erhältst, wie kommst du dann zu der Annahme das der Sketch funktioniert?
      Erhältst du eine Fehlermeldung?
      Ist die Baudzahl im seriellen Monitor korrekt eingestellt?

      Gruß,

      Stefan

      Antworten
      1. Josef sagt:
        9. Mai 2020 um 22:20 Uhr

        Hallo Stefan,
        der Sketch funktioniert in sofern, dass dass der Druck angezeigt wird.
        Aber alle anderen Daten aus Deinem obigen Beispiel „Konsolenausgabe des Beispieles zum BMP180 Sensor“ erhalte ich nicht. Naja, die stehen in dem Sketch ja auch nicht drin. Wo kommen diese her?
        Wobei Du allerdings darauf hinweist, dass die Daten auf dem Seriellen Monitor zu finden sein sollten.
        Gruß Josef

        Antworten
        1. Stefan Draeger sagt:
          10. Mai 2020 um 07:26 Uhr

          Hi Josef,

          danke für deinen Hinweis.
          Diese Ausgabe auf der Konsole erhältst du, wenn du das Beispiel verwendest welches der Bibliothek „Adafruit BMP085 Library“ beiliegt.
          Wenn du dieses nutzt erhälst du genau die Ausgabe wie gezeigt.

          Gruß,

          Stefan

          Antworten
          1. Josef sagt:
            11. Mai 2020 um 16:22 Uhr

            Hallo,
            oh, sorry wer lesen kann ist wie immer klar im Vorteil….:)
            Ich hatte vermutet, dass das auch so mit dem modifizierten Beispiel funktionieren soll. Mein Fehler! Mit dem Beispiel aus der Arduino funktioniert es nun auch
            Vielen Dank!
            Gruß Josef

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Kategorien

Tools

  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator
  • Widerstandsrechner
  • Rechner für Strom & Widerstände
  • ASCII Tabelle

Meta

  • Videothek
  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Kontakt
  • Cookie-Richtlinie (EU)

Links

Blogverzeichnis Bloggerei.de Blogverzeichnis TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com
©2023 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
x
x