Skip to main content

Grove -Smart Air Quality Sensor (SGP41)


The Grove - Smart Air Quality Sensor (SGP41) is a digital gas sensor module from the Grove series. It features a 4-pin Grove interface that allows users to easily connect the sensor to a microcontroller. The module supports both 3.3V and 5V power supply, making it flexible.

The SGP41 digital gas sensor uses Sensirion's CMOSens® technology, which offers a complete and easy-to-use sensor system on a single chip. It can measure the concentration of volatile organic compounds (VOCs) and nitrogen oxides (NOx) in indoor air and provides digital output signals. Additionally, this sensor has outstanding long-term stability and lifetime.

The Grove - Smart Air Quality Sensor (SGP41) module is compact and suitable for applications with limited space. It also has high reliability and reproducibility. If you need to measure indoor air quality, consider using our Grove - Air Quality Sensor (SGP41) module!

tip

We've released the Seeed Gas Sensor Selection Guide, it will help you choose the gas sensor that best suits your needs.

Features

  • Digital gas sensor: The SGP41 is a digital gas sensor that can measure the concentration of volatile organic compounds (VOCs) and nitrogen oxides (NOx) in indoor air.
  • CMOSens® technology: The SGP41 uses Sensirion's CMOSens® technology, which offers a complete and easy-to-use sensor system on a single chip.
  • Long-term stability: The SGP41 has outstanding long-term stability and lifetime, making it ideal for applications that require continuous monitoring of indoor air quality.
  • Digital output signals: The SGP41 provides digital output signals, which makes it easy to integrate with microcontrollers and other digital systems.
  • Small form factor: The SGP41 is very compact and suitable for applications with limited space. It features a 4-pin Grove interface that allows users to easily connect the sensor to a microcontroller.
  • Flexible power supply: The module supports both 3.3V and 5V power supply, making it very flexible and easy to use in different applications.
  • High reliability and reproducibility: Sensirion's state-of-the-art production process guarantees high reproducibility and reliability of the SGP41 module.

Specification

  • Sensing technology: MOx-based gas sensor for air quality applications
  • Gas detection: VOC and NOx measurements
  • Interface: I2C interface with digital output signals
  • Power consumption: Low power consumption of 3.0 mA at 3.3 V
  • Operating temperature range: -40°C to +85°C
  • Humidity range: 0% to 100% RH (non-condensing)
  • Response time: <10 seconds for VOCs and <60 seconds for NOx
  • Accuracy: ±15% for VOCs and ±50 ppb for NOx (at standard conditions)

Applications

  • Indoor air quality monitoring: The SGP41 is ideal for monitoring indoor air quality in homes, offices, schools, and other indoor environments.
  • Air purifiers: The SGP41 can be integrated into air purifiers to detect and remove harmful gases from the air.
  • Demand-controlled ventilation systems: The SGP41 can be used in demand-controlled ventilation systems to adjust the ventilation rate based on the level of pollutants in the air.
  • Smart homes: The SGP41 can be integrated into smart home systems to provide real-time information about indoor air quality and trigger actions based on this information.
  • Industrial applications: The SGP41 can be used in industrial applications such as chemical plants, refineries, and manufacturing facilities to monitor indoor air quality and ensure worker safety.
  • Environmental monitoring: The SGP41 can be used for environmental monitoring of VOCs and NOx emissions from factories, vehicles, and other sources.

Hardware Overview

Pin Map

pir

Getting Started

note

If this is the first time you work with Arduino, we strongly recommend you to see Getting Started with Arduino before the start.

Play With Arduino

Materials required

Seeeduino V4.3Grove Base Shield V2.0Grove - Smart Air Quality Sensor (SGP41)
note

1. Please plug the USB cable gently, otherwise you may damage the port. Please use the USB cable with 4 wires inside, the 2 wires cable can't transfer data. If you are not sure about the wire you have, you can click here to buy

2. Each Grove module comes with a Grove cable when you buy. In case you lose the Grove cable, you can click here to buy.

  • Step 1. Connect Grove - Smart Air Quality Sensor (SGP41) to I2C port of Grove Base Shield.

  • Step 2. Plug Grove - Base Shield into Seeeduino.

  • Step 3. Connect Seeeduino to PC via a USB cable.

pir

note

If we don't have Grove Base Shield, We also can directly connect Grove - Smart Air Quality Sensor (SGP41) to Seeeduino as below.

SeeeduinoGrove-VOC and eCO2 Gas Sensor(SGP30)
5VRed
GNDBlack
SDAWhite
SCLYellow

Software

  • Step 1. Download the dependency libraries from Github.

  • Step 2. Refer to How to install library to install library for Arduino.

  • Step 3. After downloading and installing the library correctly, you can find an example program named exampleUsage.ino in the examples folder. This program is designed for the SGP41 sensor.

#include <Arduino.h>
#include <SensirionI2CSgp41.h>
#include <Wire.h>

SensirionI2CSgp41 sgp41;

// time in seconds needed for NOx conditioning
uint16_t conditioning_s = 10;

void setup() {

Serial.begin(115200);
while (!Serial) {
delay(100);
}

Wire.begin();

uint16_t error;
char errorMessage[256];

sgp41.begin(Wire);

uint16_t serialNumber[3];
uint8_t serialNumberSize = 3;

error = sgp41.getSerialNumber(serialNumber, serialNumberSize);

if (error) {
Serial.print("Error trying to execute getSerialNumber(): ");
errorToString(error, errorMessage, 256);
Serial.println(errorMessage);
} else {
Serial.print("SerialNumber:");
Serial.print("0x");
for (size_t i = 0; i < serialNumberSize; i++) {
uint16_t value = serialNumber[i];
Serial.print(value < 4096 ? "0" : "");
Serial.print(value < 256 ? "0" : "");
Serial.print(value < 16 ? "0" : "");
Serial.print(value, HEX);
}
Serial.println();
}

uint16_t testResult;
error = sgp41.executeSelfTest(testResult);
if (error) {
Serial.print("Error trying to execute executeSelfTest(): ");
errorToString(error, errorMessage, 256);
Serial.println(errorMessage);
} else if (testResult != 0xD400) {
Serial.print("executeSelfTest failed with error: ");
Serial.println(testResult);
}
}

void loop() {
uint16_t error;
char errorMessage[256];
uint16_t defaultRh = 0x8000;
uint16_t defaultT = 0x6666;
uint16_t srawVoc = 0;
uint16_t srawNox = 0;

delay(1000);

if (conditioning_s > 0) {
// During NOx conditioning (10s) SRAW NOx will remain 0
error = sgp41.executeConditioning(defaultRh, defaultT, srawVoc);
conditioning_s--;
} else {
// Read Measurement
error = sgp41.measureRawSignals(defaultRh, defaultT, srawVoc, srawNox);
}

if (error) {
Serial.print("Error trying to execute measureRawSignals(): ");
errorToString(error, errorMessage, 256);
Serial.println(errorMessage);
} else {
Serial.print("SRAW_VOC:");
Serial.print(srawVoc);
Serial.print("\t");
Serial.print("SRAW_NOx:");
Serial.println(srawNox);
}
}
  • Step 4. Upload the demo code.
  • Step 5. Open the Serial Monitor of Arduino IDE by click Tool-> Serial Monitor.

Schematic Online Viewer

Resources

Tech Support & Product Discussion

.

Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs.

Loading Comments...