Check out our slide show with Google Slides!


The inspiration behind BreathRide was the desire to address a pressing public safety issue: drunk driving. According to the AAA Foundation for Traffic Safety, 30% of Americans admit to drinking and driving. This staggering statistic underscores the urgent need for innovative solutions that can help reduce incidents of drunk driving and improve public safety. To achieve this goal, we aimed to develop a product that can assist users in determining whether they are fit to drive or should instead opt for a safer alternative, such as calling an Uber. This will require the creation of a tool that can accurately measure a person's alcohol level and provide guidance accordingly.

We are driven by the belief that BreathRide has the potential to save lives and make a meaningful impact on public safety, and we are committed to continuing to refine and develop the product in pursuit of that goal.

What it Does

A physical breathalyzer that is designed to work in tandem with a smartphone app. The user blows into the breathalyzer, which measures their blood alcohol content (BAC), and sends that information to the database. The app then uses the BAC reading to determine whether the user is sober enough to drive or not. If the user is sober, they will receive a message indicating that they are okay to drive. If the user's BAC indicates that they are over the legal limit or impaired, the app will prompt the user with two options: to call an Uber or to send a text message to their emergency contact. This will help ensure that the user does not attempt to drive while intoxicated, potentially reducing the number of drunk driving incidents and fatalities.

How We Built It

To create the physical breathalyzer component of our product, we used an Arduino microcontroller and wrote code in C++ to program it to measure BAC levels. The breathalyzer utilizes a sensor to detect the user's breath and calculate their BAC based on the amount of alcohol present. Python programming language was used in conjunction with the physical breathalyzer component to facilitate testing of the integration between the breathalyzer and the Firebase database. Python scripts were written to receive data from the breathalyzer via serial communication and then transmit the BAC readings to the Firebase database using the Firebase API. In the app, Java programming language was used to read the BAC data from the Firebase database and provide users with a clear simple interface to interpret the results.

Additionally, we utilized Uizard to create a prototype version of the app, allowing us to rapidly design and test different user interfaces before finalizing the product. By utilizing multiple programming languages and hardware/software development, we were able to create a robust and effective system that can help reduce incidents of drunk driving.

Challenges We Ran Into

During the development process, we faced several challenges that required us to be creative and resourceful. One of the obstacles we encountered was the limited availability of physical components necessary to build the hardware component of our product. Specifically, we lacked a Bluetooth module that would have allowed us to transmit BAC readings from the breathalyzer to the Firebase database. However, we were able to overcome this challenge by writing a Python script that simulated the Bluetooth module's functionality. In addition to this, we did in fact use the physical breathalyzer that we built ourselves to generate BAC readings. The physical component was integrated with the software component of the app using Arduino and C++, while the app itself was created using Java and Android Studio.

We also encountered several obstacles that required us to expand our knowledge base and learn new skills. One such obstacle was our lack of experience with Firebase, the cloud-based database we used to store and retrieve BAC readings from the app. None of us had prior experience working with Firebase, which meant we had to learn how to read and write data using the platform. Through trial and error and extensive research, we were able to successfully integrate the Firebase database with our app and breathalyzer hardware, creating a seamless user experience. This experience demonstrated our team's ability to adapt and learn new skills quickly, resulting in a high-quality product that has the potential to save lives by reducing incidents of drunk driving.

Despite the challenges, we remained determined and resourceful, ultimately creating a high-quality product that can potentially save lives by reducing incidents of drunk driving.

Accomplishments We're Proud Of

Despite the challenges we faced, our team was able to achieve several significant accomplishments during the development process. One of our most notable accomplishments was successfully integrating the physical breathalyzer hardware with the software component of the app. This was no easy feat and took a considerable amount of time and effort to accomplish. However, we were ultimately successful in our efforts, creating a seamless user experience that allows users to easily and accurately determine their BAC levels. Another significant accomplishment was successfully configuring the Firebase database to receive and store BAC readings from the breathalyzer. This was another challenging aspect of the project, as none of us had prior experience working with Firebase. However, through extensive research and testing, we were able to successfully configure the database and ensure that it accurately recorded BAC readings. Overall, our team's hard work, determination, and problem-solving skills allowed us to create a high-quality product that has the potential to save lives by reducing incidents of drunk driving.

What We Learned

Developing this product was a tremendous learning experience for our team. We learned a great deal about full-stack development and the challenges associated with integrating hardware with software. We gained experience working with a range of programming languages, including C++, Java, and Python. Additionally, we learned how to work with physical components such as the Arduino microcontroller and the physical breathalyzer, as well as how to integrate them with the software component of the app. Through this process, we gained a deeper understanding of the importance of collaboration and communication when working on complex projects. Overall, this project challenged us to expand our skills and knowledge in a variety of areas, and we are grateful for the opportunity to have worked on such an impactful project.

What's Next for BreathRide ?

BreathRide has the potential to be a game-changing product in the fight against drunk driving. Looking ahead, our team plans to continue developing and refining the product. One area of focus will be improving the accuracy of the physical breathalyzer hardware to ensure that BAC readings are as precise as possible. Additionally, we plan to explore new features and functionality that could enhance the user experience, such as integrating with additional ride-sharing services or expanding the app to include other safety features. There's also a possibility in partnering with organizations and advocacy groups that share our commitment to reducing incidents of drunk driving.

Share this project: