#include <ESP32Servo.h>
Servo servo; // Objeto para controlar el servo
int servoPos = 90; // Posición inicial del servo
int pirPin = 19; // Pin para el sensor PIR
int ledPin = 12; // Pin para un LED (opcional)
bool puertaAbierta = false;
void setup() {
servo.attach(18); // Conecta el servo al pin 18
servo.write(servoPos); // Establece la posición inicial del servo
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(115200);
Serial.setTimeout(100);
Serial.println("ok");
}
void loop() {
if (Serial.available() > 0) {
String command = Serial.readStringUntil('\n');
command.trim();
if (command == "open") {
abrir_puerta2();
} else if (command == "close") {
cerrar_puerta();
}
}
int pirValue = digitalRead(pirPin);
if (pirValue == HIGH) {
Serial.println("SENSOR PIR CONFIRMA PUERTA ABIERTA");
abrir_puerta(); // Abre la puerta cuando el sensor PIR detecta movimiento
digitalWrite(ledPin, HIGH); // Enciende el LED
} else {
digitalWrite(ledPin, LOW);
}
}
void abrir_puerta() {
servo.write(0);
digitalWrite(ledPin, HIGH); // Enciende el LED
delay(2000);
servo.write(servoPos);
}
void abrir_puerta2() {
servo.write(0);
digitalWrite(ledPin, HIGH); // Enciende el LED
delay(2000);
servo.write(servoPos);
Serial.println("PUERTA ABIERTA");
}
void cerrar_puerta() {
servo.write(90);
delay(2000);
servo.write(servoPos);
}