Drucksensor BMP180 Arduino anschließen & verwenden

Mit dem Drucksensor BMP180 Arduino können Sie ein Arduino-Barometer mit Ihren eigenen Händen bauen. Sie können den Sensor verwenden, um eine Wetterstation für Ihr Zuhause zu erstellen, indem Sie ein 1602 i2c-Display zu der Schaltung hinzufügen. Schauen wir uns an, wie man den Drucksensor bmp180 an das Arduino-Board anschließt und die Luftdruckdaten an den Port-Monitor oder das LCD 1602-Display ausgibt.




Bestandteile:

Der Drucksensor BMP180 / GY68 ist für die Messung des atmosphärischen Drucks ausgelegt und wird für zwei Dinge nützlich sein. Erstens nimmt der atmosphärische Druck ab, wenn man sich vom Meeresspiegel zum Berggipfel bewegt – das heißt, wir können die Höhe anhand des Drucks bestimmen. Zweitens variiert der atmosphärische Druck mit dem Wetter, so dass wir den Sensor verwenden können, um Wetterveränderungen zu verfolgen.

Drucksensor BMP180 (GY68) Arduino pinout, datasheet

Drucksensor BMP180 Arduino pinout, datasheet

Merkmale des Drucksensor BMP180 (datasheet)

  • Versorgungsspannung: 3 – 5 V
  • Stromverbrauch: 5 μA für 1 Messung pro Sekunde
  • Schnittstelle: I2C
  • Druckmessbereich: 300-1100 hPa
  • Genauigkeit: 0,03hPa (0,25m)
  • Temperaturbereich: -40°C bis +85°C

Merkmale des Drucksensor GY68 (datasheet)

  • Versorgungsspannung: 1.8 – 3.6 V
  • Stromverbrauch: 5 μA für 1 Messung pro Sekunde
  • Schnittstelle: I2C
  • Druckmessbereich: 300hPa bis 1100hPa (+9000 m bis -500 m)
  • Druckgenauigkeit bis 0,02hPa (0,17m)
  • Temperaturbereich: -40°C bis +85°C

Ein Barometer ist ein elektronisches Gerät, das den atmosphärischen Druck misst. Moderne Arduino-Barometer gy-68 und bmp180 basieren auf der piezoresistiven oder Dehnungsmessstreifen-Methode, d.h. die Sensoren ändern den Widerstand des Materials unter Einwirkung von Verformungskräften. Beachten Sie, dass das Drucksensormodul GY-68 an eine 3,3-Volt-Stromversorgung des Arduino-Mikrocontrollers angeschlossen ist.

Wie man einen BMP180 an einen Arduino anschließt

Wie man einen BMP180 an einen Arduino anschließt

BMP180 (GY-68) Arduino Uno Arduino Nano Arduino Mega
GND GND GND GND
VIN 5V 5V 5V
SDA A4 A4 20
SCL A5 A5 21

Die Verbindung wird über die I2C-Schnittstelle hergestellt. Die SCL/SDA-Kontakte und die Stromversorgung des Moduls werden auf die Kontaktgruppe herausgeführt. Zusätzlich muss für die Arbeit mit dem Sensor die BMP180-Breakout-Bibliothek installiert sein, die den Betrieb des Moduls vereinfacht. Die Befehle für die Module bmp180 und gy-68 sind die gleichen, so dass die Bibliothek SFE_BMP180.h für alle aufgeführten Sensoren funktioniert.

Programm für Drucksensor BMP180 Arduino




#include "Wire.h"
#include "SFE_BMP180.h"

SFE_BMP180 pressure;
#define ALTITUDE 1655.0

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

