#include <ESP32Servo.h>
#include <LiquidCrystal_I2C.h>
const int PINO_PIR = 15;
const int PINO_LED = 19;
const int pinoMotor = 32;
Servo meuServo;
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Posições do servo
const int PosicaoAberta = 90; // Definindo a posição aberta
const int PosicaoFechada = 0; // Definindo a posição fechada
void setup() {
Serial.begin(9600);
pinMode(PINO_PIR, INPUT);
pinMode(PINO_LED, OUTPUT);
meuServo.attach(pinoMotor);
Serial.println("Sistema de detecção de movimento, ativo");
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
delay(2000);
lcd.clear();
lcd.print("Sistema de Defesa ativo");
}
void loop() {
int estadoSensor = digitalRead(PINO_PIR);
if(estadoSensor == HIGH){
Serial.println("Movimento detectado!");
digitalWrite(PINO_LED, HIGH);
meuServo.write(PosicaoFechada);
lcd.clear();
lcd.print("Movimento detectado");
lcd.setCursor(0, 1);
lcd.print("Porta fechada!");
}
else{
Serial.println("Nenhum movimento");
digitalWrite(PINO_LED, LOW);
meuServo.write(PosicaoAberta);
lcd.clear();
lcd.print("Sem movimento");
lcd.setCursor(0, 1);
lcd.print("Porta aberta");
}
delay(1000);
}