#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_ADDR   0x3C
#define OLED_SDA    A4
#define OLED_SCL    A5

#define ONE_WIRE_BUS 3  // Data wire is connected to pin 3

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

int relayPin = 4;

// Create an instance of the OLED display
Adafruit_SSD1306 display(128, 64, &Wire, OLED_ADDR);

void setup() {
  Serial.begin(9600);
  sensors.begin();
  pinMode(relayPin, OUTPUT);
  digitalWrite(relayPin, HIGH);  // Turn on the relay

  // Initialize the display
  display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR);
  display.clearDisplay();
  display.setTextSize(2);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0, 0);
  display.println("Temperature:");
  display.display();
}

void loop() {
  sensors.requestTemperatures();
  float temperature = sensors.getTempCByIndex(0);
  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.println("°C");

  // Update the display
  display.clearDisplay();
  display.setCursor(0, 0);
  display.print("Temperature: ");
  display.print(temperature);
  display.print("C");
  display.display();

  if (temperature <= 5.0) {
    digitalWrite(relayPin, LOW);  // Turn off the relay
    Serial.println("Relay OFF");
  } else {
    digitalWrite(relayPin, HIGH);  // Turn on the relay
    Serial.println("Relay ON");
  }

  delay(1000);  // Adjust the delay as per your requirement
}

Loading
ds18b20
NOCOMNCVCCGNDINLED1PWRRelay Module
Loading
ssd1306