Introduction

DFRobot released its latest high-precision analog infrared CO2 sensor. The effectively measuring range is from 0 to 5000ppm. This sensor is based on non-dispersive infrared (NDIR) technology and has good selectivity and oxygen-free dependency. Besides, its service life could up to 5 years! It integrates temperature compensation and support DAC output. Most importantly, the product is easy to use; it is compatible with all types of microcontrollers with ADC function. In addition, this product is a high-performance sensor that combines technology of mature infrared absorption gas detection with precision optical circuit design as well as sophisticated circuit design. It has characteristics such as high sensitivity, high resolution, low power consumption, fast response, anti-water vapor interference, no poisoning, high stability and long life. This sensor is able to directly compatible with the DFRobot Arduino IO expansion board thanks to its external DFRobot Gravity interface. This character simplify the use of the sensor as it is plug and play and no need additional wiring. This product could be widely used in HVAC, indoor air quality monitoring, industrial process and security protection monitoring, agriculture and animal husbandry production process monitoring.

Feature

Specification

Board Overview

SEN0219 CO2 Sensor
Num Label Description
1 Signal Analog Output (0.4~2V)
2 VCC VCC (4.5~5.5V)
3 GND GND

Tutorial

In this tutorial, we'll show you how to use DFRobot Infrared Sensor within 5 minutes.

Requirements

Connection Diagram

SEN0219_Connection

Data Analysis

When the IR CO2 sensor get 5V power supply, it will output 0.42V analog value, corresponding to 05000 ppm; And when the sensor finds faults during the self-checking process, it will output 0V.
SEN0219_data.png

Sample Code


/***************************************************
 * Infrared CO2 Sensor0-5000ppm
 * ****************************************************
 * This example The sensors detect CO2
 *
 * @author lg.gang(lg.gang@qq.com)
 * @version  V1.0
 * @date  2016-7-6
 *
 * GNU Lesser General Public License.
 * See <http://www.gnu.org/licenses/> for details.
 * All above must be included in any redistribution
 * ****************************************************/
int sensorIn = A0;

void setup(){
  Serial.begin(9600);
  // Set the default voltage of the reference voltage
  analogReference(DEFAULT);
}

void loop(){
  //Read voltage
  int sensorValue = analogRead(sensorIn);

  // The analog signal is converted to a voltage
  float voltage = sensorValue*(5000/1024.0);
  if(voltage == 0)
  {
    Serial.println("Fault");
  }
  else if(voltage < 400)
  {
    Serial.println("preheating");
  }
  else
  {
    int voltage_diference=voltage-400;
    float concentration=voltage_diference*50.0/16.0;
    // Print Voltage
    Serial.print("voltage:");
    Serial.print(voltage);
    Serial.println("mv");
    //Print CO2 concentration
    Serial.print(concentration);
    Serial.println("ppm");
  }
  delay(100);
}

Expected Results

Open your IDE serial monitor and wait for 3 minutes (preheat process), then you'll see the finial data. (Indoor Temperature: 30℃)
SEN0219_Result.jpg

FAQ

Q. Can I use the CO2 sensor with 3.3V microcontroller?
A. yes, you need to power it with 5V power supply, and change the conversion formula * float voltage = sensorValue\(3300/1024.0)**
Q. How do I make a Calibration?
A. The sensor should be calibrated regularly. The cycle time is better to be no more than 6 months. Manual calibration of zero point is to calibrate the sensor's HD pin input low level (0V) to calibrate the zero point, and the low level shall last more than 7 seconds.The calibration of zero point is 400 ppm, Please ensure that the sensor is stable for more than 20 minutes at 400ppm.
For any questions, advice or cool ideas to share, please visit the DFRobot Forum.

More Documents

DFshopping_car1.png Shopping from <Gravity: Analog Infrared CO2 Sensor For Arduino or DFRobot Distributor.

Turn to the Top