⚠️ Affiliate Disclosure: This post contains Amazon affiliate links. If you purchase through our links, we may earn a small commission at no extra cost to you. We only recommend sensors we have researched and verified against live listings. We have deliberately left prices out of the tables because gas-sensor prices and stock change often — always tap a “View / Check Price” button to confirm the current price on Amazon before buying.
Ultimate Buying Guide 2026
🌫️ Best Gas & Air Quality Sensors for Embedded Devices
10 of the best gas and air-quality sensor modules for Arduino, ESP32 and Raspberry Pi — from a true lab-grade NDIR CO₂ sensor to a $5 MQ smoke detector — compared on what they actually measure, how they connect and how far you can trust the reading.
✅ 10 Sensors Reviewed
✅ Verified Amazon Listings
✅ Updated June 2026
✅ Honest Pros & Cons
Adding a gas or air-quality sensor to a microcontroller project is one of the most rewarding upgrades you can make. With a few dollars of hardware and an I²C or UART connection, an Arduino, ESP32 or Raspberry Pi can sniff out smoke, leaking LPG, rising CO₂, volatile organic compounds (VOCs) or the fine PM2.5 particulates that drive most indoor air-quality readings. These sensors power smart-home dashboards, IoT environmental loggers, ventilation controllers, safety alarms and classroom science projects.
The hard part is that “gas sensor” covers wildly different technologies. A cheap MQ metal-oxide module can flag a change in combustible gas for the price of a coffee, but it can’t tell you a real concentration. A true NDIR CO₂ sensor measures actual parts-per-million but costs ten times more. VOC sensors report a calculated “equivalent CO₂,” laser particulate sensors count dust, and multi-gas modules trade absolute accuracy for breadth. This guide ranks 10 sensor modules by what they’re genuinely good at — so you buy the right tool for your project, not the one with the biggest spec sheet.
💡 Reality check before you buy: Most hobby gas sensors are qualitative, not laboratory instruments. MQ-series modules and MOX VOC sensors detect relative changes and need warm-up plus calibration — they can’t name a gas or give a trustworthy ppm without reference equipment. “eCO₂” on an SGP30 or CCS811 is estimated from VOC/H₂, not real CO₂; only NDIR sensors (SCD41, MH-Z19B) measure CO₂ directly. Nearly all heated sensors need a 24–48 hour burn-in when new and several minutes of warm-up each run, and they want a clean, well-regulated 5 V supply. Match the sensor to the gas you actually care about and treat budget modules as trend detectors, not certified safety devices.
🌫️ Quick Comparison — All 10 Gas & Air-Quality Sensors
| Sensor | Tech | Measures | Interface | Best For | Buy |
|---|
| 🥇 Bosch BME680 | MOX + env. | VOC gas, temp, humidity, pressure | I²C / SPI | Best Overall | View → |
| 🥈 Sensirion SCD41 | NDIR | True CO₂, temp, humidity | I²C | Best True CO₂ | View → |
| 🌬️ Sensirion SGP30 | MOX (multi-pixel) | TVOC, eCO₂ | I²C | Best for TVOC / IAQ | View → |
| 📟 Winsen MH-Z19B | NDIR | True CO₂ (0–5000 ppm) | UART / PWM | Best Budget True CO₂ | View → |
| 🌬️ Plantower PMS5003 | Laser scatter | PM1 / PM2.5 / PM10 | UART | Best for Particulates | View → |
| 🧪 MICS-6814 | MEMS MOX (3-in-1) | CO, NO₂, NH₃ (+more) | Analog / I²C* | Best Multi-Gas | View → |
| 💨 CCS811 | MOX | eCO₂, TVOC | I²C | Best Compact eCO₂ | View → |
| 🔥 MQ-2 | MOX (analog) | Smoke, LPG, CH₄, H₂ | Analog + digital | Best for Smoke/Flammable | View → |
| 🏭 MQ-135 | MOX (analog) | NH₃, NOx, benzene, smoke, CO₂ | Analog + digital | Best Ultra-Budget AQ | View → |
| ☠️ MQ-7 | MOX (analog) | Carbon monoxide (CO) | Analog + digital | Best for CO Detection | View → |
*The MICS-6814 sensor itself is analog; popular breakouts (e.g. the Pimoroni board) add an MCU for I²C. Generic Amazon boards are typically analog. Prices intentionally omitted — confirm live pricing and stock on Amazon before buying.
🔍 What to Look for in a Gas / Air-Quality Sensor
🎯
What it actually measures
Pick the gas first. CO₂? Use NDIR (SCD41/MH-Z19B). Air-quality “freshness”? VOC sensors (BME680/SGP30). Safety/leak alarms? MQ series. Dust/smog? A laser PM sensor.
📡
Interface (I²C / UART / analog)
I²C digital sensors are plug-and-play and need no calibration math. UART suits CO₂ modules. Analog MQ outputs need an ADC — easy on Arduino, but the ESP32 ADC is noisy and the Pi has none.
📊
Quantitative vs qualitative
NDIR and calibrated Sensirion parts give real, repeatable numbers. MQ modules and raw MOX sensors detect trends — great for alarms and dashboards, not for certified readings.
⏱️
Warm-up & power
Heated sensors (MQ, MOX) need 24–48 h burn-in when new and minutes of warm-up each run, and draw real current (PM and MQ heaters can hit 100–150 mA). Plan a stable 5 V supply.
🧰
Library & voltage support
Look for a maintained Arduino/CircuitPython library and onboard level shifting/regulator so the board works at both 3.3 V (ESP32, Pi) and 5 V (Uno) without smoke.
🏆 Detailed Reviews — All 10 Sensors
🥇 Best Overall · ⭐ 4.8/5

