-
E-mail
319059197@qq.com
-
Phone
15013668479
-
Address
East 3rd Floor, Building 15, Majialong Industrial Zone, Nantou Street, Nanshan District, Shenzhen
Shenzhen Yuanjian Sensing Technology Co., Ltd
319059197@qq.com
15013668479
East 3rd Floor, Building 15, Majialong Industrial Zone, Nantou Street, Nanshan District, Shenzhen
Product manual

product specification

|
Product Name: |
Carbon dioxide sensor |
|
Product model: |
MQC02-1 |
|
edition: |
V1.0 |
|
Developed by: |
He Genwen |
|
Reviewer: |
Yuan Chao |
MQCO2-1 is a carbon dioxide sensor based on the principle of non spectral band infrared absorption, which can detect the concentration of carbon dioxide in the air in real time. It has the characteristics of self calibration, small size, superior performance, good consistency, and no oxygen dependence. This product has built-in temperature compensation and two communication methods: serial port output and PWM output, which are convenient to use.

This product is widely used in related fields such as air quality detectors, air purification equipment, fresh air systems, air conditioning control, smart homes, IoT environmental information collection, agricultural production, and cold chain transportation.
|
Range of measurement |
400~5000ppm |
|
accuracy |
± (50ppm+5% * reading) |
|
communication interface |
URAT_TTL(3.3V) PWM(3.3V) |
|
resolution |
1ppm |
|
response time |
Less than 20 seconds |
|
Data update time |
4s |
|
Warm-up time |
Less than 25 seconds (operable) Less than 2 minutes (90% accuracy) Less than 10 minutes (maximum accuracy) |
|
Supply Voltage |
DC (5.0±0.5)V |
|
Working current |
Average less than 70mA, peak less than 150mA |
|
working conditions |
-10 ℃~+50 ℃, 0~95% RH, no condensation |
|
Storage conditions |
-30~+70 ℃, 0~95% RH, no condensation |
|
Product Life |
More than 5 years |
|
Product size |
32.5mm×22.2mm×19.7mm(L*W*H) |
|
Pin Pitch |
2.54mm |

32.5mm × 22.2mm × 19.7mm (L * W * H), tolerance ± 0.3mm

|
Serial Number |
name |
describe |
|
1 |
NC |
reserve |
|
2 |
RX |
Serial port end (circuit board serial port receiving end) |
|
3 |
TX |
Serial port end (circuit board serial port sending end) |
|
4 |
NC |
reserve |
|
5 |
NC |
reserve |
|
6 |
+5V |
Power input terminal (+5V terminal) |
|
7 |
GND |
Power input terminal (ground terminal) |
|
8 |
NC |
reserve |
|
9 |
PWM |
Pulse Width Modulation |
1. Serial port configuration: 9600 baud rate, 8 data bits, 1 stop bit, no parity check;
2. Method of receiving host commands:
1) Receive host command: FE 04 00 03 00 01 D5 C5;
Response response data: FE 04 02 01 E5 6D 3F; Among them, FE 04 02 represents the response data frame header, 01 E5 represents the carbon dioxide concentration of 485ppm, and 6D 3F is the CRC check data;
2) Receiving host commands: 64 69 03 5E 4E;
Response response data: 64 69 03 01 0A 02 00 00 00 00 00 00 9B F0; Among them, 64 69 03 01 represents the response data frame header, 0A 02 represents the carbon dioxide concentration, 02 is the high bit, 0A is the low bit, i.e. 20A, representing 522ppm, and 9B F0 is the CRC check data;
3) Receive host command: 11 01 01 ED
Response response data: 16 05 01 02 06 00 DC; where FE 16 05 01 represents the response data frame header, 02 06 represents the carbon dioxide concentration of 518ppm;
3. CRC calculation
uint16_t CO2ModbusComm::modbus_calcuCRC(uint8_t *dataarray, uint16_t datalen)
{
uint8_t uchCRCHi = 0xFF ; /*High byte initialization of CRC*/
uint8_t uchCRCLo = 0xFF ; /*Low byte initialization of CRC*/
uint16_t uIndex ; /*CRC query table index*/
uint16_t crc;
const uint8_t auchCRCHi[] = {
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81,
0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
0x40
};
const uint8_t auchCRCLo[] = {
0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4,
0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09,
0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD,
0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,
0x1 1, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7,
0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A,
0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE,
0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,
0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2,
0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F,
0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB,
0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,
0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91,
0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,
0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88,
0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80,
0x40
};
While (datalen --)/* completes the entire message buffer*/
{
uIndex = uchCRCLo ^ *dataarray++; /*Calculate CRC*/
uchCRCLo = uchCRCHi ^ auchCRCHi[uIndex];
uchCRCHi = auchCRCLo[uIndex];
}
crc = (uint16_t)uchCRCHi *256;
crc += (uint16_t)uchCRCLo;
return crc;
|
cycle |
1004ms±5% |
|
Central cycle |
1000ms±5% |
|
The calculation formula for obtaining the current CO2 concentration value through PWM is Cppm=5000 × (TH-2ms)/(TH+TL-4ms) |
|
|
Cppm is the calculated CO2 concentration value, measured in ppm TH is the time during which the output is at a high level in one output cycle TL is the time during an output cycle when the output is at a low level |
|
|
|
|
This product uses NDIR technology, and requires a relatively large current during the period when the bulb is lit. It is recommended that the power supply current be greater than 300mA.
From the condensation state to the non condensation state, the system can return to normal working condition within 2 hours.
Please try to avoid vibration as long as possible. Prolonged exposure to vibration, falling, or welding may result in decreased measurement accuracy of the sensor. If severe vibrations or drops occur, it is necessary to verify the accuracy of the product.
Do not use for a long time in environments with high dust density.
Avoid long-term use in acidic, alkaline, and strongly oxidizing gas environments containing HF, H2S, SO2, HCL, NOX, NH3, PH3, CL2, F2, O3, H2O2, etc.
Avoid applying external forces in any direction to the casing, as it may affect the performance of the sensor and potentially cause damage
Do not touch directly, make sure the operator wears a static discharge wristband.
The shell of this product is not grounded. For applications that require high ESD protection, please contact the manufacturer's technical support