#include #include #include #include #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_ADDR 0x3C #define BME_ADDR 0x77 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); Adafruit_BME280 bme; void setup() { Serial.begin(115200); // ESP32 pins (adjust if needed) Wire.begin(6, 7); // OLED init if (!display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR)) { Serial.println("SSD1306 init failed"); while (1); } // BME280 init if (!bme.begin(BME_ADDR)) { Serial.println("BME280 not found at 0x77"); while (1); } display.clearDisplay(); display.setTextColor(SSD1306_WHITE); } void loop() { float temp = bme.readTemperature(); float hum = bme.readHumidity(); float pres = bme.readPressure() / 100.0F; display.clearDisplay(); // Header (yellow strip) display.setTextSize(1); display.setCursor(0, 0); display.println("DFR BME280"); // Bigger temperature display.setTextSize(2); display.setCursor(0, 16); display.print(temp, 1); display.print("C"); // Smaller stats display.setTextSize(1); display.setCursor(0, 40); display.print("H:"); display.print(hum, 0); display.print("% "); display.print("P:"); display.print(pres, 0); display.print("hPa"); display.display(); // Serial debug Serial.print("Temp: "); Serial.print(temp); Serial.print(" C Hum: "); Serial.print(hum); Serial.print(" % Pres: "); Serial.print(pres); Serial.println(" hPa"); delay(2000); }