/*
* Interface sensor NTC
*/
//============================================================================================
//shortcut kode
#define DEBUG
#ifdef DEBUG
#define SERIAL_BEGIN Serial.begin(115200)
#define debug(p) Serial.print(p)
#define debugln(p) Serial.println(p)
#else
#define SERIAL_BEGIN
#define debug(p)
#define debugln(p)
#endif
//============================================================================================
//============================================================================================
//Pin yang dipakai di ESP32
#define NTC_ANALOG_PIN 34 //ke pin input sensor ntc
//============================================================================================
//============================================================================================
//Konfigurasi sensor NTC
const float BETA = 3950;
float suhu = 0.0;
//============================================================================================
//1. Implementasi interface sensor NTC
//Fungsi untuk membaca nilai sensor NTC
float bacaSensorNTC(){
//Baca nilai sensor menggunakan input analog
int analogValue = analogRead(NTC_ANALOG_PIN);
//Kalibrasi untuk mengkonversi nilai analog menjadi nilai suhu celsius
float celsius = 1 / (log(1 / (4095. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
return celsius;
}
//============================================================================================
void setup() {
//Inisalisasi komunikasi serial
SERIAL_BEGIN;
}
void loop() {
//Klik sensor NTC, geser slide untuk mengatur suhu
//Panggil fungsi 'bacaSensorNTC()' untuk membaca Suhu NTC
suhu = bacaSensorNTC();
//Tampilkan ke Serial monitor
debugln("[NTC] Temperature: " + String(suhu) + " ℃");
delay(10); // this speeds up the simulation
}