// DS18B20 Temperature Sensor using ESP32
/*
i. -55 to 125
ii Uses 1 Wire Communication (1 data line (must be pulled HIGH) and 1 gnd wire)
iii. user configurable resolution between 9 to 12-bits
iv. 64-bit Serial Code whihc is unique to each sensor
GND, DQ (must be pulled HIGH), VDD
*/
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#include <DallasTemperature.h>
#include <OneWire.h>
int sensorPin = 5;
int ledMerah = 12;
int ledHijau = 14;
#define Buzzer 13
OneWire oneWire (sensorPin); // creates the OneWire object using a specific pin
DallasTemperature sensor (&oneWire);
void setup() {
// put your setup code here, to run once:
Serial.begin (115200);
lcd.init();
lcd.backlight();
sensor.begin ();
pinMode(ledMerah, OUTPUT); //varibel ledMerah menjadi output
pinMode(ledHijau, OUTPUT);
pinMode(Buzzer, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
sensor.requestTemperatures ();
int temp = sensor.getTempCByIndex (0);
if (temp < 30) {
digitalWrite(ledMerah, HIGH);
digitalWrite(ledHijau, LOW);
digitalWrite(Buzzer, HIGH);
} else {
digitalWrite(ledMerah, LOW);
digitalWrite(ledHijau, HIGH);
digitalWrite(Buzzer, LOW);
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print ("Temp: ");
lcd.print (temp);
lcd.println (" ºC");
delay (2000);
}