const int ntcPin = 15;    // Pin ADC untuk NTC
#define ledGreenPin 2  // Pin LED hijau
#define ledRedPin 4    // Pin LED merah
#define buzzerPin 5    // Pin buzzer

void setup() {
   Serial.begin(115200);
  pinMode(ledGreenPin, OUTPUT);
  pinMode(ledRedPin, OUTPUT);
  pinMode(buzzerPin, OUTPUT);
}

void loop() {
  
  int ntcValue = analogRead(ntcPin); // Membaca nilai NTC
  // float voltage = (ntcValue / 4095.0) * 3.3; // Konversi nilai ADC ke tegangan
float resistance = 10000.0 * (4095.0 / ntcValue - 1);
  float temperatureC = 1.0 / (1.0 / 298.15 + 1.0 / 3950.0 * log(resistance / 10000.0)) - 273.15;
  // float temperatureC = (voltage - 0.5) * 100.0;

  Serial.print("Suhu (°C): ");
  Serial.println(temperatureC);

  if (temperatureC >= 10 && temperatureC <= 15) {
    digitalWrite(ledGreenPin, HIGH);
    delay(500);
    digitalWrite(ledGreenPin, LOW);
    delay(500);
    noTone(buzzerPin);  // Matikan buzzer
  } else if (temperatureC > 15 && temperatureC <= 20) {
    digitalWrite(ledRedPin, LOW);
    delay(500);
    digitalWrite(ledRedPin, HIGH);
    delay(500);
    noTone(buzzerPin);  // Matikan buzzer
  } else if (temperatureC > 20) {
    digitalWrite(ledRedPin, LOW);
    delay(500);
    digitalWrite(ledRedPin, HIGH);
    delay(500);
    tone(buzzerPin, 500);  // Hidupkan buzzer pada frekuensi 1000 Hz
  } else {
    digitalWrite(ledGreenPin, LOW);
    digitalWrite(ledRedPin, LOW);
    noTone(buzzerPin);  // Matikan buzzer
  }
  // if (temperatureC > 20) {
  //     digitalWrite(ledGreenPin, HIGH);
  //     delay(500);
  //     digitalWrite(ledGreenPin, LOW);
  //     tone(buzzzerPin, 500);
  //     delay(500);
  //   } else if (temperatureC >= 16) {
  //     digitalWrite(ledRedPin, HIGH);
  //     delay(500);
  //     digitalWrite(ledGreenPin, LOW);
  //     noTone(buzzzerPin);
  //     delay(500);
  //   } else if (temperatureC >= 10) {
  //     digitalWrite(ledRedPin, HIGH);
  //     delay(500);
  //     digitalWrite(ledGreenPin, LOW);
  //     noTone(buzzzerPin);
  //     delay(500);
  //   } else {
  //     digitalWrite(ledGreenPin, LOW);
  //     digitalWrite(ledRedPin, LOW);
  //    noTone(buzzerPin);
  //   }

  delay(1000); // Membaca dan mengendalikan suhu setiap detik
}
esp:VIN
esp:GND.2
esp:D13
esp:D12
esp:D14
esp:D27
esp:D26
esp:D25
esp:D33
esp:D32
esp:D35
esp:D34
esp:VN
esp:VP
esp:EN
esp:3V3
esp:GND.1
esp:D15
esp:D2
esp:D4
esp:RX2
esp:TX2
esp:D5
esp:D18
esp:D19
esp:D21
esp:RX0
esp:TX0
esp:D22
esp:D23
ntc1:GND
ntc1:VCC
ntc1:OUT
bz1:1
bz1:2
led1:A
led1:C
led2:A
led2:C
r1:1
r1:2
r2:1
r2:2