Hardware · Sensor · CO₂ & air

The SCD40.

Measures
True CO₂, plus temperature and humidity
Interface
I²C
Open Agriculture Technology take
The compact pick for real CO₂

The SCD40 is a small Sensirion sensor that measures real carbon dioxide, along with temperature and humidity, all from one part over I²C. Unlike the cheap “eCO₂” sensors that only guess at CO₂ from other gases, the SCD40 actually measures it, which is what you need for greenhouse enrichment, ventilation, and safety. It is the compact, modern pick for true CO₂.

An SCD40 CO2 sensor
Image: adafruit.com

What it is.

The SCD40 uses a compact photoacoustic method to measure CO₂ directly, and it throws in temperature and humidity from the same part. It is small, sips little power, and talks over I²C, which makes it far easier to design in than the older tube-style infrared sensors. For a grower it covers the three things a sealed space cares about: how much CO₂ the plants have, and the climate around them.

Real CO₂, not eCO₂.

This is the reason to choose it. A whole class of cheap sensors (the CCS811, SGP30 and kin) report “eCO₂” or “equivalent CO₂,” which they estimate from volatile organic compounds, on the assumption that human breath is the only thing changing the air. In a room full of plants and soil that assumption is false, so the number is meaningless for growing. The SCD40 measures CO₂ itself, so the parts-per-million it reports are real. If a project involves enrichment or safety, this is the kind of sensor it needs.

Key facts.

Wiring and calibration.

Four wires over I²C: VCC, GND, SDA, SCL to your microcontroller, at address 0x62. In ESPHome it has a dedicated SCD4x component. One calibration note matters: the SCD40 self-calibrates with an automatic baseline (ABC) that assumes the room regularly returns to fresh-air levels. In a room you keep enriched, that assumption is wrong, so turn ABC off and calibrate manually, or it will slowly drift its zero.

Where it fits, and where it doesn’t.

Where it fits

  • CO₂ enrichment in a sealed greenhouse or tent.
  • Ventilation control in a grow or mushroom room.
  • Climate plus CO₂ from one small part.
  • Reading with an ESP32 and ESPHome.

Where it doesn’t

  • The cheapest air-quality trend; that is an eCO₂ sensor (but not real CO₂).
  • An enriched room with ABC left on; turn it off and calibrate.
  • Life-safety alarms; use a certified monitor.
  • Carbon monoxide (CO); that is a different sensor.

Resources & where to buy.

ESPHome: SCD4x Sensirion SCD40 Where to buy CO₂ & air overview

Frequently asked questions.

Does the SCD40 measure real CO2?

Yes. The SCD40 measures carbon dioxide directly with a photoacoustic method, so its parts-per-million reading is real. That is different from cheap eCO2 sensors like the CCS811, which only estimate CO2 from other gases and are unreliable in a room full of plants.

What is the difference between the SCD40 and the SCD41?

They are closely related Sensirion CO2 sensors. The SCD41 has a wider measurement range and a low-power single-shot mode, while the SCD40 is the lower-cost everyday version. For typical greenhouse use the SCD40 is plenty; the SCD41 suits wider ranges or battery operation.

Do I need to calibrate the SCD40?

It self-calibrates with an automatic baseline that assumes the room regularly reaches fresh-air CO2 levels. In a normally ventilated space that is fine. In a room you keep enriched above outdoor levels, turn the automatic baseline off and calibrate manually, or the zero will drift.

Does the SCD40 work with ESPHome?

Yes. ESPHome has a dedicated SCD4x component, so you wire the sensor to an ESP32 over I2C, add a few lines of config, and the CO2, temperature, and humidity readings appear in Home Assistant.