Introduction: Arduino Breathalyzer

What is a breathalyzer you may ask? It is a device for estimating blood alcohol content (BAC) from a breath sample.In simple terms it is a device to test weather a person is drunk or not. As the title suggests it runs on the arduino.Our breathalyzer uses the MQ-3 alcohol sensor from sparkfun.It is a simple and fun to do project.



This instructable explains how to create your own breathalyzer , making a shield for the arduino , putting the breathalyzer in a box, and making some changes to your breathalyzer.



This Breathalyzer is not meant to be used as a means of breathalyzing. The MQ-3 is not accurate enough to register exact BAC and is sensitive to temperature and humidity.Never drink and drive and if you do call me =D .









Step 1: Parts & Tools

Parts:

~ Arduino Uno - Sparkfun.com

~ MQ-3 Alcohol Sensor - Sparkfun.com

~ 100k Ohm Potentiometer - Sparkfun.com

~ 330 Ohm Resistor - Sparkfun.com

~ 5 x Green LED's - Sparkfun.com

~ 3 x Yellow LED's - Sparkfun.conm

~ 2 x Red LED's - Sparkfun.com

~ 7805 Voltage Regulator - Local Electronics Store 

~ 1000 uf Capacitor - Local Electronics Store

~ 2 x 9v Batteries - Local Electronics Store



Tools:

~ Soldering Iron - Sparkfun.com

~ Solder Wire - Sparkfun.com

~ Jumper Wires -Sparkfun.com

~ Protoboard - Sparkfun.com

~ Project Box - Local Electronics Store

~ Inhaler Tube - I Found It In My House 

Step 2: The Chemistry

When the user exhales into a breath analyzer, any ethanol present in their breath is oxidized to acetic acid at the anode:



CH3CH2OH(g) + H2O(l) → CH3CO2H(l) + 4H+(aq) + 4e-



At the cathode, atmospheric oxygen is reduced:



O2(g) + 4H+(aq) + 4e- → 2H2O(l)



The overall reaction is the oxidation of ethanol to acetic acid and water.



CH3CH2OH(l) + O2(g) → CH3COOH(l) + H2O(l)



The electrical current produced by this reaction is measured by a microprocessor, and displayed as an approximation of overall blood alcohol content (BAC) by the Alcosensor.

Step 3: The Code

Heres the code for our breathalyzer:


const int analogPin = 0;    // the pin that the potentiometer is attached to
const int ledCount = 10;    // the number of LEDs in the bar graph

int ledPins[] = {
  10,9,8,7,6,5,4,3,2,1 // Here we have the number of LEDs to use in the BarGraph
  };  


void setup() {

  for (int thisLed = 0; thisLed < ledCount; thisLed++) {
    pinMode(ledPins[thisLed], OUTPUT);
  }}

void loop() {
  //This is the code to light up LED's
  int sensorReading = analogRead(analogPin);

  int ledLevel = map(sensorReading, 500, 1023, 0, ledCount);


  for (int thisLed = 0; thisLed < ledCount; thisLed++) {

    if (thisLed < ledLevel) {
      digitalWrite(ledPins[thisLed], HIGH);
    }

    else {
      digitalWrite(ledPins[thisLed], LOW);
    }  }}


The code was taken from www.danielandarde.net

Sorry for not mentioning it before

Step 4: Creating a 5V Supply

We will use a 7805 5v regulator to take in 9v from the battery and give out steady 5v to MQ-3 alcohol sensor.We are doing this so that the MQ-3 receives enough power(<750ma).If we connect the MQ-3 directly to the arduino , there is a danger of frying it.I used a single 1000 uf capacitor with the 7805 regulator to give out 5v.I created the 5v supply on a seperate circuit board you can use the same circuit board on which we are going to solder the LEDs.I also connected a switch so that the breathalyzer can be switched on or off.See the last image for the circuit diagram.In the circuit the capacitor is between the middle pin and the right pin (See the picture tag)

Step 5: Build the Circuit

The Circuit is pretty straight forward.To connect the sensor, you have to connect one of the H pin to +5V Supply (use a external power supply) and the other one to Ground.Pin B (any of them) you connect to Ground.And pin A to arduino analog pin0 via 100k ohm potentiometer.To make the LEDs work, I have connected them in sequence using the Digital Pins 2 till 11 (ten LEDs total). Remember to use a resistor between 220Ω and 470Ω for each LED.I soldered the LEDs on a small protoboard and connected one wire to each LED which connected the LEDs to the arduino.To Power the arduino we are going to use a 9v battery and I also soldered a switch so that the breathalyzer can be switched on or off.I used a common switch for the 5v power supply and the arduino power supply.See the Last Image For The Circuit Diagram.

Step 6: Putting It All Togather

