CO2 Bricklet 2.0

Features

  • Measures CO2 concentration from 400 to 10000ppm (parts per million)

  • High accuracy of ±30ppm (full-scale) and ±3% (of reading)

  • Measures temperature and humidity for compensation

  • Ambient air pressure can be applied for additional compensation

Description

The CO2 Bricklet 2.0 can be used to extend the features of Bricks with the capability to measure CO2 concentration in the air. The measured CO2 concentration can be read out in ppm. With configurable events it is possible to react on changing CO2 concentration without polling.

The Bricklet also measures temperature and humidity. These are used internally for compensation and can additionally be read out.

It is possible to apply an ambient air pressure value to achieve further compensation and better CO2 concentration measurement.

Technical Specifications

Property

Value

Sensor

Sensirion SCD30

Current Consumption (average)

60mW (12mA at 5V)

Current Consumption (peak)

400mW (80mA at 5V)

CO2 Concentration Resolution

1ppm with range of 400ppm to 10000ppm

Temperature Resolution

0.01°C with range of -40°C to 70°c

Humidity Resolution

0.01%RH with range of 0%RH to 100%RH

CO2 Concentration Accuracy

±30ppm (full-scale), ±3% (of reading)

Temperature Accuracy

± (0.4°C + 0.023 × (T [°C] – 25°C))*

Humidity Accuracy

± 3 %RH

Measurement Frequency

0.5 measurements per second

Dimensions (W x D x H)

35 x 40 x 18mm (1.38 x 1.57 x 0.71")

Weight

9g

* This is the temperature at the exact position of the sensor. If the Bricklet is used inside of an enclosure, the air around the Bricklet may heat up more than the ambient air. The Bricklet does have API to calibrate this kind of offset.

Resources

Air Pressure Compensation and Temperature Offset

The CO2 Bricklet 2.0 has API to set an ambient air pressure value for additionl internal compensation to achieve increased CO2 concentration accuracy.

You can use a Barometer Bricklet 2.0 or Air Quality Bricklet to measure the air pressure and update the compensation value periodically.

Additionally, if the Bricklet is used inside of an enclosure, the air around the Bricklet may heat up more than the ambient air. This temperature offset can also be calibrated with the API. We recommend that you leave the parts in the enclosure running for at least 24 hours such that a temperature equilibrium can be reached.

CO2 Calibration

Gas sensors need to be calibrated from time to time. Typically this is done by applying a specified amount of CO2 to it. Since this is impractical for a CO2 sensor at home, the gas sensor of this Bricklet (Sensirion SCD30) do a permanent automatic calibration (ASC).

Here is what Sensirion is writing about it:

Note

To work properly SCD30 has to see fresh air on a regular basis. Optimal working conditions are given when the sensor sees fresh air for one hour every day so that ASC can constantly re-calibrate. ASC only works in continuous measurement mode.

That means if the sensor is not seeing fresh air in that period it will calibrate with the wrong values decreasing the accuracy of the sensor.

Test your CO2 Bricklet 2.0

To test a CO2 Bricklet 2.0 you need to have Brick Daemon and Brick Viewer installed. Brick Daemon acts as a proxy between the USB interface of the Bricks and the API bindings. Brick Viewer connects to Brick Daemon. It helps to figure out basic information about the connected Bricks and Bricklets and allows to test them.

Connect the CO2 Bricklet 2.0 to a Brick with a Bricklet Cable.

If you connect the Brick to the PC over USB, you should see a new tab named "CO2 Bricklet 2.0" in the Brick Viewer after a moment. Select this tab. If everything went as expected the Brick Viewer should look as depicted below.

CO2 Bricklet 2.0 in Brick Viewer

After this test you can go on with writing your own application. See the Programming Interface section for the API of the CO2 Bricklet 2.0 and examples in different programming languages.

Programming Interface

See Programming Interface for a detailed description.

Language

API

Examples

Installation

C/C++

API

Examples

Installation

C/C++ for Microcontrollers

API

Examples

Installation

C#

API

Examples

Installation

Delphi/Lazarus

API

Examples

Installation

Go

API

Examples

Installation

Java

API

Examples

Installation

JavaScript

API

Examples

Installation

LabVIEW

API

Installation

Mathematica

API

Examples

Installation

MATLAB/Octave

API

Examples

Installation

MQTT

API

Examples

Installation

openHAB

API

Examples

Installation

Perl

API

Examples

Installation

PHP

API

Examples

Installation

Python

API

Examples

Installation

Ruby

API

Examples

Installation

Rust

API

Examples

Installation

Shell

API

Examples

Installation

Visual Basic .NET

API

Examples

Installation

TCP/IP

API

Modbus

API