#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
// ESP32-C3 DevKit pins
#define ONE_WIRE_BUS 4
#define OLED_SDA 8
#define OLED_SCL 9
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
#define OLED_ADDRESS 0x3F
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
Adafruit_SSD1306 display(
SCREEN_WIDTH,
SCREEN_HEIGHT,
&Wire,
OLED_RESET
);
void setup() {
Serial.begin(115200);
Wire.begin(OLED_SDA, OLED_SCL);
sensors.begin();
if (!display.begin(
SSD1306_SWITCHCAPVCC,
OLED_ADDRESS)) {
Serial.println("SSD1306 OLED not found!");
while (true) {
delay(100);
}
}
display.clearDisplay();
display.setTextColor(SSD1306_WHITE);
display.setTextSize(1);
display.setCursor(10, 20);
display.println("ESP32-C3 DevKit");
display.println("Starting...");
display.display();
delay(1500);
}
void showTemperature() {
sensors.requestTemperatures();
float tempC = sensors.getTempCByIndex(0);
display.clearDisplay();
display.setTextColor(SSD1306_WHITE);
display.setTextSize(1);
display.setCursor(0, 0);
display.println("DS18B20 TEMPERATURE");
display.drawLine(0, 12, 127, 12, SSD1306_WHITE);
if (tempC == DEVICE_DISCONNECTED_C) {
display.setCursor(5, 28);
display.println("Sensor Error!");
Serial.println("Temperature sensor disconnected");
} else {
display.setTextSize(2);
display.setCursor(5, 25);
display.print(tempC, 2);
display.print(" C");
Serial.print("Temperature: ");
Serial.print(tempC, 2);
Serial.println(" C");
}
display.setTextSize(1);
display.setCursor(0, 55);
display.print("AI Centre Nandurbar");
display.display();
}
void showArvindPatil() {
display.clearDisplay();
display.setTextColor(SSD1306_WHITE);
display.setTextSize(1);
display.setCursor(20, 5);
display.println("TEMPERATURE SYSTEM");
display.drawLine(0, 17, 127, 17, SSD1306_WHITE);
display.setTextSize(2);
display.setCursor(10, 28);
display.println("ARVIND");
display.setCursor(10, 46);
display.println("PATIL");
display.display();
Serial.println("ARVIND PATIL");
}
void loop() {
// Temperature screen: 12 seconds
unsigned long startTime = millis();
while (millis() - startTime < 12000UL) {
showTemperature();
delay(1000);
}
// Name screen: 5 seconds
showArvindPatil();
delay(5000);
}
Loading
esp32-c3-devkitm-1
esp32-c3-devkitm-1
Loading
ssd1306
ssd1306