Description as a Tweet:

DriveSave combines safety and efficiency to help you drive the best you can. DriveSafe takes kinetic measurements to detect if you are braking or accelerating too quickly, and logs that information into an app.

Inspiration:

As teenagers, many of us had recently learned to drive. Following the word of one of our team member's parents, changing speed drastically in a short amount of time is an easy mistake to make and can become a habit. This is not only bad for the environment and for the car itself, but it also can create an unsafe environment on the road. Our group combined our passion for environmental awareness and vehicle safety by creating this project.

What it does:

Cars are a huge part of our lives. According to the EPA, a typical passenger vehicle emits about 4.6 metric tons of carbon dioxide per year. One of the most common and easily avoidable ways we create more emission is changing speed in a short period of time. This not only wastes fuel but it also provides unnecessary wear to the car, and can present an unsafe situation for its passengers.
DriveSafe takes kinetic measurements to detect if you are braking or accelerating too quickly, and logs that information into an app. An accelerometer is used to measure the acceleration of the moving car and an Arduino Uno is used to drive the physical circuit and get the data from the accelerometer.
This data is then printed to the Serial monitor and use a python module pyserial to access this Serial data in Python.
The data is then to a flask server where it's processed using an algorithm to detect spikes in the real-time stream of data. We then send this formulated information to a mobile app we built using React Native.

How we built it:

We used an MPU6050 gyroscopic accelerometer to measure the acceleration of the device which is placed in land vehicles like cars. An Arduino Uno was used to drive the physical circuit and get the data from the accelerometer.
To access the data, we print it to the Serial monitor and use a python module pyserial to access this Serial data in Python.
We then send this data to a flask server where it's processed using an algorithm we formulated to detect spikes in the real-time stream of data and tag sections of the data if they represent bad driving. We then send this formulated information to a mobile app we built using React Native.

Technologies we used:

  • Javascript
  • Node.js
  • React
  • SQL
  • Python
  • Flask
  • Arduino
  • Microcontrollers
  • Other Hardware

Challenges we ran into:

We certainly faced several technological roadblocks while making our hack. Firstly, we were recommended to use an ESP8266 board for its in-built wifi capabilities; however, after a full day of tinkering with it, we found out that there were some issues with the production of the device. We had to weigh our options and decided would be easier to start over with an Arduino instead of trying to account for the error. Another consequence was that we had to implement additional connectivity with python to send data to the server. We had to self-learn many concepts and spend the majority of our hours debugging. This was also the case for the use of React Native, as we had difficulty learning the specifics of data communication.

Accomplishments we're proud of:

One of our main breakthroughs was finally getting accurate data from our accelerometer using the Arduino, especially after working for so long with a faulty ESP8266 board. Also, since only one of us was working on the hardware, finally getting the hardware part of our hack working was a big motivator and boost of morale.
Another achievement was the algorithm we designed to properly analyze and detect spikes in the data. Seeing our data come to was an amazing feeling.
Finally, getting the react-native app to compile correctly was also time-consuming and required great attention to detail. Seeing the finished product with all the different views working together made us really proud.

What we've learned:

Through this project, we gained exposure to React Native, as our mobile app is built on it. A lot of our time was spent debugging UI code and learning the integration of the various cool libraries we used.
We also gained hands-on experience with hardware as we implemented various techniques to connect the hardware and the software and transfer the data efficiently.
Finally, designing an algorithm to analyze the data we collected was also really exciting as we had to learn and apply mathematical concepts to read the analysis verify/question the data.

What's next:

Currently, to allow our Python program to communicate data to the server, our Arduino relies on being connected with a laptop. In the future, we would want to upload the python program to a Raspberry Pi which is powered by a micro USB battery (or some other power source) so that the device can be put in the car and is not restricted to being connected to the users' laptop.
We would also want to host the server online. Initially, we were setting up an online server however we faced some versioning incompatibilities (the libraries we had initially built the server with weren't compatible with the server and the sql version on gcp).
We would also want to improve the functionality of our react-native app and also work on making the user-experience smoother.

Built with:

We used an MPU6050 gyroscopic accelerometer to measure the acceleration of the device. An Arduino Uno was used to drive the physical circuit and get the data from the accelerometer.
To access the data, we print it to the Serial monitor and use a python module pyserial to access this Serial data in Python.
We then send this data to a flask server where it's processed using an algorithm we formulated to detect spikes in the real-time stream of data and tag sections of the data if they represent bad driving. We then send this formulated information to a mobile app we built using React Native.

Prizes we're going for:

  • Best Software Hack
  • Best Venture Pitch
  • Best Hardware Hack
  • Best Beginner Software Hack
  • Best Healthcare Hack
  • Best Beginner Hardware
  • Best Mobile Hack
  • Best Use of Google Cloud
  • Best Domain Name from Domain.com
  • Best Hardware Hack

Prizes Won

Best Venture Pitch

Team Members

Vivien Jamba
Aryan Dang
Aadam Lokhandwala

Table Number

Table 27