#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
ds18b20
Loading
ssd1306
ssd1306