#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
#define BUZZER_PIN 17
#define DS18B20_PIN 4
#define PIR_PIN 14
#define SERVO_PIN 16
OneWire oneWire(DS18B20_PIN);
DallasTemperature sensors(&oneWire);
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo servoMotor;
void setup() {
Serial.begin(115200);
pinMode(BUZZER_PIN, OUTPUT);
pinMode(PIR_PIN, INPUT);
sensors.begin();
lcd.begin();
lcd.backlight();
servoMotor.attach(SERVO_PIN);
servoMotor.write(0);
lcd.setCursor(0, 0);
lcd.print("Suhu: ");
lcd.setCursor(0, 1);
lcd.print("Status: Ready");
}
void loop() {
sensors.requestTemperatures();
float temperatureC = sensors.getTempCByIndex(0);
lcd.setCursor(6, 0);
lcd.print(temperatureC);
lcd.print((char)223);
lcd.print("C ");
int pirStatus = digitalRead(PIR_PIN);
if (pirStatus == HIGH) {
lcd.setCursor(8, 1);
lcd.print("Motion");
digitalWrite(BUZZER_PIN, HIGH);
servoMotor.write(90);
delay(1000);
digitalWrite(BUZZER_PIN, LOW);
servoMotor.write(0);
} else {
lcd.setCursor(8, 1);
lcd.print("No ");
digitalWrite(BUZZER_PIN, LOW);
}
delay(500);
}