The Bosch BME680 is the sensor we hand to almost everyone, because it does four jobs at once: a metal-oxide gas element for VOC/air-quality, plus precision temperature, humidity and barometric pressure — all over I²C or SPI on a board with onboard regulation that runs happily at 3.3 V or 5 V. Bosch’s BSEC library turns the raw gas resistance into a usable Indoor Air Quality (IAQ) index, so a single ESP32 can drive a whole environmental dashboard. It won’t name individual gases, but as an all-rounder for IoT loggers and smart-home builds, nothing this size matches it.
✅ Pros- Four sensors in one tiny board
- Real Arduino/CircuitPython + BSEC IAQ support
- I²C & SPI, 3.3 V/5 V ready
- Low power, trusted Bosch part
❌ Cons- VOC is one combined value, not per-gas
- No true CO₂ measurement
- Needs burn-in for stable IAQ
🎯 Verdict: The best first (and often last) air-quality sensor. If you want one part that covers gas, temperature, humidity and pressure, buy the BME680.
👉 Check Price on Amazon → 🥈 Best True CO₂ · ⭐ 4.7/5

When you need a number you can actually trust, the Sensirion SCD41 is the one. It uses photoacoustic NDIR sensing to measure real CO₂ concentration — not the “equivalent CO₂” that VOC sensors estimate — over a wide 400–5000 ppm range, with onboard temperature and humidity and simple I²C output. It’s the gold standard for ventilation studies, classroom CO₂ monitors and “is this room stuffy?” IoT projects, and the linked Sensirion evaluation kit ships with cables to get you reading ppm in minutes. The only catch is price: this is the most expensive pick here, and deservedly so.
✅ Pros- Real, calibrated CO₂ in ppm
- Temp + humidity built in
- Tiny, low-power, I²C
- Excellent Sensirion library support
❌ Cons- Most expensive sensor here
- Only measures CO₂ (not VOC/PM)
- Wants a quiet, regulated supply
🎯 Verdict: The definitive hobby CO₂ sensor. If your project lives or dies on accurate CO₂ ppm, the SCD41 is worth every cent.
👉 Check Price on Amazon → 🌬️ Best for TVOC / IAQ · ⭐ 4.5/53. Sensirion SGP30
TVOC + eCO₂ · I²C · calibrated MOX
Buy →

