Live Parking Status

Smart Parking,
Zero Hassle

Real-time slot availability powered by IoT sensors. Book your spot in seconds.

Total Slots
12
In this lot
Available
7
Ready to book
Occupied
4
Sensor detected
Booked
1
Reserved
Slot Map
ESP32 Connected
Available
Occupied
Booked
← Entrance / Exit →
My Bookings
Booking ID Slot Date & Time Duration Amount Status
#PF-001A-03Today, 2:30 PM2 hrs₹40 Active
#PF-002B-02Yesterday, 10:00 AM3 hrs₹60 Completed
#PF-003A-01Apr 20, 9:00 AM1 hr₹20 Completed
Admin Dashboard
Firebase Connected

Slot Management

Pricing

All Slots

Activity Log

ESP32 + Firebase Setup Guide

Step-by-step: Connect ESP32 to Firebase

1
Create Firebase Project

Go to console.firebase.google.com → New project → Enable Realtime Database → Start in test mode.

2
Get your Database URL

In Firebase console → Realtime Database → Copy your URL like https://xxx.firebaseio.com. You'll use this in ESP32 code.

3
Install Arduino Libraries

In Arduino IDE → Library Manager → Install Firebase ESP32 Client by Mobizt. Also install WiFi and HTTPClient.

4
Wire HC-SR04 Sensor

VCC→3.3V, GND→GND, TRIG→GPIO 5, ECHO→GPIO 18. Each sensor gets a different GPIO pair.

5
Upload the Code

Paste the ESP32 code shown on the right. Fill in your WiFi name, password, and Firebase URL. Upload to board.

6
Connect Website to Firebase

Add the Firebase JS SDK to this website and listen for changes at /slots/. Each slot updates in real time automatically.

ESP32 Arduino Code

#include <WiFi.h>
#include <FirebaseESP32.h>

// Fill these in:
#define WIFI_SSID "YourWiFi"
#define WIFI_PASS "YourPassword"
#define FIREBASE_URL "https://xxx.firebaseio.com"
#define FIREBASE_SECRET "yourSecret"

// Sensor pins (add more as needed)
int trigPins[] = {5, 12, 19};
int echoPins[] = {18, 13, 21};
String slotIDs[] = {"A-01", "A-02", "A-03"};
int numSlots = 3;

FirebaseData fbData;

float getDistance(int trig, int echo) {
  digitalWrite(trig, LOW); delayMicroseconds(2);
  digitalWrite(trig, HIGH); delayMicroseconds(10);
  digitalWrite(trig, LOW);
  long d = pulseIn(echo, HIGH);
  return d * 0.034 / 2;
}

void setup() {
  WiFi.begin(WIFI_SSID, WIFI_PASS);
  while (WiFi.status() != WL_CONNECTED) delay(300);
  Firebase.begin(FIREBASE_URL, FIREBASE_SECRET);
  for (int i=0; i<numSlots; i++) {
    pinMode(trigPins[i], OUTPUT);
    pinMode(echoPins[i], INPUT);
  }
}

void loop() {
  for (int i=0; i<numSlots; i++) {
    float dist = getDistance(trigPins[i], echoPins[i]);
    String status = (dist < 15) ? "occupied" : "available";
    String path = "/slots/" + slotIDs[i] + "/status";
    Firebase.setString(fbData, path, status);
  }
  delay(2000); // Check every 2 seconds
}
Note: If distance < 15cm → car is present (occupied). Adjust the threshold based on your sensor height.