#include "SPI.h"
#include "Adafruit_GFX.h"
#include "Adafruit_ILI9341.h"
#define TFT_DC 2
#define TFT_CS 15
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
#define pirPin 14 //deklarasi pin dari pir yang diberi nama variabel pirPin
int statusPir = LOW; //deklarasi kondisi dari sensor pir apakah high atau low
int gerakanPir; //deklarasi variabel untuk pembacaan pir sensor
#define LED 12
void setup() {
// put your setup code here, to run once:
pinMode(pirPin, INPUT); //set pirPin menjadi pin input
pinMode(LED, OUTPUT);
Serial.begin(9600); //memulai komunikasi serialke serial monitor dengan baud rate 9600
tft.begin();
tft.setCursor(0, 20);
tft.setTextColor(ILI9341_RED);
tft.setTextSize(2);
tft.println("Pendeteksi Gerakan");
tft.setCursor(50, 160);
tft.setTextColor(ILI9341_GREEN);
tft.setTextSize(2); //menampilkan peringatan ke serial monitor bahwa gerakan terdeteksi
}
void loop() {
// put your main code here, to run repeatedly:
gerakanPir = digitalRead(pirPin); //membaca sinyal dari pir ketika ada gerakan
if(gerakanPir==HIGH){ //mengecek kondisi pir, jika mendeteksi gerakan maka skrip di bawah if akan dieksekusi secara berulang-ulang saat pir tetap mendeteksi gerakan
//menyalakan led ketika terdapat gerakan
if(statusPir==LOW){ //mengecek status dari pir apakah low atau high, jika low skrip di bawah if akan dieksekusi sekali ketika pir mendeteksi gerakan di awal
tft.println("Ada Orang!!!");
digitalWrite(LED, HIGH);
statusPir=HIGH; //mengubah status pir dari low ke high
}
}
else { //jika pir tidak mendeteksi gerakan skrip akan dieksekusi
if(statusPir==HIGH){ //mengecek status pir, jika high skrip di dalam if akan dieksekusi
Serial.println("Tidak Ada Orang"); //menampilkan peringatan bahwa gerakan tidak terdeteksi
digitalWrite(LED, LOW);
statusPir=LOW; //mengubah status dari pir dari high ke low
}
}
}