#include <LiquidCrystal.h>

// Inisialisasi pin untuk sensor suhu dan LCD
const int tempPin = A0;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // Setup awal untuk LCD
  lcd.begin(16, 2);
  lcd.clear();
  lcd.print("  TERMOMETER ");
  delay(2000);
}

void loop() {
  // Membaca nilai suhu dari sensor
  int tempValue = analogRead(tempPin);
  float tempC = (tempValue / 1023.0) * 500; // Konversi nilai analog menjadi suhu dalam Celsius

  // Menampilkan nilai suhu pada layar LCD
  lcd.clear();
  lcd.print("Suhu: ");
  lcd.print(tempC);
  lcd.write(0xDF); // Menampilkan simbol derajat Celsius pada LCD

  // Membuat switch case untuk menampilkan kondisi cuaca sesuai dengan suhu
  switch ((int)tempC) {
    case -40 ... -10:
      lcd.setCursor(0, 1);
      lcd.print("Sangat Dingin");
      break;
    case 1 ... 10:
      lcd.setCursor(0, 1);
      lcd.print("Dingin");
      break;
    case 11 ... 20:
      lcd.setCursor(0, 1);
      lcd.print("Normal");
      break;
    case 21 ... 30:
      lcd.setCursor(0, 1);
      lcd.print("Panas");
      break;
    default:
      lcd.setCursor(0, 1);
      lcd.print("Sangat Panas");
      break;
  }

  // Tunggu selama beberapa detik sebelum membaca ulang nilai suhu
  delay(1000);
}