Inspiration
With the drinking culture of UMass and the dangers of driving under the influence we thought it would be cool to create a breathalyzer that could integrate with devices over the internet such as phones, smart watches, and computers to keep students and Amherst residents safe.
What it does
BreathalyEZ can calculate the relative BAC of a person by reading the PPM measurement of alcohol contained in the air they exhale. It can then take this calculation and send it over the internet to a website or app.
How we built it
We used a MQ-3 Alcohol sensor, 4.7K Ohm resistor, Arduino Uno, and Raspberry Pi. First we read the PPM using an MQ-3 Alcohol sensor. This sensor has two current loops running through it. When the heating loop is powered the sensor becomes a resistor for the other loop. When oxygen is in the sensor, resistance is high and resistance decreases as alcohol vapors are exposed to the sensor. We can then use the sensor resistance along with a 4.7K ohm resistor to create a voltage divider. We use the Arduino Uno to power the heating loop and also read the divide voltage. We then send this voltage reading through a serial port to the Raspberry Pi. The Raspberry Pi takes this voltage reading and using a formula specified in the data sheet of the MQ-3 sensor to calculate a BAC value which it can then send to a front end.
Testing was done by swishing mouthwash before blowing into sensor mesh. Some mouthwash contains alcohol that can be detected in an individuals breath for 10 to 20 minutes after mouthwash use.
Challenges we ran into
We encountered challenges while constructing the sensor circuit due to limited experience with data sheets. The confusion arose from not realizing that the sensor was non-polarized. Additionally, our initial plan was to use the Arduino solely for prototyping since the Raspberry Pi lacked a built-in ADC. However, we did not progress to the stage of replacing the Arduino with an ADC.
With limited React.js experience, getting the front end website to function reliably, and look decent, was a serious challenge. Connecting the Raspberry Pi to the internet was also quite challenging, as UMass IT security measures make it difficult to connect non-traditional computers.
Accomplishments that we're proud of
It feels awesome to have a working device.
Having little experience with networking and system design we are very pleased with finding a set of technologies that let us accomplish our goals.
What we learned
In the process of figuring out the data sheet for the MQ-3 sheet we inadvertently learnt a lot about the chemistry of how the sensor works. Inside the sensor there is a tube of an aluminum oxide based ceramic coated in tin oxide. When heated, the outer surface of the tube binds to Oxygen, these oxygen molecules attract electrons from the tin and make it highly resistive. In the presence of alcohol, however, less oxygen is able to bind , leading to an increase in free electrons and a subsequent decrease in resistance.
From the software side, a lot was learned about the front end lifecycle, and how front and back communication is done. Flask was used for a simple API on the Raspberry Pi, this was a totally new technology to us, and we learned a lot about its functionality and limitations.
What's next for BreathalyEZ
Using a Raspberry Pi and Arduino to parse and send data is a bit overkill. Future iterations of BreathalyEZ could benefit from using more purpose build micro controllers. Specifically, a simple Arduino style board with an ADC, Wifi chip, and floating point calculator could serve all the functionality we need for our device.
With limited time, we were never able to design or build a housing for our components. A purpose built housing would help get more consistent alcohol ppm readings, channeling air directly into the sensor.
The BreathalyEZ could give far greater and more accurate data on the number of drunk drivers within a given area. With cellular capabilities, BreathalyEZ's could be connected to centralized servers ensuring that every reading is catalogued accurately and honestly.
Log in or sign up for Devpost to join the conversation.