#include <Servo.h>
#define SERVO_PIN 9
#define PIR_SENSOR_PIN 2
Servo gasRegulatorServo; // Declare the servo object
int seconds = 0;
int pirState = LOW; // by default, no motion detected
int redLED = 4;
int greenLED = 3;
int buzzer = 5;
void setup() {
pinMode(PIR_SENSOR_PIN, INPUT);
pinMode(redLED, OUTPUT);
pinMode(greenLED, OUTPUT);
pinMode(buzzer, OUTPUT);
gasRegulatorServo.attach(SERVO_PIN); // Attach the servo to the pin
lcd.backlight();
lcd.display();
lcd.begin(16, 2);
lcd.clear();
Serial.begin(9600);
}
void loop() {
pirState = digitalRead(PIR_SENSOR_PIN);
if (pirState == HIGH) { // check if motion detected
lcd.setCursor(0, 0);
lcd.print("Kondisi Ruangan:");
lcd.setCursor(0, 1);
lcd.print("Orang ada! ");
digitalWrite(redLED, HIGH);
digitalWrite(greenLED, LOW);
tone(buzzer, 750, 1000);
closeGasRegulator();
} else {
lcd.setCursor(0, 0);
lcd.print("Kondisi Ruangan:");
lcd.setCursor(0, 1);
lcd.print("Orang tidak ada ");
digitalWrite(redLED, LOW);
digitalWrite(greenLED, HIGH);
noTone(buzzer);
openGasRegulator();
}
delay(1000); // Jeda Waktu 1 detik u/ pembacaan berikutnya
}
void openGasRegulator() {
gasRegulatorServo.write(90);
}
void closeGasRegulator() {
gasRegulatorServo.write(0);
}