Product manual
SPECIFICATION
product name: | Environmental air quality detector |
Model: | MAQ01020406070914-S-P4 |
version: | V1.0 |
Creator: | He Genwen |
reviewed by: | Yuan Chao |
The Environmental Air Quality Detection Module MAQ01020406070914-S-P4 is a digital signal output multi parameter sensor product that integrates temperature, humidity, CO2, PM2.5, PM10, TVOC, and formaldehyde detection. It uses high-performance sensors and control chips, with high accuracy and good stability. The equipment adopts a wide voltage DC12~24V power supply, RS485 signal output, standard Modbus RTU communication protocol, communication address can be set, and baud rate can be changed. Widely used in locomotivesAir conditioning, building HVAC, building energy efficiency, smart home, schools, hospitals, airport stations and other places。
1、 Adopting isolated RS485 circuit for stable communication。
2、 Adopting aluminum alloy shell, suitable for various installation methods。
3、 It can simultaneously measure multiple parameters such as temperature, humidity, CO2, PM2.5, PM10, TVOC, and formaldehyde, and can expand more air quality parameters。
Working temperature range | 0 ~50℃ |
Operating humidity range | 0~95% RH (non condensation) |
Storage temperature range | -40 ~50℃ |
power input | DC 12~24V |
maximum operating current | ≤ 100mA ( DC24V) |
OUTPUT | Modbus RTU, start bit 1, data bit 8, stop bit 1, no parity check, baud rate 9600bps (default) |
Warm-up time | 2 minutes (formaldehyde and TVOC need to be preheated and stabilized, other parameters will be displayed when powered on) |
Installation method | Ceiling installation and wall mounted installation |
Product weight | 465 grams |
Product size | 188.0mm×114.5mm×33.0mm |
4、Detection parameters
Testing items |
detection range |
check the accuracy |
Detection Principle |
temperature | -40~125℃ | ±0.5℃ (@25℃) ,± 1℃ (full scale) |
MEMS devices |
humidity | 0~ 100%RH | ± 3%RH(@25℃ , 30%~80%RH; other±5%RH) |
MEMS devices |
CO2 | 400~5000ppm | ± (75ppm + 5% of reading ) | NDIR Non dispersed infrared sensor |
PM2.5 | 0 ~1000µg/m3 | ± 10%(@100~500μg/m3 ); ± 10μg/m3 (@ 0 ~100μg/m3 ) |
Laser scattering |
PM10 | 0 ~1000µg/m3 | ± 10%(@100~500μg/m3 ); ± 10μg/m3(@ 0 ~100μg/m3 ) |
Laser scattering |
TVOC | 0 ~2000ppb | ± 30%FS@25℃ |
semiconductor gas sensor |
formaldehyde | 0 ~1000ppb | ± 15%FS@25℃ |
Fuel cell sensors |
notes:
1、The above detection accuracy was measured under the following environmental conditions: temperature of 25 ℃, relative humidity of 50% RH, and 1 atmospheric pressure. The maximum test item to be tested does not exceed the detection range.
2、In order to continuously improve the product, our company reserves the right to change the design features and specifications.
1、 +12~24V;
2、GND;
3、 RS485A;
4、 RS485B;
5、GND1;
When wiring a circuit, connect the wires to the wiring terminals to ensure that the wiring is correct and firm。
1. Preheat for at least 2 minutes when using power on.
2. Install the module in the location where it needs to be tested, away from heat sources.
3. Do not place the module in high concentration organic gases or corrosive gases for a long time.
4. Do not install the module for use in strong convective gas environments.
5. Avoid large dust particles such as ground dust, floating debris, and even flocculent pollution that may cause fan entanglement and obstruction.
6. Do not disassemble the sensor to prevent irreversible damage.
7. The RS485 communication line requires shielded twisted pair cables, and if necessary, two 250 Ω terminals with matching resistors are required.
8. The usage environment should be free of conductive dust, corrosive metals, and gases that damage insulation, avoiding direct sunlight and rain.
9. Avoid placing the module in a salt spray, acidic or oxidizing gas environment (such as sulfur dioxide, hydrochloric acid, etc.).
8. RS485 communication protocol
1. Overview
The communication protocol provides a detailed description of the input and output commands, information, and data of the environmental air quality detection module for third-party use and development.
This product adopts a standard serial RS485 communication interface, and the information transmission method is asynchronous. The start bit is 1 bit, the data bit is 8 bits, and the stop bit is 1 bit. There is no parity check (switching through instructions); The baud rate is 9600bps (default) and can be modified through instructions; The default factory address value for the device is 01, and the range of address values that can be set is 01 to 255; The terminal resistance can be configured to 120 ohms, and can be switched to 120 ohms in the form of a toggle switch.
2. Detailed communication protocol
2.1 Communication methods
(1) All loop communication should follow the master/slave mode, and data should be transmitted between the master and slave stations.
(2) If the master station or any slave station receives a package containing an unknown command, the package will be ignored and the receiving station will not respond.
2.2 Return data frame structure description
address | function code | data quantity | data 1 |
...... | data n | CRCL CRCH |
3、transport format
3.1 Host sends read address command (one-to-one):
Address | function code | Register address high bit | Register address low bit | Number of data high-order | Low order number of data | CRC 16 bit check |
00 | 03 | 01 | 00 | 00 | 01 | 84 27 |
Slave return address:
Address | function code | byte length | Address high bits | Address low bit | CRC16 bit check |
00 | 03 | 02 | 00 | xx | CRCL CRCH |
Example:
Host sending: 00 03 01 00 00 01 84 27
Slave response: 00 03 02 00 address CRCL CRCH; If the address is 2, the read sensor address is 2
3.2 Host sends read data command:
address | function code | High bits of data address | Low bit of data address | Number of data high-order | Low order number of data | CRC 16 bit check |
xx | 03 | 00 | 02 | 00 | 07 | CRCL CRCH |
At present, only simultaneous reading of all data is supported, starting from address 0x0002, reading 7 data values. 7 sensor data correspond to 7 sensor addresses, and the high bit of the starting address is always 0, while the high bit of the number of returned data is always 0.
Slave return value:
Return Format:
Slave address | function code | Number of data | data N0~N13 | CRC 16 bit check |
xx | 03 | 0E | xx | CRCL CRCH |
Return data content:
N0 | N1 | N2 | N3 | N4 | N5 | N6 | N7 | N8 | N9 | N10 | N11 | N12 | N13 |
CO2 high-order | CO2 Low position | Formaldehyde high order | formaldehyde Low position | TVOC high-order | TVOC Low position | PM2.5 high-order | PM2.5 Low position | PM10 high-order | PM10 Low position | humidity high-order | humidity Low position | humidity high-order | humidity Low position |
Example:
Host sending: 01 03 00 02 00 07 CRCL CRCH
Slave response: 01 03 0E 02 26 00 26 00 34 00 0E 00 11 00 FF 03 11 CRCL CRCH
Note: Data return calculation
1. CO2 data: 0x0226, corresponding to a decimal value of 550, indicating a CO2 concentration of 550ppm;
2. Formaldehyde data: 0x0026, corresponding to a decimal system of 38, indicating a formaldehyde concentration of 38 ppb;
3. TVOC data: 0x0034, corresponding to decimal 52, indicating a TVOC concentration of 52 ppb;
4. PM2.5 data: 0x000E, corresponding to decimal 14, indicating a PM2.5 particle concentration of 14ug/m ³;
5. PM10 data: 0x0011, corresponding to decimal 17, indicating a PM10 particle concentration of 17ug/m ³;
6. Temperature data: 0x00FF, corresponding to decimal 255, represents a temperature of 25.5 ℃ (negative temperature is represented by complement);
7. Humidity data: 0x0311, corresponding to decimal 785, indicating a humidity of 78.5% RH;
3.3 Set Address Command (one-on-one):
This command can set the address of the slave, with address values ranging from 01 to 255 (factory default is 01).
Host sends instructions:
address | function code | High order of storage address | Register address low bit | High bit of slave address | Low bit of slave address | CRC 16 bit check |
00 | 06 | 01 | 00 | 00 | xx | CRCL CRCH |
Slave response:
address | function code | Number of data bytes | High bit of slave address | Low bit of slave address | CRC 16 bit check |
00 | 06 | 02 | 00 | xx | CRCL CRCH |
Example:
Host sending: 00 06 01 00 00 address CRCL CRCH
Slave response: 00 06 02 00 address CRCL CRCH
If the address is 2, set the slave address to 2; After receiving a response from the slave, the host successfully set the address.
3.4 Setting Baud Rate
The default baud rate of this product is 9600bps, and the available updated baud rates (in bps) include 4800, 9600, 11400, 19200, 38400, 57600, and 115200; These baud rates correspond to 1, 2, 3, 4, 5, 6, and 7 in the instruction.
Set baud rate format:
address | function code | High bits of data address | Low bit of data address | Number of data high-order | Low order number of data | CRC 16 bit check |
xx | 06 | 00 | FD | 00 | xx | CRCL CRCH |
Example:
Host sending: 01 06 00 FD 00 04 CRCL CRCH
Slave response: None
Change the baud rate of the device with address 01 to 04, that is, change the baud rate to 19200.
3.5 Switching formats without checksum and even verification
address | function code | High bits of data address | Low bit of data address | Number of data high-order | Low order number of data | CRC 16 bit check |
xx | 06 | 00 | FE | 00 | 00/01 | CRCL CRCH |
00: represents no checksum, 01 represents even checksum
Example:
Host sending: 01 06 00 FE 00 01 CRCL CRCH
Slave response: None
Change the verification method of the device with address 01 to even verification.
4. Host data sampling frequency:
The interval between reading data from the upper computer should not be less than 500ms, with a recommended value of 1s or more.
5. CRC verification reference:
unsigned int GetCRC16(unsigned char *ptr, unsigned char len)
{
unsigned int index;
unsigned char crch = 0xFF; //High CRC bytes
unsigned char crcl = 0xFF; //Low CRC byte
unsigned char code TabH[] = { //CRC High byte value table
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
} ;
unsigned char code TabL[] = { //CRC Low byte value table
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,
0x11, 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 (len--) //Calculate the specified length CRC
{
index = crch ^ *ptr++;
crch = crcl ^ TabH[ index];
crcl = TabL[ index];
}
return ((crch<<8) | crcl);
}
phone:0755-26588758 15013668479(倪先生) 13922884770(王先生)
fax:0755-26747274
mailbox:info@source-sensor.com
address:East 3rd Floor, Building 15, Majialong Industrial Zone, Nantou Street, Nanshan District, Shenzhen
Copyright©2002-2023 Yuanjian Sensing Technology . All Rights Reserved Copyright 粤ICP备17008245号-5 technical support:图页网 Website Map xml Website Map html