//TUGAS PRAKTIKUM Mikrokontroller dan IoT
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
const float ADC_VREF_mV = 3300.0; // in millivolt
const float ADC_RESOLUTION = 4096.0;
const int sensorLM35 = 4; //pin sensor suhu lm35
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
Serial.begin(115200);
Serial.println("HALO HARDIANTI");
if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 OLED initialization failed"));
// Masukkan peringatan di sini dan hentikan eksekusi jika OLED gagal
while (1); // Membuat ESP32 tetap di loop jika OLED gagal
}
}
void loop() {
//program konversi ADC ke suhu
int adcVal = analogRead(sensorLM35);
float adcValVoltage = adcVal * (ADC_VREF_mV / ADC_RESOLUTION);
float tempC = adcValVoltage / 10;
float x = (53 + 31 + 3 + 3) * 0.01;
float temperature = tempC * x;
Serial.print("Temperature: ");
Serial.print(temperature);// print suhu dalam °C
Serial.println("°C");
oled.clearDisplay(); // clear display
oled.setTextSize(2); // ukuran font
oled.setTextColor(WHITE); // warna font
oled.setCursor(14, 28);
oled.print(temperature);
oled.print((char)247);
oled.print("C");
oled.display();
}