#include <ESP32Servo.h>
Servo myservo;
#define ir_enter 4
#define ir_exit 2
int total_slots = 5;
int occupied_slots = 0;
bool car_inside = false;
void setup() {
Serial.begin(9600);
pinMode(ir_enter, INPUT);
pinMode(ir_exit, INPUT);
myservo.attach(5);
myservo.write(0);
}
void loop() {
if (!car_inside && digitalRead(ir_enter) == HIGH && occupied_slots < total_slots) {
car_inside = true;
occupied_slots++;
Serial.println("Car entered parking.");
myservo.write(90);
delay(1000);
}
if (car_inside && digitalRead(ir_exit) == HIGH && occupied_slots > 0) {
occupied_slots--;
Serial.println("Car exited parking.");
myservo.write(0);
delay(1000);
car_inside = false;
}
if(occupied_slots == total_slots){
Serial.println("PARKING FULL !");
}
Serial.print("Occupied slots: ");
Serial.println(occupied_slots);
Serial.print("Vacant slots: ");
Serial.println(total_slots - occupied_slots);
delay(1000);
}