The SGP30 from Sensirion is a fully calibrated multi-pixel MOX sensor that returns a TVOC reading plus an estimated eCO₂ over I²C — no analog math, no per-board calibration. Unlike the CCS811 it doesn’t need I²C clock stretching, so it works cleanly with the Raspberry Pi, and it accepts a humidity value from a companion sensor for better accuracy. It’s the easiest way to add a credible “air freshness” number to a dashboard.
✅ Pros: Factory-calibrated; no clock stretching (Pi-friendly); easy I²C; good library support.
❌ Cons: eCO₂ is estimated, not real CO₂; ~15% typical accuracy; drifts without baseline saving.
🎯 Verdict: The best plug-and-play VOC sensor — ideal when you want air-quality trends without wrestling analog signals.
📟 Best Budget True CO₂ · ⭐ 4.5/54. Winsen MH-Z19B
NDIR CO₂ · UART/PWM · 0–5000 ppm
Buy →

The MH-Z19B brings genuine NDIR CO₂ sensing within reach of a hobby budget. It outputs real CO₂ over UART (and PWM), has built-in temperature compensation and self-calibration, and is the sensor behind countless DIY “CO₂ canary” builds. Accuracy and long-term stability don’t match the SCD41, but for logging room CO₂ on an ESP32 or Pi it’s a fantastic value — just disable auto-baseline calibration if the sensor never sees fresh ~400 ppm air.
✅ Pros: Real NDIR CO₂ for the money; simple UART; huge community; temp compensated.
❌ Cons: 3 min warm-up; auto-calibration can mislead; less accurate than SCD41; 5 V, 150 mA peaks.
🎯 Verdict: The best cheap way to measure real CO₂ — perfect for ventilation loggers where you want ppm without the SCD41 price.
🌬️ Best for Particulates · ⭐ 4.6/55. Plantower PMS5003
Laser PM1 / PM2.5 / PM10 · UART
Buy →

If your project is about dust, smoke or smog rather than gas, the Plantower PMS5003 is the maker favourite. A tiny fan draws air past a laser, counting particles to report PM1.0, PM2.5 and PM10 concentrations over UART — the same metric air-quality indices are built on. It’s well supported on Raspberry Pi and Pico, ships with a cable, and is the heart of citizen-science monitors worldwide. Remember it’s a 5 V device with 3.3 V logic, and give the fan ~30 seconds to stabilise.
✅ Pros: Real PM1/2.5/10 readings; great libraries; cable included; proven in field monitors.
❌ Cons: Moving fan wears over years; bulkier; 5 V power; needs warm-up before stable data.
🎯 Verdict: The best particulate sensor for makers — essential for any PM2.5 air-quality station.
🧪 Best Multi-Gas · ⭐ 4.3/56. MICS-6814
CO · NO₂ · NH₃ (3-in-1 MEMS)
Buy →

The MICS-6814 packs three MEMS sensing elements into one package to track reducing (CO), oxidising (NO₂) and NH₃ gas groups at once — ideal for pollution and agricultural/vehicle-odour monitoring. It’s sensitive to hydrogen, ethanol and hydrocarbons too. Treat it as qualitative: without lab calibration you get clear up/down trends per channel rather than certified ppm. Generic Amazon boards expose analog outputs (you’ll need an ADC), while breakout-garden style boards add an MCU for I²C.
✅ Pros: Three gas families in one sensor; great for pollution dashboards; 3–5 V.
❌ Cons: Qualitative without calibration; analog boards need ADC; heater warm-up; cross-sensitivity.
🎯 Verdict: The best single board for broad pollution sensing when you care about several gases at once.
💨 Best Compact eCO₂ · ⭐ 4.2/57. CCS811
eCO₂ + TVOC · I²C · ultra-low power
Buy →

The CCS811 is a low-cost MOX gas sensor that reports estimated eCO₂ (400–8192 ppm) and TVOC over I²C, with a tiny footprint and configurable interrupt. It’s a popular budget alternative to the SGP30 and pairs nicely with a separate temp/humidity sensor for compensation. The catch: it uses I²C clock stretching, which trips up some boards (notably the Raspberry Pi’s default I²C), and it needs a long burn-in. If your MCU handles clock stretching, it’s a cheap, capable VOC sensor.
✅ Pros: Cheap eCO₂ + TVOC; very low power; small; interrupt + multiple drive modes.
❌ Cons: Clock stretching (Pi issues); eCO₂ estimated; 48 h burn-in; drift over time.
🎯 Verdict: The best budget eCO₂/TVOC board for MCUs that support clock stretching — choose the SGP30 instead on a Pi.
🔥 Best for Smoke / Flammable · ⭐ 4.4/58. MQ-2
Smoke · LPG · methane · H₂ · CO
Buy →

