Skip to main content

This is a prototype vision of how a future government service could work. It's not a real service yet, but we're exploring what it could look like. Your feedback will help shape the real service.

Step 2: View Real-Time Occupancy Data - Smart Car Park Walkthrough

Explore the CloudWatch dashboard widgets showing live car park occupancy metrics

Walkthrough progress

Step 2 of 4 • 2 minutes

Step 2 2 minutes

View Real-Time Occupancy Data

Explore the dashboard widgets to understand current car park occupancy across all zones.

Find your Smart Car Park dashboard URL in CloudFormation Outputs
Live dashboard showing parking space availability across all sites

Expected outcome

  • You can see current occupancy percentage
  • Zone breakdown shows Ground, Level 1, Level 2 data
  • Available spaces count is visible
  • Historical trends show 24-hour patterns

Understanding the dashboard widgets

Your CloudWatch dashboard contains several widgets, each showing different aspects of car park occupancy. Let's explore what each widget tells you:

1. Available Spaces Right Now

Widget type: Number (large display)

What it shows: The current count of available (empty) parking spaces across the entire car park

What to look for: This number updates in real-time as sensors detect vehicles entering and leaving. In our simulation, expect to see 5-25 available spaces depending on time of day patterns.

Example: If you see "18 available", that means 18 out of 50 spaces are currently empty, so occupancy is 64% (32 spaces occupied).

2. Total Occupancy Over Time

Widget type: Line graph

What it shows: Occupancy percentage (0-100%) over the last 24 hours

What to look for: Peak hours (85% occupancy around 8-10am, 12-2pm, 5-7pm), off-peak periods (60% occupancy), and overnight (20% occupancy). The line should show clear daily patterns.

Insight: Consistent peak patterns help predict future demand. If 8-10am is always busy, you can guide overflow traffic to nearby car parks during those hours.

3. Occupancy by Zone

Widget type: Stacked area chart

What it shows: Number of occupied spaces in each zone (Ground Floor, Level 1, Level 2) stacked on top of each other

What to look for: Ground Floor typically fills first (90% occupancy at peak), followed by Level 1 (87%), then Level 2 (73%). This shows user preference for lower floors and accessible spaces.

Operational insight: Knowing which zones fill first helps optimize signage ("Level 2 has spaces") and pricing (charge more for Ground Floor during peak hours).

4. Average Parking Duration

Widget type: Number (minutes)

What it shows: How long, on average, vehicles stay parked

What to look for: In our simulation, expect ~90-180 minutes (1.5 to 3 hours). Shorter durations indicate quick turnover (good for revenue), longer durations suggest all-day parkers.

Revenue optimization: If average duration is too long, consider time limits or tiered pricing (first 2 hours £3, then £5/hour) to encourage turnover.

5. Sensor Status Table

Widget type: Table

What it shows: Last reading timestamp and battery level for each of the 50 sensors

What to look for: All sensors should show recent timestamps (within last 5 minutes). Battery levels should be above 20%. Any sensor showing stale data (>30 min old) may need maintenance.

Maintenance alert: CloudWatch alarms automatically notify facilities team when sensors go offline or batteries run low.

Watch for real-time updates

The dashboard is set to auto-refresh every 10 seconds. Watch the widgets closely:

  • Available spaces number should change - As the IoT simulator publishes new sensor readings, you'll see the count update
  • Line graphs extend to the right - New data points are added to the trailing edge of the time series
  • Zone chart colors shift - Stacked area heights adjust as occupancy changes per zone
  • No page refresh needed - CloudWatch handles updates automatically in the background

Behind the scenes: Every time a sensor detects a vehicle entering or leaving, it publishes an MQTT message to AWS IoT Core. Lambda processes the message and updates CloudWatch metrics within 2-5 seconds. Your dashboard shows these updates 10 seconds later at most.

Something went wrong? Troubleshooting help

Dashboard shows "No data available"

Possible solutions:

  • Wait 30-60 seconds - The IoT simulator may still be initializing. Click the refresh button (circular arrow icon, top-right) after waiting.
  • Check DynamoDB table - Open the DynamoDB console, find the table named SmartCarPark-SensorReadings, and verify it has ~1000 items.
  • Verify Lambda is running - Open the Lambda console, find IoTSimulator, and check Recent invocations shows activity.

Data is stale (not updating)

Possible solutions:

  • Check auto-refresh is enabled - Look for "Auto refresh" toggle in top-right, ensure it's ON and set to 10 seconds
  • Verify IoT simulator is still running - The simulator may have stopped. Go to Lambda console, find IoTSimulator, click "Test" to manually restart it.
  • Check CloudWatch Logs - Open Logs for ProcessSensorData Lambda to see if it's receiving and processing sensor messages

Numbers don't match expected patterns

Possible causes:

  • Simulation randomness - The IoT simulator uses random occupancy changes within typical patterns. Your data may vary from the examples shown.
  • Time zone differences - Peak hours are based on simulated data timestamps, not your local time. Check the graph time axis to understand the pattern.