Drivers begin their navigation through Chargeo. Battery status < 30% will prompt the user to add a charging stop to their current route
A push notification informs the driver of when a charging station has been found when their car is low on battery.
Early sketches of what would ultimately become Chargeo!
One of the most common issues among drivers of electric cars is not knowing where the nearest charging stations are without having to take their eyes off the road to search for themselves. In rural areas, finding the nearest charging station can be very difficult, and may put off potential electric vehicle (EV) owners. In order to solve this problem, we decided to create a utility to help users find and map the closest EV charging station dynamically, based on the charge of the EV and projected route. If we can solve this commonplace issue among prospective buyers, we can encourage more people to buy EVs, thereby reducing global emissions and improving the carbon footprint on the environment.
What it does
Chargeo automatically generates routes that include charging stations for when your car is projected to be low on battery based on the current charge.
How we built it
We utilized SmartCar to gain insight into the car's model info, battery, and location services. We then designed our own API that leveraged the SmartCar API as well as another external API that finds the nearest EV charging station based on location. The Chargeo API exports a google maps route based on the charge level and location of the vehicle: when the vehicle's charge falls below a certain threshold, we update the google maps route by adding a waypoint to the nearest gas station. This google maps route is then pushed to notifications, where Chargeo users can click and add the EV charging station waypoint without any work on their part.
Challenges we ran into
SmartCar testing proved to be more difficult than we expected, as the data it generates is completely random. Fortunately, due to the random data, we are confident that our Chargeo API is dynamic and fully functional. For the purposes of the demo, we managed to reduce the range of data to more accurately reflect the demoed location. Having the application refresh in the background also proved to be more difficult than we initially thought, and we had to browse to make sure our application kept refreshing the battery level while also not draining too much battery.
Accomplishments that we're proud of
When designing our application, we struggled to find a happy medium between functionality and simplicity. After much deliberation, we took a step back and took into account the user’s interactions/experience and decided to incorporate Google Maps API to be used concurrently with our application to provide a seamless interaction of our app and Google Maps. The user is able to get the information they need without the holdback of having to search for themselves.
What we learned
Our biggest takeaway from this project is learning how to do full-stack development using external APIs and background refreshing. Reading the API documentation and becoming more familiar with HTTP requests was super challenging and allowed us to practice using external libraries. On the other hand, learning how to have Apps refresh in the background is a valuable skill that many apps require for modern functionality, especially in the IoT field.
What's next for Chargeo
We plan to add functionality to tell how long it will take to Charge at a station, depending on the type of charger present, as well as the cost of charging. We have both of these delivered in a JSON, and only have to work on their presentation on the frontend. We also plan to work on the frontend some more, as we are currently unsure of whether to allow more user customizability or focus more on simplicity.