Helltec ESP32 V3 und BMP180

Hallo zusammen, ich bin gerade dabei einen BMP180 an ein Helltec ESP32 V3 anzuschließen. Ich habe die SDA und SCL Pins auf GPIO42 und 41 definiert, schien mir angenehmer. ich möchte dass z.B. Temperatur und Druck auf dem vorhandenen OLED angezeigt werden. Dieser ist bei dem ESP32 V3 ja bereits montiert.

Allerdings bleibt das Display dunkel. Ich habe schon viel versucht. Hier mal meine Programmierung:

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP085.h> // BMP180-Bibliothek
#include "HT_SSD1306Wire.h"   // OLED Display-Bibliothek

// OLED Display-Definition (I2C Adresse: 0x3C)
static SSD1306Wire display(0x3c, 500000, SDA_OLED, SCL_OLED, GEOMETRY_128_64, RST_OLED);
Adafruit_BMP085 bmp; // BMP180 Sensor-Objekt

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

    // Initialisiere I2C für BMP180
    Wire.begin(42, 41); // SDA auf GPIO42, SCL auf GPIO41

    // Initialisiere BMP180
    if (!bmp.begin()) {
        Serial.println("BMP180 Sensor nicht gefunden! Überprüfe die Verkabelung.");
        while (1); // Endlosschleife bei Fehler
    }
    Serial.println("BMP180 erfolgreich initialisiert.");

    // Initialisiere das OLED-Display
    if (!display.init()) {
        Serial.println("Display nicht gefunden!");
        while (1); // Endlosschleife bei Fehler
    }
    display.setFont(ArialMT_Plain_16); // Setze große Schrift
    display.setTextAlignment(TEXT_ALIGN_CENTER); // Textausrichtung auf Mitte
}

void loop() {
    // Luftdruck vom BMP180 lesen
    float pressure = bmp.readPressure() / 100.0F; // Druck in hPa umrechnen

    // Ausgabe auf dem seriellen Monitor
    Serial.print("Luftdruck: ");
    Serial.print(pressure);
    Serial.println(" hPa");

    // Ausgabe auf dem OLED-Display
    display.clear();
    display.drawString(64, 32, "Druck: " + String(pressure) + " hPa");
    display.display();

    delay(1000); // 1 Sekunde Pause vor der nächsten Messung
}

Kann da jemand helfen? Danke

type using the second I2C interface, e.g. I don't have a BMP180 so used a BME280

// Heltec_WiFi_LoRa32 V3 interfacing BMP280 on second I2C interace Wire1
//  note does not work on Wire (first I2C interface) with the display

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>  // BMP180-Bibliothek
#include "HT_SSD1306Wire.h"   // OLED Display-Bibliothek

// OLED Display-Definition (I2C Adresse: 0x3C)
static SSD1306Wire display(0x3c, 500000, SDA_OLED, SCL_OLED, GEOMETRY_128_64, RST_OLED);
Adafruit_BME280 bmp;  // BMP180 Sensor-Objekt

void setup() {
  Serial.begin(115200);
  // Initialisiere I2C für BMP180
  Wire1.begin(42, 41);  // SDA auf GPIO42, SCL auf GPIO41
  if (!bmp.begin(0x76, &Wire1)) {
    Serial.println("BMP180 Sensor nicht gefunden! Überprüfe die Verkabelung.");
    while (1)
      ;  // Endlosschleife bei Fehler
  }
  Serial.println("BMP180 erfolgreich initialisiert.");

  // Initialisiere das OLED-Display
  if (!display.init()) {
    Serial.println("Display nicht gefunden!");
    while (1)
      ;  // Endlosschleife bei Fehler
  }
  display.setFont(ArialMT_Plain_16);            // Setze große Schrift
  display.setTextAlignment(TEXT_ALIGN_CENTER);  // Textausrichtung auf Mitte                                            // Initialisiere BMP180
}

void loop() {
  // Luftdruck vom BMP180 lesen
  float pressure = bmp.readPressure() / 100.0F;  // Druck in hPa umrechnen

  // Ausgabe auf dem seriellen Monitor
  Serial.print("Luftdruck: ");
  Serial.print(pressure);
  Serial.println(" hPa");

  // Ausgabe auf dem OLED-Display
  display.clear();
  display.drawString(64, 32, "Druck: " + String(pressure) + " hPa");
  display.display();

  delay(1000);  // 1 Sekunde Pause vor der nächsten Messung
}

serial monitor displays

BMP180 erfolgreich initialisiert.
Luftdruck: 1026.16 hPa
Luftdruck: 1026.16 hPa
Luftdruck: 1026.18 hPa
Luftdruck: 1026.18 hPa
Luftdruck: 1026.15 hPa
Luftdruck: 1026.17 hPa

Das hat super funktioniert! Vielen Dank!

Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden.
Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.

mfg ein Moderator.

Wenn das Problem gelöst ist, klicken Sie auf die Schaltfläche Lösung am Ende der Antwort, die die Frage beantwortet hat - dies hilft anderen mit einer ähnlichen Frage