Blog Home

Arduino Breathalyzer: Calibrating the MQ-3 Alcohol Sensor

Davide GombaSeptember 23rd, 2010



[Nootropic Design] explains the use (and the approach) to one of the most interesting sensors I’ve seen lately: the MQ-3 alcohol sensor:

The MQ-3 is an alcohol gas sensor that is available for about $5 from Sparkfun, Seeed Studio, and others. It’s easy to use and has sparked the imagination of anyone who has dreamed of building their own breathalyzer device for measuring the amount of alcohol in the human body. I got an MQ-3 sensor a couple of months ago and have spent a lot of time trying to figure out how to do this. After lots of “data gathering”, I found that this task is not as easy as it sounds.

The electronic circuit is explained and Standard Firmata used to visualize the data in Processing.

The most interesting part in the article is when [Michael] tries to calibrate the sensors, by calculating the BAC (blood alcohol content).

It’s really hard to calibrate this sensor for even an approximate BAC reading. It’s even difficult to correlate readings to looked-up BAC values. There are many environmental factors that affect the resistance within the sensor (humidity, temperature, oxygen concentration), and this is only a $5 device anyway. And as evidenced by the lack of consistency between online BAC calculators, there’s not even concensus about how to compute BAC. Law enforcement agencies have much more sophisticated breathalyzers, and often rely on actual blood tests or urinalysis for evidence.

Nevertheess [Michael] provides sketches, codes and everything to make the sensor work. You can’t always expect that precision from a 5$ sensor. Thanks a lot, we really appreciate your work: this is the more complete MQ-3 guide up to now.

via [nootropic]




4 Responses to “Arduino Breathalyzer: Calibrating the MQ-3 Alcohol Sensor”

  1. Akshay Says:

    Congratulations on your work. Its really inspiring. I wanted some help on MQ-7 Sensor. That is CO sensor. Is he circuitry same?
    According to the data sheet it requires continuous toggling between 5V (60 sec) and 1.4V (90 Sec).. I tried doing this by PWM. But unfortunately I am getting 2V at the o/p when the digital o/p pin must be high. i.e getting 2V instead of 5V. I checked with the inherent 5V on the board. Its giving me proper 5V. I also tried setting an digital pin to o/p and HIGH and expected 5V. But when I checked by multimeter it shows only 2V. Why can such a problem arise? Any Help…!

  2. dcuartielles Says:


    please post this question on the forum … the blog is just showing relevant projects, but most of the time they weren’t made by the Arduino Team or the blog editor.



  3. Detektor Kadar Alkohol Dalam Urine Menggunakan Sensor MQ 3 « Arieberdikarie's Blog Says:

    […] […]

  4. Mariah18 Says:

    I’m building a breathalyzer using the mq303a and i’m not sure how to wire it for the preheat.

Leave a Reply

You must be logged in with your Arduino account to post a comment.