The MQ-2 is the classic “my Arduino can smell smoke” module — a heated metal-oxide sensor on an LM393 board with both an analog output (concentration trend) and a digital threshold output set by an onboard potentiometer. It responds to LPG, propane, methane, hydrogen, alcohol, smoke and CO between roughly 200–10,000 ppm. It can’t identify which gas it’s seeing, but for leak alarms and fire-detection demos at a couple of dollars, nothing is more accessible.
✅ Pros: Dirt cheap; analog + digital out; adjustable threshold; huge tutorial base.
❌ Cons: Qualitative only; can’t name the gas; 24–48 h burn-in; 5 V heater draws power.
🎯 Verdict: The best beginner safety sensor — perfect for smoke/gas-leak alarm projects and learning analog sensing.
🏭 Best Ultra-Budget AQ · ⭐ 4.1/59. MQ-135
NH₃ · NOx · benzene · smoke · CO₂
Buy →

The MQ-135 is the budget go-to for generic “air quality” projects, reacting to ammonia, NOx, alcohol, benzene, smoke and CO₂ with analog and digital outputs. You’ll see it in countless DIY air-quality meters that map its analog value to an arbitrary “AQI” number. Be honest about its limits: those ppm conversions floating around online are rough estimates from the datasheet curve, not calibrated truth. As a cheap trend indicator and a great way to learn the Rs/Ro calibration method, it’s hard to beat.
✅ Pros: Cheapest air-quality option; broad gas response; analog + digital; teaches calibration.
❌ Cons: “ppm/AQI” values are estimates; humidity-sensitive; long burn-in; not a real CO₂ sensor.
🎯 Verdict: The best ultra-budget air-quality sensor for learning and trend dashboards — just don’t treat its numbers as gospel.
☠️ Best for CO Detection · ⭐ 4.2/510. MQ-7
Carbon monoxide · 20–2000 ppm
Buy →