void loop(){
   char status;
   double T,P,p0,a;

   Serial.println();
   Serial.print("provided altitude: ");
   Serial.print(ALTITUDE,0);
   Serial.println(" meters");
  
   status = pressure.startTemperature();
   if (status != 0){
      delay(status);

      status = pressure.getTemperature(T);
      if (status != 0){
         Serial.print("temperature: ");
         Serial.print(T,2);
         Serial.println(" deg C");

         status = pressure.startPressure(3);
         if (status != 0){
            delay(status);

            status = pressure.getPressure(P,T);
            if (status != 0){
               Serial.print("absolute pressure: ");
               Serial.print(P,2);
               Serial.print(" mb, ");
               Serial.print(P*0.0295333727,2);
               Serial.println(" inHg");

              p0 = pressure.sealevel(P,ALTITUDE);
              Serial.print("relative (sea-level) pressure: ");
              Serial.print(p0,2);
              Serial.print(" mb, ");
              Serial.print(p0*0.0295333727,2);
              Serial.println(" inHg");
           }
        else Serial.println("error retrieving pressure measurement\n");
      }
      else Serial.println("error starting pressure measurement\n");
    }
    else Serial.println("error retrieving temperature measurement\n");
  }
  else Serial.println("error starting temperature measurement\n");

  delay(5000);
}
  1. Um den Effekt der Höhe bei der Messung des Luftdrucks zu unterdrücken, verwenden Sie die Funktion Meeresspiegel und die aktuelle Höhe;
  2. Wenn sich die Lufttemperatur ändert, wird der Luftdruck korrigiert.

Wie man einen BMP180 / GY68 Drucksensor und LCD-Display

Wie man einen BMP180 / GY68 Drucksensor und LCD-Display

LCD 1602 i2c Arduino Uno Arduino Nano Arduino Mega
GND GND GND GND
VCC 5V 5V 5V
SDA A4 A4 20
SCL A5 A5 21

Im folgenden Beispiel zeigt das lcd-Display 1602 i2c Temperatur- und Druckdaten an, wenn zwei Geräte gleichzeitig an den i2c-Bus angeschlossen sind. Insgesamt können bis zu 127 Geräte an den Arduino i2c-Bus angeschlossen werden. Schließen Sie das Textdisplay an den Arduino-Mikrocontroller gemäß dem obigen Schaltplan an und laden Sie das folgende Programm für das Barometer mit Drucksensor GY-68 (BMP180) herunter.

Programm für Druckmessung mit einem Arduino und BMP180

#include "Wire.h"
#include "SFE_BMP180.h"

SFE_BMP180 pressure;
#define ALTITUDE 1655.0

#include "LiquidCrystal_I2C.h"
LiquidCrystal_I2C LCD(0x27,16,2);

void setup(){
   pressure.begin();
   LCD.init();
   LCD.backlight();
}

void loop(){
   char status;
   double T,P,p0,a;
 
   status = pressure.startTemperature();
   if (status != 0){
      delay(status);

      status = pressure.getTemperature(T);
      if (status != 0){
         LCD.setCursor(0, 0);
         LCD.print("Temp: ");
         LCD.print(T,2);
         LCD.print(" *C");

         status = pressure.startPressure(3);
         if (status != 0){
            delay(status);

            status = pressure.getPressure(P,T);
            if (status != 0){

              p0 = pressure.sealevel(P,ALTITUDE);
              LCD.setCursor(0, 1);
              LCD.print("Pres: ");
              LCD.print(p0,2);
              LCD.print(" mb, ");
           }
        else Serial.println("error retrieving pressure measurement\n");
      }
      else Serial.println("error starting pressure measurement\n");
    }
    else Serial.println("error retrieving temperature measurement\n");
  }
  else Serial.println("error starting temperature measurement\n");

  delay(5000);
}
  1. Durch eine Änderung des Programms können Sie statt der Temperatur den absoluten und relativen Luftdruck anzeigen;
  2. In diesem Beispiel wird die Standardbibliothek LiquidCrystal.h für QAPASS verwendet.

Schlussfolgerung. Der bmp180 Drucksensor ist einfach an einen Mikrocontroller anzuschließen, und die SFE_BMP180 Bibliothek ermöglicht es, dieses Modul in vielen Einsteigerprojekten zu verwenden. Wir hoffen, dass Sie diesen Überblick nützlich fanden und wenn Sie Fragen zum bmp180 (gy-68) Modul haben, können Sie diese gerne in den Kommentaren stellen. Wir tun unser Bestes, um alle Fragen zu beantworten.

5/5 - (1 vote)


Schreibe einen Kommentar

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