Inspiration
Road conditions affect millions of drivers every day, yet many hazards like potholes and damaged pavement are only repaired after accidents, complaints, or vehicle damage occur. We wanted to explore whether a low-cost embedded system could automatically detect road conditions in real time and help contribute to smarter transportation infrastructure.
Our inspiration came from a simple question:
What if every vehicle could help monitor road conditions while driving?
That idea led us to develop an Arduino-powered ultrasonic sensing system mounted underneath a vehicle capable of identifying potholes, flat road surfaces, and speed bumps based on changes in ground distance measurements.
The project combines embedded systems, sensor data analysis, and real-world infrastructure monitoring into a practical civic technology solution.
⸻
What the Project Does
Our project uses an ultrasonic sensor mounted on the underside of a vehicle to continuously measure the distance between the car and the road surface.
As the vehicle moves:
- Flat roads produce relatively stable distance readings
- Potholes create sudden increases in measured distance
- Speed bumps create sudden decreases in measured distance
The Arduino processes these measurements in real time and classifies the type of road condition detected.
The system workflow can be represented as:
Ultrasonic Sensor, Arduino Processing, and Hazard Classification
By monitoring rapid changes in elevation beneath the vehicle, the system can distinguish between different roadway features without requiring expensive equipment.
⸻
How We Built It
Hardware Components
We built the prototype using:
- Arduino microcontroller
- Ultrasonic distance sensor
- Vehicle mounting system
- Power supply module
- Jumper wires and breadboard/prototyping components
The ultrasonic sensor continuously emits sound waves toward the road surface and measures the return time of the echo to calculate distance.
The distance equation used is:
d = v times t /2
Where:
- d = distance to the ground
- v = speed of sound
- t = echo return time
The division by 2 accounts for the sound wave traveling to the ground and back.
⸻
Software and Detection Logic
The Arduino program constantly reads distance values from the ultrasonic sensor and compares them against a baseline road height.
Detection Logic
- Stable readings → Flat ground
- Sudden positive spike in distance → Pothole
- Sudden negative spike in distance → Speed bump
We implemented threshold-based detection to reduce noise and prevent false readings caused by vibrations or uneven pavement.
The system also filters sensor fluctuations by averaging nearby readings before classification.
⸻
Challenges We Faced
One of our biggest challenges was dealing with inaccurate sensor readings caused by:
- Vehicle vibrations
- Road texture variations
- Sensor angle alignment
- Environmental interference
At higher speeds, measurements became less stable, requiring us to optimize the timing and filtering logic inside the Arduino code.
Another challenge was finding reliable thresholds that could distinguish small potholes from normal road imperfections without triggering false detections.
Mounting the sensor securely underneath the vehicle while protecting it from debris and vibrations was also an important engineering challenge.
⸻
What We Learned
This project taught us valuable lessons about:
- Embedded systems programming
- Real-time sensor processing
- Signal filtering techniques
- Hardware integration
- Rapid prototyping with Arduino
We also learned how important calibration is in real-world engineering systems. Small changes in sensor positioning or road conditions could significantly impact accuracy.
Most importantly, we learned how relatively simple hardware can be used to solve practical infrastructure problems when combined with thoughtful software design.
⸻
Future Improvements
In the future, we would like to improve the system by:
- Adding GPS logging for hazard mapping
- Uploading road condition data to a cloud database
- Using machine learning for more accurate classification
- Adding multiple sensors for wider road coverage
- Integrating wireless communication for live reporting
- Building a mobile app dashboard for visualization
We also want to explore integrating the system into larger smart-city infrastructure networks where multiple vehicles could collectively contribute road condition data.
⸻
Final Thoughts
This project showed us that smart infrastructure monitoring does not always require expensive or complex systems. Using an Arduino and ultrasonic sensor, we created a prototype capable of detecting potholes, flat roads, and speed bumps in real time.
Log in or sign up for Devpost to join the conversation.