//Belajar LCD menampilkan data Sensor PIR dengan ESP32
#include <LiquidCrystal_I2C.h>
int KolomLCD = 16;
int BarisLCD = 2;
// set LCD address, number of columns and rows
// if you don't know your display address, run an I2C scanner sketch
LiquidCrystal_I2C lcd(0x27, KolomLCD, BarisLCD);
const int PIRSensor = 14;
const int LED1 = 15;
int Pirstate = 0;
int val = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
// Memulai LCD
lcd.init();
// Menyalakan LCD backlight
lcd.backlight();
pinMode(PIRSensor, INPUT);
pinMode(LED1, OUTPUT);
}
void loop() {
val = digitalRead(PIRSensor); // Baca nilai Input
if (val == HIGH) { // Cek apakah nilai input HIGH
digitalWrite(LED1, HIGH); // Lampu Menyala
if (Pirstate == LOW) {
lcd.setCursor(0, 0);
// Menampilkan Text
lcd.print("Ada Gerakan!!");
// we have just turned on
Serial.println("Motion detected!");
// We only want to print on the output change, not state
Pirstate = HIGH;
}
}
else
{
digitalWrite(LED1, LOW); // Lampu Mati
if (Pirstate == HIGH){
lcd.setCursor(0, 0);
// Menampilkan Text
lcd.print("Tidak ada Gerakan");
// we have just turned of
Serial.println("Motion ended!");
// We only want to print on the output change, not state
Pirstate = LOW;
lcd.clear();
}
}
}
esp:VIN
esp:GND.2
esp:D13
esp:D12
esp:D14
esp:D27
esp:D26
esp:D25
esp:D33
esp:D32
esp:D35
esp:D34
esp:VN
esp:VP
esp:EN
esp:3V3
esp:GND.1
esp:D15
esp:D2
esp:D4
esp:RX2
esp:TX2
esp:D5
esp:D18
esp:D19
esp:D21
esp:RX0
esp:TX0
esp:D22
esp:D23
pir1:VCC
pir1:OUT
pir1:GND
led1:A
led1:C
r1:1
r1:2
lcd1:GND
lcd1:VCC
lcd1:SDA
lcd1:SCL