#include #include #include #include #include // I2C OLED Setup #define I2C_ADDRESS 0x3C #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 Adafruit_SH1106G display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); // DS18B20 Temperature Sensor Setup #define ONE_WIRE_BUS 27 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); void setup() { Serial.begin(9600); sensors.begin(); // Initialize the I2C OLED display; reset = true if (!display.begin(I2C_ADDRESS, true)) { Serial.println(F("OLED not found")); while (1); // Pause if OLED is not detected } // Display startup message display.clearDisplay(); display.setTextSize(2); display.setTextColor(SH110X_WHITE); display.setCursor(0, 10); display.println("Starting..."); display.display(); delay(2000); } void loop() { // Request temperature from DS18B20 sensors.requestTemperatures(); float tempC = sensors.getTempCByIndex(0); // Print temperature to Serial Monitor Serial.print("Temperature: "); Serial.print(tempC); Serial.println(" C"); // Display temperature on the OLED display.clearDisplay(); display.setTextSize(2); display.setCursor(0, 10); display.print("Temp: "); display.print(tempC, 1); // Print with one decimal place display.println(" C"); display.display(); delay(1000); }