This project aims to design and implement a smart parking system that automatically monitors vehicle access, detects parking space occupancy, and provides real-time information about availability through an IoT infrastructure. The system improves traffic management and user experience by offering up-to-date data on parking capacity while reducing congestion and unnecessary vehicle circulation.
The system uses multiple ESP32 microcontrollers equipped with distance sensors to monitor the occupancy status of individual parking spaces. Each ESP32 is responsible for a single parking spot and continuously reports whether the space is occupied or free based on distance measurements. In addition, a separate ESP32 placed at the parking entrance monitors vehicle entry and exit, allowing the system to maintain an accurate count of vehicles currently inside the parking area. All status updates are transmitted via MQTT to the central controller.
To provide a global and coherent view of the parking area, a Raspberry Pi acts as the main controller and MQTT broker. It aggregates data received from all ESP32 nodes, calculates the number of occupied and available spaces, and determines whether parking capacity has been reached. This information is then published to a visualization dashboard using Node-RED, enabling users and administrators to quickly assess parking availability. If the parking area becomes full, the system can trigger alerts or visual indicators to inform drivers and prevent further access.
From a sustainability perspective, the smart parking system helps reduce fuel consumption and emissions by minimizing the time vehicles spend searching for available spaces. This contributes to more efficient urban mobility and supports smart-city principles focused on resource optimization and environmental responsibility.
The system working architecture is the following:
- Detect vehicle entry and exit at the parking access point.
- Monitor the occupancy status of each parking space.
- Update the total number of vehicles inside the parking area.
- Aggregate parking space data in the central controller.
- Calculate available and occupied spaces.
- Publish real-time parking information to the Node-RED dashboard.
