

The SparkFun CO2 Humidity and Temperature Sensor - SCD41 (Qwiic) is a compact, high-precision sensor designed to measure carbon dioxide (CO2) levels, relative humidity, and temperature. It utilizes Sensirion's SCD41 sensor module, which is based on photoacoustic sensing technology, ensuring accurate and reliable measurements. The sensor is equipped with the Qwiic connect system, enabling seamless integration into projects without the need for soldering.








| Parameter | Value |
|---|---|
| CO2 Measurement Range | 400 ppm to 5,000 ppm |
| CO2 Accuracy | ±(40 ppm + 5% of reading) |
| Humidity Range | 0% to 100% RH |
| Humidity Accuracy | ±3% RH |
| Temperature Range | -10°C to 60°C |
| Temperature Accuracy | ±0.8°C |
| Supply Voltage | 3.3V (via Qwiic connector) |
| Interface | I2C (Qwiic) |
| Dimensions | 25.4 mm x 25.4 mm |
The SCD41 sensor uses the Qwiic connector for I2C communication. Below is the pinout for the Qwiic connector:
| Pin Name | Description |
|---|---|
| GND | Ground |
| 3.3V | Power supply (3.3V) |
| SDA | I2C data line |
| SCL | I2C clock line |
0x62. Ensure no other devices on the I2C bus conflict with this address.Below is an example of how to read CO2, humidity, and temperature data from the SCD41 sensor using an Arduino UNO:
#include <Wire.h>
#include <SparkFun_SCD4x_Arduino_Library.h> // Include the SCD4x library
SCD4x mySensor; // Create an instance of the SCD4x class
void setup() {
Serial.begin(9600); // Initialize serial communication
Wire.begin(); // Initialize I2C communication
if (mySensor.begin() == false) {
Serial.println("SCD41 not detected. Check connections.");
while (1); // Halt execution if the sensor is not detected
}
Serial.println("SCD41 initialized successfully.");
}
void loop() {
if (mySensor.readMeasurement()) {
// Check if valid data is available
Serial.print("CO2: ");
Serial.print(mySensor.getCO2());
Serial.print(" ppm, ");
Serial.print("Humidity: ");
Serial.print(mySensor.getHumidity());
Serial.print(" %RH, ");
Serial.print("Temperature: ");
Serial.print(mySensor.getTemperature());
Serial.println(" °C");
} else {
Serial.println("Failed to read data. Ensure sensor is connected.");
}
delay(2000); // Wait 2 seconds before the next reading
}
Sensor Not Detected:
Inaccurate Readings:
I2C Address Conflict:
0x62).Library Not Found: