← All parts
SGP30 Gas Sensor
SGP30
Sensirionsensor environment
SGP30 is a digital gas sensor designed for indoor air quality monitoring, providing TVOC and CO2eq measurements via I2C interface.
In stock
Specifications
8- Operating Voltage
- 1.62V to 1.98V V
- Supply Current
- 48.8mA (in measurement mode) mA
- Interface
- I2C fast mode
- Resolution
- TVOC: 1 ppb, CO2eq: 1 ppm in their respective ranges
- Range
- TVOC: 0 ppb to 60000 ppb, CO2eq: 400 ppm to 60000 ppm
- Accuracy
- Typical accuracy of ±15% for ethanol signal and ±10% for H2 signal at 25°C, 50% RH and typical VDD %
- Temperature Range
- -40 to +85°C (operating), -40 to +125°C (storage)
- Package
- 6-pin DFN
Pinout
6| Pin | Name | Functions | Notes |
|---|---|---|---|
| 1 | VDD | POWER | Supply voltage |
| 2 | VSS | GND | Ground |
| 3 | SDA | I2C | Serial data, bidirectional |
| 4 | R | GPIO | Connect to ground (no electrical function) |
| 5 | VDDH | POWER | Supply voltage, hotplate |
| 6 | SCL | I2C | Serial clock, bidirectional |
Interactive pinout
Highlight:
SGP30
Click a pin to copy its name · tap a tag above to spotlight a bus.
Starter code
Community starter examples — minimal, unofficial, and provided to get you wiring fast. Verify against the manufacturer datasheet before relying on them.
Arduino (C++)
Arduino library: Adafruit SGP30 Sensor
arduino
// SGP30 eCO2 / TVOC air quality (I2C) — community starter example
#include <Adafruit_SGP30.h>
Adafruit_SGP30 sgp;
void setup() {
Serial.begin(115200);
if (!sgp.begin()) { Serial.println("SGP30 not found"); while (1) delay(10); }
}
void loop() {
if (sgp.IAQmeasure()) {
Serial.print("eCO2="); Serial.print(sgp.eCO2); Serial.print(" ppm TVOC=");
Serial.print(sgp.TVOC); Serial.println(" ppb");
}
delay(1000);
}MicroPython
MicroPython library: adafruit-circuitpython-sgp30 (port)
python
# SGP30 (ESP32) — community starter example
# driver: an SGP30 MicroPython port (e.g. alexmrqt/micropython-sgp30)
from machine import Pin, I2C
from sgp30 import SGP30
import time
i2c = I2C(0, scl=Pin(22), sda=Pin(21))
s = SGP30(i2c)
s.iaq_init()
while True:
co2, tvoc = s.iaq_measure()
print("eCO2", co2, "TVOC", tvoc)
time.sleep(1)Wiring
| Pin | Arduino Uno R3 | ESP32 DevKitC (WROOM-32) | Notes |
|---|---|---|---|
| VCC | +5V | 3V3 | 1.62-1.98 V chip; breakouts add a regulator (3-5 V) |
| GND | GND | GND | |
| SCL | A5/SCL | GPIO22 | I2C clock |
| SDA | A4/SDA | GPIO21 | I2C data |
Typical uses
- VOC + eCO2 air-quality sensing
- Smart ventilation and air monitors