Introduction
PM2.5 laser dust sensor is a digital universal particle concentration sensor,it can be used to obtain the number of suspended particulate matter in a unit volume of air within 0.3 to 10 microns, namely the concentration of particulate matter, and output with digital interface, also can output quality data of per particle. The Air Quality sensors can be embedded in a variety of concentrations of environment-related instruments suspended particulate matter in the air,to provide timely and accurate concentration data.
How it works?
This pm2.5 sensor uses a laser scattering theory. And namely the scattering of laser irradiation in the air suspended particles, while collecting the scattered light at a specific angle, to obtain the scattering intensity versus with time curve. After the microprocessor data collection, get the relationship between the time domain and frequency domain by Fourier transform, and then through a series of complex algorithms to obtain the number of particles in the equivalent particle size and volume units of different size. Each functional block diagram of the sensor portion as shown:

Specification
- Operating voltage: 4.95 ~ 5.05V
- Maximum electric current: 120mA
- Measuring pm diameter: 0.3-1.0, 1.0-2.5, 2.5-10(um)
- Measuring pm range:0~999 ug/m3
- Standby current: ≤200 uA
- Response time: ≤10 s
- Operating temperature range: -20 ~ 50C
- Operating humidity range: 0 ~ 99% RH
- Maximum size: 65 × 42 × 23 (mm)
- MTBF: >= 5 years
- Quick response
- Standard serial input word output
- Second-order multi-point calibration curve
- The minimum size of 0.3 micron resolution
Power supply quality requirements:
- Voltage ripple: less than 100mV.
- The power supply voltage stability: 4.95 ~ 5.05V.
- Power supply: more than 1W (5V@200mA).
- The upper and lower electric voltage surge is less than 50% of the system power supply voltage.
Connection

Sensor Pin | Arduino Pin | Function Description |
---|---|---|
Pin 1 | VCC | Positive Power |
Pin 2 | GND | Negative Power |
Pin 3 | SET | Mode setting (More hereof later) |
Pin 4 | RXD | receive serial port pin (3.3V level) |
Pin 5 | TXD | Transferring serial port pin (3.3V level) |
Pin 6 | RESET | Reset |
Pin 7/ 8 | NC | NUll |
*SET: * SET = 1, the module works in continuous sampling mode, it will upload the sample data after the end of each sampling. (The sampling response time is 1S) SET = 0, the module enters a low-power standby mode. RESET: leave it empty is OK.
Tutorial
Connection Diagram
If you have an IO expansion shield, you can simply insert the PM2.5 sensor adapter onto it, and you can use the serial to monitor the data.

If you have no IO expansion shield, you can follow the wiring diagram to do wiring.

Sample Code
NOTE: This code can only be verified in ArduinoIDE 1.6.x or above.
Use with Arduino Software Serial

NOTE: The following codes are for using Software Serial.
Expected Results
Please wait 30s for the data.

Communication protocol
Serial port baudrate: 9600; Parity: None; Stop Bits: 1; packet length is fixed at 32 bytes.
Start Character 1 | 0x42(fixed bit) |
Start Character 2 | 0x4d(fixed bit) |
Frame Length 16-byte | Frame Length = 2*9+2 (data+check bit) |
Data 1, 16-byte | concentration of PM1.0, ug/m3 |
Data 2, 16-byte | concentration of PM2.5, ug/m3 |
Data 3, 16-byte | concentration of PM10.0, ug/m3 |
Data 4, 16-byte | Internal test data |
Data 5, 16-byte | Internal test data |
Data 6, 16-byte | Internal test data |
Data 7, 16-byte | the number of particulate of diameter above 0.3um in 0.1 liters of air |
Data 8, 16-byte | the number of particulate of diameter above 0.5um in 0.1 liters of air |
Data 9, 16-byte | the number of particulate of diameter above 1.0um in 0.1 liters of air |
Data 10, 16-byte | the number of particulate of diameter above 2.5um in 0.1 liters of air |
Data 11, 16-byte | the number of particulate of diameter above 5.0um in 0.1 liters of air |
Data 12, 16-byte | the number of particulate of diameter above 10.0um in 0.1 liters of air |
Data 13, 16-byte | Internal test data |
Check Bit for Data Sum, 16-byte | Check Bit = Start Character 1 + Start Character 2 + ...all data |
Dimensions

FAQ
Q&A | Some general Arduino Problems/FAQ/Tips |
---|---|
A | For any questions, advice or cool ideas to share, please visit the DFRobot Forum. |