Professional Documents
Culture Documents
Contents
1 Introduction
2 How it works?
3 Specification
4 Connection
5 Tutorial
5.1 Connection Diagram
5.2 Sample Code
5.3 Result pm2.5 laser dust Sensor
6 Communication protocol
7 Dimensions
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 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?
The 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
Basic Feature
1 de 6
PM2.5 laser dust sensor SKU:SEN0177 - Robot Wiki https://www.dfrobot.com/wiki/index.php?title=PM2.5_laser_dust_senso...
Connection
Sensor Arduino
Function Description
Pin Pin
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)
Transferring serial port pin (3.3V
Pin 5 TXD
level)
Pin 6 RESET Reset
Pin 7/ 8 NC NUll
NOTE:
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 IO expansion boards you can download the code and plug PM2.5 sensor adapter to IO expansion board, and you can use the
serial to monitor PM2.5, PM1.0 and PM10 of the data. Because the laser PM2.5 sensor uses serial communication and DFRobot UNO R3 is
only one independent serial ports, so you need to download arduino code and then plug the sensor , otherwise the program will have
downloading problems.
2 de 6
PM2.5 laser dust sensor SKU:SEN0177 - Robot Wiki https://www.dfrobot.com/wiki/index.php?title=PM2.5_laser_dust_senso...
If you have no IO expansion board and can follow the wiring diagram below to download the code.
Sample Code
NOTE:
This sketch below is for UNO, Bluno etc, if you use Leonardo which use Serial1 instead of Serial to communicate with the PM2.5
module, please open the sample sketch in the download library: "PM2_5SensorDemo.ino";
Arduino Version suggested to be Arduino 1.0 (recommend 1.0.6), other version would not be compatible to run the library.
?
1 /******************************
2 *Copyright (c) 2015, DFRobot
3 *All rights reserved
4 *
5 *File Name:PM2_5SensorDemo.ino
6 *Fileid:
7 *Abstract :Read value of PM1,PM2.5 and PM10 of air quality
8 *
9 *Version:V1.0
10 *Author:Joyce
11 *Time:2015.2.22
12 ******************************/
13
3 de 6
PM2.5 laser dust sensor SKU:SEN0177 - Robot Wiki https://www.dfrobot.com/wiki/index.php?title=PM2.5_laser_dust_senso...
#include "Arduino.h"
14
#include "serialReadPMValue.h"
15
16
uint16_t PM01Value=0; //define PM1.0 value of the air detector module
17
uint16_t PM2_5Value=0; //define PM2.5 value of the air detector module
18
uint16_t PM10Value=0; //define PM10 value of the air detector module
19
20
#define receiveDatIndex 32
21
uint8_t receiveDat[receiveDatIndex]; //receive data from the air detector module
22
23
24
void setup() {
25
Serial.begin(9600); //set the serial1's Baudrate of the air detector module
26
}
27
28
void loop(){
29
int length = serialRead(Serial,receiveDat,receiveDatIndex,5);
30
int checkSum=checkValue(receiveDat,receiveDatIndex);
31
32
if(length&&checkSum) {
33
PM01Value=transmitPM01(receiveDat); //count PM1.0 value of the air detector module
34
PM2_5Value=transmitPM2_5(receiveDat);//count PM2.5 value of the air detector module
35
PM10Value=transmitPM10(receiveDat); //count PM10 value of the air detector module
36
}
37
static unsigned long OledTimer=millis(); //every 0.5s update the temperature and humidity from DHT11
38
sensor
39
if (millis() - OledTimer >=1000) {
40
OledTimer=millis();
41
42
Serial.print("PM1.0: "); //send PM1.0 data to bluetooth
43
Serial.print(PM01Value);
44
Serial.println(" ug/m3");
45
46
Serial.print("PM2.5: "); //send PM1.0 data to bluetooth
47
Serial.print(PM2_5Value);
48
Serial.println(" ug/m3");
49
50
Serial.print("PM10: "); //send PM1.0 data to bluetooth
51
Serial.print(PM10Value);
52
Serial.println(" ug/m3");
53
}
54
}
Result
4 de 6
PM2.5 laser dust sensor SKU:SEN0177 - Robot Wiki https://www.dfrobot.com/wiki/index.php?title=PM2.5_laser_dust_senso...
PM2.5_Result
Communication protocol
Serial port baudrate: 9600; Parity: None; Stop Bits: 1; packet length is fixed at 24 bytes.
5 de 6
PM2.5 laser dust sensor SKU:SEN0177 - Robot Wiki https://www.dfrobot.com/wiki/index.php?title=PM2.5_laser_dust_senso...
Dimensions
6 de 6