I have a cigar lounge with a ventilation system, I would like to detect the "level" of cigar or cigarette smoke in the room. But I am not sure what sensor to go for, since these smokes contains a lot of different substances and I really want to measure the "smoke-level".

I have been looking for cigarette smoke detectors/sensors online but all I can find is detection systems with alarm output. I want to monitor the levels, to determine e.g. if it's rising or declining.

Any suggestions for what kind of sensor I could use?

Update: After doing some experiments, I ended up with a solution that works pretty good. I am using an MQ-2 sensor, which I am reading with an Arduino. I calculate the mean and standard deviation of the last 5 minutes, and compare it with the mean from the last three seconds. If there is an increase above 3 sigma, lasting for a couple of seconds, the "smoke" alarm flashes.

It also triggers on a couple of other things; like farting and using compressed air in a can.

4 Answers 4


I'm not entirely sure if this will be useful in your situation - but the way your typical smoke detector works is by measuring the radioactive decay, apparently Americum is at least used in some of them.

But I just learned something new (thanks, Wikipedia!) - apparently some smoke detectors use optical sensors!

So you should be able to do something similar in your lounge. It may take several sensors and combine their inputs. Obviously you'll have to deal with the fact that the smoke distribution probably isn't initially uniform. Potentially you could add an extractor to your room (not sure if that's desirable as I don't smoke) and measure the smoke levels there.

Not sure if there are any pre-built solutions, but perhaps you could gut several optical smoke alarms for their sensors.

  • 1
    The use of optical sensors have crossed my mind. I used to work with alarm installation and in large open spaces, such as churches, we set a beam in one end and a receiver in the other. Any reduction in the beams intensity would trigger the fire alarm. But, we used this only in large open spaces for a reason. It's a bit impractical in smaller spaces, as you say the smoke distribution is not uniform. Another drawback is the maintenance, since the receiver is very sensitive any pollution such as dust on either the beam or the receiver will give false results.
    – hebron
    Commented Oct 29, 2014 at 13:29
  • But the use of multiple "optical-smoke-detector-like sensors" got me thinking, thanks for your input :) I do have an extractor, and it's this that I want to automate.
    – hebron
    Commented Oct 29, 2014 at 13:31

An article about this just popped up in my Feedly today!

A chemistry professor at Dartmouth developed a sensor called FreshAir that can detect Nicotine and Marijuana smoke and log each instance. I'm not sure if it can record "how much" smoke is present, though.

From the article I read, the sensor can be managed via Android over Bluetooth or over WiFi, thought it doesn't look like it'll be available until next year.

  • 2.5 years passed and the device still can't be ordered :(
    – Equidamoid
    Commented May 25, 2017 at 9:54

The smoke detectors I know are all binary (smoke/no smoke).

Maybe you can detect it indirect measuring the CO2 concentration.

Unfortunately I know only one product Sensoair (IT monitors CO2 and VOC (volatile organic compounds)) but I'm searching for others: Are there different z-wave CO2 sensors?

  • 1
    Thanks for your answer. I'm not sure CO2 is a good indicator of smoke level, as there are multiple other factors that also contribute to CO2 apart from tobacco smoke; such as plants and humans.
    – hebron
    Commented Oct 29, 2014 at 12:18
  • I'm not sure that CO2 will be enough to detect smoke, but it may work in this particular use case. I know that the NetAtmo Weather Station includes a CO2 detector, plus they propose a pretty good SDK.
    – Aye1
    Commented Oct 29, 2014 at 12:25
  • 1
    I know that it is not the best solution. Hope you find a better one (and tell us about it.)
    – smartmeta
    Commented Oct 29, 2014 at 12:26

You can try several approaches:

  1. Disassemble an americium smoke detector and reverse engineer schematics. I've tried it once, inside was an ionization chamber and unmarked IC, most likely MC14468 clone. It had "guard" outputs that are connected to an output of the internal opamp that repeats voltage from the chamber. I think it can provide several mA, so you can connect it to a microcontroller's ADC or perhaps to Raspberry Pi's analog input. This method is relatively sensitive, but reaction is perceptable only when smell is already quite strong. It also relies on presence of guard outputs on IC, which may or may not be the case for concrete detector model,
  2. Disassemble an optical fire alarm. In worst case you'll have to reuse chamber, LED and photodiode, drive LED yourself and measure photodiode output. An uC paired with an opapm would be probably enough. It should be possible to construct the chamber using black paper, but I failed to get good results, I think due to lack of lens,
  3. Use a metal oxide gas sensor, e. g. TGS2600. It reacts to CO, H2 and several other gasses. In my experience it does detect smoke, but sensitivity and selectivity is rather low.

I'd advice not to bother with CO2 detectors, breathing releases far more CO2 than burning cigarette. I've actually tried with TGS4161, results are as expected.

Edit: restyled information as answer.

  • 1
    Hello, and welcome to Stack Exchange. This doesn't really answer the question; it's really just a list of miscellaneous ideas, which doesn't work well in our Q&A format. Commented Aug 12, 2016 at 23:22
  • Hi Daniel, fair enough. I've restructured the information as an answer, hope it'll be a better fit now. Commented Aug 13, 2016 at 23:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.