The MQ-7 is the budget specialist for carbon monoxide, sensing roughly 20–2000 ppm CO with analog and digital outputs. For best results it’s meant to be cycled between a high (5 V) and low (1.4 V) heater voltage, so a quality build or a little PWM/MOSFET work pays off. It’s a superb learning tool and a fun maker CO “early-warning” project — but treat it as educational. For protecting people, always use a certified UL-listed CO alarm, not a hobby module.
✅ Pros: Cheap CO-focused sensing; analog + digital; great for CO logging demos.
❌ Cons: Needs heater voltage cycling for accuracy; qualitative; not a safety-certified CO alarm.
🎯 Verdict: The best low-cost CO sensor for projects and learning — pair its idea with a real CO alarm for anything life-safety related.
🛒 How to Choose the Right Sensor
🏠
General indoor air quality?
Start with the BME680 (gas + temp/humidity/pressure) or SGP30 for an easy TVOC/eCO₂ trend.
🫁
Need real CO₂ ppm?
Only NDIR will do: SCD41 for accuracy, MH-Z19B for the budget option.
🌫️
Dust, smoke & PM2.5?
The laser PMS5003 is the only pick here that counts particulates — the basis of every AQI station.
🚨
Leak / fire alarm?
The MQ-2 (smoke/LPG) and MQ-7 (CO) give instant threshold alarms for a couple of dollars.
🧪
Pollution / multi-gas?
The MICS-6814 tracks CO, NO₂ and NH₃ together; the MQ-135 is the ultra-cheap broad option.
🍓
Using a Raspberry Pi?
Prefer I²C/UART sensors (SGP30, SCD41, MH-Z19B, PMS5003). Avoid the CCS811’s clock stretching and analog MQ outputs (the Pi has no ADC).
⚙️ Key Specs Compared — Side by Side
| Spec | BME680 | SCD41 | SGP30 | PMS5003 | MQ-2 |
|---|
| Primary target | VOC + T/H/P ⭐ | True CO₂ | TVOC/eCO₂ | PM1/2.5/10 | Smoke/LPG |
| Technology | MOX + env. | NDIR ⭐ | MOX | Laser | MOX |
| Interface | I²C + SPI ⭐ | I²C | I²C | UART | Analog+digital |
| Quantitative? | Index (IAQ) | Yes, ppm ⭐ | Estimated | Yes, µg/m³ ⭐ | No (trend) |
| Pi-friendly | Yes ⭐ | Yes | Yes | Yes | Needs ADC |
| Warm-up/burn-in | Burn-in | Seconds ⭐ | Burn-in | ~30 s | 24–48 h |
⭐ marks the standout in each row. Specs summarised from manufacturer datasheets (Bosch, Sensirion, Plantower, Winsen) — always confirm details for your exact board variant.
❓ Frequently Asked Questions
What’s the difference between “eCO₂” and real CO₂?
Real CO₂ is measured directly by NDIR sensors like the SCD41 and MH-Z19B, which detect how much infrared light CO₂ molecules absorb. “eCO₂” (equivalent CO₂) on VOC sensors like the SGP30 and CCS811 is calculated from hydrogen/VOC levels — it tracks human occupancy reasonably but isn’t a true CO₂ reading. If you need accurate ppm for ventilation, buy NDIR.
Are MQ-series sensors accurate enough to measure ppm?
Not reliably. MQ modules are heated metal-oxide sensors that respond to relative changes in gas. You can estimate ppm using the datasheet Rs/Ro curve after calibrating in clean air, but the result drifts with temperature, humidity and age. They’re excellent for threshold alarms and learning, not for certified measurement.
Why do my gas-sensor readings drift right after powering on?
Heated sensors (MQ, MOX-based BME680/SGP30/CCS811) need a warm-up. When brand new they want 24–48 hours of continuous “burn-in,” then several minutes each time you power them. NDIR sensors stabilise much faster (seconds to a few minutes). Always discard the first readings after power-up.
Can I use these sensors with a Raspberry Pi as well as Arduino/ESP32?
Mostly yes. I²C and UART sensors (BME680, SCD41, SGP30, MH-Z19B, PMS5003) work great on a Pi with Python libraries. Two cautions: the CCS811 uses I²C clock stretching that the Pi’s default I²C struggles with, and analog MQ sensors need an external ADC (e.g. ADS1115) because the Pi has no analog input.
Is a DIY CO or smoke sensor safe to rely on for my home?
No — treat hobby gas sensors as educational, not life-safety devices. The MQ-7 (CO) and MQ-2 (smoke) are perfect for learning and projects, but for protecting people always install a certified, UL-listed CO alarm and smoke detector. Use the modules to complement proper alarms, never replace them.
🏁 Final Verdict — Best Sensor for Every Job
No single sensor measures everything — match the part to the gas you care about:
🥇 Best Overall — Bosch BME680: gas + temperature + humidity + pressure in one tiny I²C/SPI board.
Buy →🫁 Best True CO₂ — Sensirion SCD41: calibrated NDIR ppm for ventilation & CO₂ monitors.
Buy →💸 Best Budget CO₂ — Winsen MH-Z19B: real NDIR CO₂ over UART without the premium price.
Buy →🌫️ Best for PM2.5 — Plantower PMS5003: laser particulate counting for air-quality stations.
Buy →🚨 Best Budget Alarm — MQ-2 (smoke/LPG) & MQ-7 (CO): instant threshold sensing for a few dollars.
Buy →For most makers the Bosch BME680 is the smartest first buy — it covers gas, temperature, humidity and pressure on one board and grows with your project. Step up to the Sensirion SCD41 (or the budget MH-Z19B) the moment you need real CO₂ numbers, add the PMS5003 for particulate/PM2.5 work, and keep a couple of MQ-2 and MQ-7 modules around for cheap, satisfying alarm projects. Whichever you pick, pair it with our Arduino, ESP32, STM32 and Raspberry Pi tutorials and start turning the air around you into data.
💬 Not sure which sensor fits your build? Tell us what you’re sensing — CO₂, VOCs, smoke, particulates or a specific gas — in the comments below, and we’ll point you to the right pick.
All Amazon links above use our affiliate tag (microlab05-20). Purchasing through them supports microcontrollerslab.com at no extra cost to you. We’ve intentionally omitted prices because gas-sensor pricing and availability change frequently — always confirm the current price and the exact model/variant on Amazon before buying.