const int temperaturePin = A0; // Pin untuk sensor temperatur
const int buttonPin = 2; // Pin untuk push button
const int distancePin = A1; // Pin untuk sensor jarak
const int alarmPin = 13; // Pin untuk alarm/LED
int temperatureThreshold = 28; // Ambang batas temperatur dalam derajat Celsius
int distanceThreshold = 3049; // Ambang batas jarak dalam milimeter
bool alarmOn = false; // Status alarm
void setup() {
pinMode(temperaturePin, INPUT);
pinMode(buttonPin, INPUT_PULLUP);
pinMode(distancePin, INPUT);
pinMode(alarmPin, OUTPUT);
}
void loop() {
int temperature = readTemperature();
int distance = readDistance();
// Cek apakah temperatur dan jarak melebihi ambang batas
if (temperature >= temperatureThreshold && distance >= distanceThreshold) {
activateAlarm();
}
// Cek apakah push button ditekan untuk mematikan alarm
if (digitalRead(buttonPin) == LOW) {
alarmOn = false;
digitalWrite(alarmPin, LOW);
}
}
int readTemperature() {
// Baca nilai analog dari sensor temperatur dan konversikan ke derajat Celsius
int sensorValue = analogRead(temperaturePin);
float voltage = sensorValue * (5.0 / 1023.0);
float temperatureC = (voltage - 0.5) * 100;
return temperatureC;
}
int readDistance() {
// Baca nilai analog dari sensor jarak dan konversikan ke milimeter
int sensorValue = analogRead(distancePin);
float distanceMM = sensorValue * (5000.0 / 1023.0);
return distanceMM;
}
void activateAlarm() {
if (!alarmOn) {
alarmOn = true;
while (alarmOn) {
digitalWrite(alarmPin, HIGH);
delay(1000);
digitalWrite(alarmPin, LOW);
delay(1000);
}
}
}