Gathered the basic hardware for the project that is MPU-6050 (High Precision Accelerometer and Gyroscope), Node MCU (A Micro-controller with integrated Wi-Fi Module, ESP8266), GPS Module, GPS Reciever, Arduino Mega, Arduino UNO (For Backup Purpose), Jumper Wires.
Basic Layout of the code is prepared which integrates both GPS and Accelerometer. The code is for analyzing the road conditions, and returns the value of Latitude and Longitude of road wherever there are potholes with the severity of the given Obstacle (intensity of the height/depth of speed breaker/pothole respectively. Wherever we are finding a pothole or a speed breaker we're sending the readings of GPS for location and Intensity using acelerometer to Firebase (A dynamic database by google) using ESP8266 of Node MCU.
Accelerometer is a device which measures Acceleration i.e. the forces experienced by the object in all three axis. So we have used its axis to determine the Potholes, Speed Breakers, Flyovers, and Steep Roads etc. As per our observation there is a change of acceleration whenever we encounter such an obstacle. The acceleration of Z-AXIS (which is initially the acceleration due to gravity) changes whenever there is a bump/pothole on the road. Whenever there is a slope the axis itself changes so now the basic effect of gravity comes about the two Axis that is the X-AXIS and Z-AXIS which is quite clearly observed by a steep change in values and Hence we can recognize wherever there is a slope or not. Y-Axis is not being used by us in the project because it points in the direction perpendicular to the acceleration of the vehicle and acceleration due to gravity.
The Mobile application is made on Android Studio. We've linked the app with Google Maps API and Firebase. As soon as the application starts first it iterates over the existing data on firebase and makes a heat map which it overlays using google maps API. Then it continuously checks for any add-on in the Firebase logs, as soon as their is any add on, the app itself modifies the Map to the current version. In this way we've created a Real-time updating Map.
The Live Testing of the code was done on two occasions. First to understand the readings of Accelerometer and Gyroscope. Second Testing was done to recognize whether the code written is correct as per the Road Conditions. The observations gathered by us for all the three axis are plotted on a Serial Monitor whose Screenshots can be seen in the Statistics Section. The testing was done for both harsh (In Okhla Phase-3 and Amar Colony) and smooth (Greater Kailash-1) road Conditions. Also we were able to identify the Flyovers (Nehru Place Flyover and Modi Mill Flyover) and Slopes (In Our Campus near Hostel Area). The testing done was quite robust to check the implementation and correctness of the functions which proved to be quite successful.
Live testing was previously done on April 14th, 2018 which had many glitches and bugs. The basic problems are faced in GPS Connectivity and Internet Connectivity which were rectified in the testing done on April 16th. Improvement in accuracy of GPS and Accelerometer was quite prominently visible. Also, now our system is quite efficient the Micro-Controller is successfully pushing the data to Firebase and Mobile application is successfully handling and plotting data in real time on Maps.