Now that we have built all our circuits and tested them lets put them in a nice case.I used a case from a torch.I drilled 10 holes in the box.I had to respace the solder LEDs to fit them in the holes.First I installed the switch and then the power supply circuit then the LED array and then the sensor circuit .For the sensor wire4s to come out of the box I also made a hole at the side.



NOTE: I have installed only one switch as I used a common switch for the 5v supply and the arduino suppky.

Step 7: Build a Case for the MQ-3

I have asthma so inhalers are common in my house.I used one to fit in the MQ-3 sensor. The inhaled poking out of the breathalyzer box looks cool and professional .To fix the sensor I stuck the wires from the MQ-3 to the inhaled wall using insulating tape.I also kept only one end open for blowing into it and closed the other end using insulating tape.My inhaler has a cap on the blowers end so I can easily close the blowers end



Step 8: Testing

Now that we have completed our breathalyzer lets test it.No one drinks in our house so I used listrine for testing as it also contains alcohol. This idea was suggested by mpilchfamily.To test your breathalyzer take some alcoholic drink and gargle it in your mouth and then blow in the tube and  you will see the LED array light up.I used white LEDs as I was out of green LEDs. 

Step 9: All Done!

Hope this project inspires further experimentation. The Arduino board is incredibly versatile,cheap, and accessible to all hobbyists . This is just one of many simple projects which can be constructed using the arduino. Keep pondering!.Dont forget to follow mores comming up.For any queries contact me heres my E-mail ID r1398ohit@gmail.com

Comments

author
AnandR37 made it!(author)2017-04-10

Awesome

breathalyser.jpeg
author
R+Jordan+Kreindler made it!(author)2016-07-11

Thanks this is interesting and unusual.

author
innerlight2111 made it!(author)2016-04-16

Nice description, I simplified it for prototyping and, I added a wait timer in the code for the mq3 to warm up about 15min.

temp_-436210103.jpgtemp_1217562049.jpg
author
MiguelS26 made it!(author)2015-09-10

Why do you need the potentiometer?

author
Abhi909 made it!(author)2015-08-21

hello, i made a cheap Breathalyzer2.0. please check it out

All credit goes to you.

Thanks

https://www.instructables.com/id/Remix-Breathalyzer-20-Alcohol-Meter/

P_20150821_183446_HDR.jpg
author
redinside made it!(author)2015-02-11

Hi, I bought LM393-MQ-3 Gas Sensor module. How should I connect this module to Arduino and what kind of conversion and calibration should I do to get the level of BAC and display it on a LCD.

Thank you very much

author
philbot made it!(author)2014-06-11

I have tried this a few times but I can't get anything to work, all of the LEDs turn on immediately and just stay on, any ideas on what I'm doing wrong?

author
pasteler0 made it!(author)2013-07-13

The code was taken from: http://www.danielandrade.net/2010/03/07/building-an-breathalyzer-with-mq-3-and-arduino/

Should at least leave the header...

author
Bot1398 made it!(author)2014-05-14

Mentioned the header sorry for not mentioning it before

author
djoy2 made it!(author)2013-08-07

can put a LCD display on this project and how? could you please help for my project

author
djoy2 made it!(author)2013-08-07

can i use atmega328 instead?

author
mattgilbert made it!(author)2012-12-05

As pointed out in the comments on this page, Sensor pin B needs to be connected to VCC, not GND. This is what the sample circuit in the datasheet shows, and a student of mine couldn't get the project to work until we did it this way.

author
nodoubtman made it!(author)2012-11-28

Hi! How the MQ-3 SENSOR is hoocked up on the board?

thank you!
marC:)

author
Bot1398 made it!(author)2012-12-05

I have attached the schematic on step 5

author
The+ed made it!(author)2012-09-28

I wanted to ask, is 6 volts from 4 AA batteries too much for the sensor? Can I use 4.5 volts instead?

author
Bot1398 made it!(author)2012-11-12

Yes, You should use 4.5 volts instead always be on the safer side

author
The+ed made it!(author)2012-11-14

Thanks a lot. I have since gotten a DC-DC converter and got the 5 volts I needed. But anyways thanks for the reply

author
Pranavthegreat made it!(author)2012-06-05

nice one what is the cost after shipping to india??

author
Bot1398 made it!(author)2012-06-06

They take 11$ to ship to india but its worth it.

author
techxpert made it!(author)2012-05-25

very nice! i've been looking for a breathalyser for a long time now and this is the cheapest except the arduino uno try this one instead :)

http://www.dealextreme.com/p/arduino-uno-rev3-development-board-120464?item=15

About This Instructable

113,344views

203favorites

License:

Bio: Preapering for my medical entrance exams
More by Bot1398:555 Crriter RepellentSolar Powered Clock HackDIY Astronomy Flashlight
Add instructable to: