#include <OneWire.h> //Memanggil library OneWire yang diperlukan sebagai dependensi library Dallas Temperature
#include <DallasTemperature.h> // Memanggil library Dallas Temperature
#define ONE_WIRE_BUS A2 // Menempatkan PIN hasil pembacaan sensor DS18B20 pada PIN A0.
#define led A1 // deklarasi pin led pada PIN A1
OneWire oneWire(ONE_WIRE_BUS); //Membuat variabel oneWire berdasarkan PIN yang telah didefinisikan
DallasTemperature sensor(&oneWire); //Membuat variabel untuk menyimpan hasil pengukuran
float suhuDS18B20; //deklarasi variable suhu DS18B20 dengan jenis data float
void setup(void)
{
Serial.begin(9600); //Menginisiasikan setup kecepatan komunikasi
sensor.begin(); //Menginisiasikan sensor One-Wire DS18B20
pinMode(led, OUTPUT); //Menginisialisasi LED sebagai Output
}
void loop(void)
{
sensor.setResolution(9); // Sebelum melakukan pengukuran, atur resolusinya
//sensor.setResolution(10);
//sensor.setResolution(11);
//sensor.setResolution(12);
sensor.requestTemperatures(); // Perintah konversi suhu
suhuDS18B20 = sensor.getTempCByIndex(0); //Membaca data suhu dari sensor #0 dan mengkonversikannya ke nilai Celsius
// suhuDS18B20 = (suhuDS18B20*9/5) + 32;
// suhuDS18B20 = suhuDS18B20 = 273.15;
Serial.println(suhuDS18B20, 1); //Presisi 1 digit (satu angka dibelakang koma)
//Serial.println(suhuDS18B20, 2); //Presisi 2 digit (dua angka dibelakang koma)
//Serial.println(suhuDS18B20, 3); //Presisi 3 digit (tiga angka dibelakang koma)
//Serial.println(suhuDS18B20, 4); //Presisi 4 digit (empat angka dibelakang koma)
Serial.print("Suhu: ");
//lcd.setCursor(6, 0);
//lcd.print((char)223);
Serial.println("C");
delay(1000); //delay 1 detik (1000 miliseconds)
if (suhuDS18B20 > 32.0) { //instruksi untuk menyaakan LED saat suhu lebih dari 32 derajat
digitalWrite(led, HIGH);
}
else if (suhuDS18B20 < 30.0){ //instruksi untuk mematikan LED saat suhu kurang dari 32 derajat
digitalWrite(led, LOW);
}