One of the major problems in the city of Mumbai during the monsoon, is the large number of pedestrian, vehicular and public transport traffic. These traffic conditions are generally worse when the amount of rainfall received is very high. A common occurrence is that citizens generally like to take their cars back home no matter what the road and water situation without bothering of condition of the car or more importantly their safety. One of the prime reasons is lack of real time traffic and advance information on road conditions and traffic diversions etc.
Thus to overcome this, I propose a solution that crowdsources information from vehicles and non-driving citizenry in the city.
The main user of the application is the general public and the civic bodies in the city. The data generated from vehicles and crowdsourcing, combining with data from various sensors that is at the disposable of the civic authorities enables them to get a micro view of the effect of monsoon on the movement of the citizens on the streets of Mumbai.
The general public has access to crowdsourced information about water levels, safe parking spots, car breakdowns along their intended route of travel. In the current situation the application cannot be used while driving, as the safe driving mode has not been tested thoroughly.
The application not only consumes public data but also makes crowdsourced data from vehicles and general public accessible to the public and civic authorities.
Data From Vehicle
This data is read from the vehicle interfaces and uploaded to the backend to get real time updates on the condition of driving through the rain. --- Water Level(Simulated, but demoed through use of BMP Bosch 180 sensor with an Arduino. In car set up attach it to the base of the car at the front. ) --- Vehicle Speed(OpenXC) --- Wiper Speed(Simulated -- Assuming a Smart Wiper connected) --- Parked Cars(OpenXC) --- Car Breakdowns(Interpreting through OpenXC data) --- Latitude and Longitude(OpenXC data) --- Water Level(Simulated -- Connecting a Barometric Pressure Sensor to the base of the car)
Crowdsourced Data From Pedestrians
The pedestrians can use the Android app to answer to these questions. --- Approximate Water Level --- Any car breakdowns nearby --- Safe Parking Spots nearby
In a live system, it is possible to monitor (Not implemented) ---intake_air_temperature ---intake_manifold_pressure ---mass_airflow
These can then be used in conjunction with water level values to deduct chances the car taking in water and possibly stalling.
There 3 main UIs of the android app --- City View - This is a map interface that displays all the generated data to make it easy to read and understand the situation across the city. It displays information related to parking, water level, car breakdowns, vehicle speed etc. It gives drivers, pedestrians and city officials, on the ground view of the effect of the monsoon on the traffic and general safety. This information is overlayed with information from Mumbai such as chances of flooding in different areas, traffic diversions etc.
---Vehicle Interface to Android - This UI displays the information gathered from the Vehicle. This part has been tested using OpenXC-Enabler application from the open-xc library on github. The data is conveyed to the Backend every 2 minutes. All the connection between the interface and the android device is assumed to have taken place when the vehicle is stationary. There is no functionality to use when the vehicle is in motion.
--- Crowdsourcing - This UI asks users, not driving to provide information in their neighbourhood, such as safe parking, car breakdowns, water levels. This information is relayed to the backend, to improve the quality of the real-time data on the Monsoon.
App Engine Backend(Google App Engine)
The backend provides interfaces to write data from vehicles and users. This data can be then queried to find relevant information by area or to get general information from cars or crowdsourced information. Car owner can access their own vehicle data as well. It stores information in index, that can be queried for filtering information by location, date etc.