PM2.5 GP2Y1010AU0F Dust Smoke Particle Sensor

  • 🌫️ GP2Y1010AU0F optical dust sensor for smoke/PM detection
  • 📈 Analog output—easy reading with Arduino/MCU ADC
  • 🔦 Uses IR LED + phototransistor to sense particles
  • ⚡ Low power operation—great for portable air monitors
  • 🎯 Sensitive to dust, smoke, and fine airborne particles
  • 🧩 Ideal for air quality monitors, purifiers, and HVAC projects
  • 🛠️ Simple interface with LED control + analog signal pin
  • ✅ Popular sensor for DIY air pollution detection builds
SKU: aa0243 Categories: , Tags: ,

Apple Shopping Event

Hurry and get discounts on all Apple devices up to 20%

80,00 EGP

2 People watching this product now!

Payment Methods:

Description

This PM2.5 GP2Y1010AU0F Dust Smoke Particle Sensor is an infrared emitting diode (IRED) and a phototransistor are diagonally arranged into this device. It detects the reflected light of dust in the air. Especially, it is effective to detect very fine particle like the cigarette smoke. In addition, it can distinguish smoke from house dust by the pulse pattern of the output voltage.

The module is mainly used for dust removal equipment alarm equipment, air purification equipment, dust robots, fire alarm, etc. industry equipment can detect smoke particles, pollen spores, and other particles.

Applications:

1. Detecting of dust in the air.
2. Example: Air purifier, Air conditioner, the Air monitor.


Features :

  1. Compliant with RoHS directive (2002/95/EC)
  2. Compact, thin package (46.0 × 30.0 × 17.6 mm)
  3. Low consumption current (Icc: MAX. 20 mA)
  4. The presence of dust can be detected by the photometry of only one pulse
  5. Enable to distinguish smoke from house dust
  6. Lead-free and RoHS directive compliant

Package Includes :

1 x PM2.5 GP2Y1010AU0F Dust Smoke Particle Sensor.
1 x Connecting cable.
1x 150 Ω resistor.
1 x 220 μF capacitor.

🔌
Pin Connections
1 Table
Pin Connections Table 1
BoardSensor PinConnection
GP2Y1010AU0FVCC/GND/LED/AOUT5V / GND / board digital pin (via 150 ohm resistor + 220uF cap per datasheet) / board analog pin
📟
PM2.5 GP2Y1010AU0F Dust Smoke Particle Sensor
7 Examples • C/C++ | Boards: Arduino Uno, Arduino Nano, Arduino Mega, ESP32, ESP8266, STM32, Raspberry Pi Pico
PM2.5 GP2Y1010AU0F Dust Smoke Particle Sensor - Arduino Uno
PM2.5 GP2Y1010AU0F Dust Smoke Particle Sensor - Arduino Nano
PM2.5 GP2Y1010AU0F Dust Smoke Particle Sensor - Arduino Mega
PM2.5 GP2Y1010AU0F Dust Smoke Particle Sensor - ESP32
PM2.5 GP2Y1010AU0F Dust Smoke Particle Sensor - ESP8266
PM2.5 GP2Y1010AU0F Dust Smoke Particle Sensor - STM32
PM2.5 GP2Y1010AU0F Dust Smoke Particle Sensor - Raspberry Pi Pico
📄 File: pm2.5_gp2y1010au0f_dust_smoke_particle_sensor_-_arduino_uno.inoArduino Uno
963 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// LED-drive pin 2, analog out A0 on Arduino Uno
6#define LED_PIN 2
7#define AOUT_PIN A0
8
9void setup() {
10 Serial.begin(115200);
11 pinMode(LED_PIN, OUTPUT);
12 digitalWrite(LED_PIN, HIGH); // module's internal IR LED is active-LOW - idle it off between samples
13}
14
15void loop() {
16 digitalWrite(LED_PIN, LOW); // turn the IR LED on
17 delayMicroseconds(280);
18 int raw = analogRead(AOUT_PIN); // sample while the LED is on
19 delayMicroseconds(40);
20 digitalWrite(LED_PIN, HIGH); // turn the IR LED back off
21 delayMicroseconds(9680); // completes the ~10ms duty cycle the datasheet specifies
22
23 float voltage = raw * 5.0 / 1023.0;
24 float dustDensity = (voltage - 0.6) / 5.0 * 1000.0; // approximate datasheet formula, ug/m3 (needs real calibration)
25
26 Serial.print("Dust density (approx): "); Serial.print(dustDensity > 0 ? dustDensity : 0); Serial.println(" ug/m3");
27 delay(1000);
28}
📄 File: pm2.5_gp2y1010au0f_dust_smoke_particle_sensor_-_arduino_nano.inoArduino Nano
964 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// LED-drive pin 2, analog out A0 on Arduino Nano
6#define LED_PIN 2
7#define AOUT_PIN A0
8
9void setup() {
10 Serial.begin(115200);
11 pinMode(LED_PIN, OUTPUT);
12 digitalWrite(LED_PIN, HIGH); // module's internal IR LED is active-LOW - idle it off between samples
13}
14
15void loop() {
16 digitalWrite(LED_PIN, LOW); // turn the IR LED on
17 delayMicroseconds(280);
18 int raw = analogRead(AOUT_PIN); // sample while the LED is on
19 delayMicroseconds(40);
20 digitalWrite(LED_PIN, HIGH); // turn the IR LED back off
21 delayMicroseconds(9680); // completes the ~10ms duty cycle the datasheet specifies
22
23 float voltage = raw * 5.0 / 1023.0;
24 float dustDensity = (voltage - 0.6) / 5.0 * 1000.0; // approximate datasheet formula, ug/m3 (needs real calibration)
25
26 Serial.print("Dust density (approx): "); Serial.print(dustDensity > 0 ? dustDensity : 0); Serial.println(" ug/m3");
27 delay(1000);
28}
📄 File: pm2.5_gp2y1010au0f_dust_smoke_particle_sensor_-_arduino_mega.inoArduino Mega
964 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// LED-drive pin 2, analog out A0 on Arduino Mega
6#define LED_PIN 2
7#define AOUT_PIN A0
8
9void setup() {
10 Serial.begin(115200);
11 pinMode(LED_PIN, OUTPUT);
12 digitalWrite(LED_PIN, HIGH); // module's internal IR LED is active-LOW - idle it off between samples
13}
14
15void loop() {
16 digitalWrite(LED_PIN, LOW); // turn the IR LED on
17 delayMicroseconds(280);
18 int raw = analogRead(AOUT_PIN); // sample while the LED is on
19 delayMicroseconds(40);
20 digitalWrite(LED_PIN, HIGH); // turn the IR LED back off
21 delayMicroseconds(9680); // completes the ~10ms duty cycle the datasheet specifies
22
23 float voltage = raw * 5.0 / 1023.0;
24 float dustDensity = (voltage - 0.6) / 5.0 * 1000.0; // approximate datasheet formula, ug/m3 (needs real calibration)
25
26 Serial.print("Dust density (approx): "); Serial.print(dustDensity > 0 ? dustDensity : 0); Serial.println(" ug/m3");
27 delay(1000);
28}
📄 File: pm2.5_gp2y1010au0f_dust_smoke_particle_sensor_-_esp32.inoESP32
957 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// LED-drive pin 4, analog out 34 on ESP32
6#define LED_PIN 4
7#define AOUT_PIN 34
8
9void setup() {
10 Serial.begin(115200);
11 pinMode(LED_PIN, OUTPUT);
12 digitalWrite(LED_PIN, HIGH); // module's internal IR LED is active-LOW - idle it off between samples
13}
14
15void loop() {
16 digitalWrite(LED_PIN, LOW); // turn the IR LED on
17 delayMicroseconds(280);
18 int raw = analogRead(AOUT_PIN); // sample while the LED is on
19 delayMicroseconds(40);
20 digitalWrite(LED_PIN, HIGH); // turn the IR LED back off
21 delayMicroseconds(9680); // completes the ~10ms duty cycle the datasheet specifies
22
23 float voltage = raw * 3.3 / 4095.0;
24 float dustDensity = (voltage - 0.6) / 5.0 * 1000.0; // approximate datasheet formula, ug/m3 (needs real calibration)
25
26 Serial.print("Dust density (approx): "); Serial.print(dustDensity > 0 ? dustDensity : 0); Serial.println(" ug/m3");
27 delay(1000);
28}
📄 File: pm2.5_gp2y1010au0f_dust_smoke_particle_sensor_-_esp8266.inoESP8266
961 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// LED-drive pin D4, analog out A0 on ESP8266
6#define LED_PIN D4
7#define AOUT_PIN A0
8
9void setup() {
10 Serial.begin(115200);
11 pinMode(LED_PIN, OUTPUT);
12 digitalWrite(LED_PIN, HIGH); // module's internal IR LED is active-LOW - idle it off between samples
13}
14
15void loop() {
16 digitalWrite(LED_PIN, LOW); // turn the IR LED on
17 delayMicroseconds(280);
18 int raw = analogRead(AOUT_PIN); // sample while the LED is on
19 delayMicroseconds(40);
20 digitalWrite(LED_PIN, HIGH); // turn the IR LED back off
21 delayMicroseconds(9680); // completes the ~10ms duty cycle the datasheet specifies
22
23 float voltage = raw * 3.3 / 1023.0;
24 float dustDensity = (voltage - 0.6) / 5.0 * 1000.0; // approximate datasheet formula, ug/m3 (needs real calibration)
25
26 Serial.print("Dust density (approx): "); Serial.print(dustDensity > 0 ? dustDensity : 0); Serial.println(" ug/m3");
27 delay(1000);
28}
📄 File: pm2.5_gp2y1010au0f_dust_smoke_particle_sensor_-_stm32.inoSTM32
963 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// LED-drive pin PB4, analog out PA0 on STM32
6#define LED_PIN PB4
7#define AOUT_PIN PA0
8
9void setup() {
10 Serial.begin(115200);
11 pinMode(LED_PIN, OUTPUT);
12 digitalWrite(LED_PIN, HIGH); // module's internal IR LED is active-LOW - idle it off between samples
13}
14
15void loop() {
16 digitalWrite(LED_PIN, LOW); // turn the IR LED on
17 delayMicroseconds(280);
18 int raw = analogRead(AOUT_PIN); // sample while the LED is on
19 delayMicroseconds(40);
20 digitalWrite(LED_PIN, HIGH); // turn the IR LED back off
21 delayMicroseconds(9680); // completes the ~10ms duty cycle the datasheet specifies
22
23 float voltage = raw * 3.3 / 4095.0;
24 float dustDensity = (voltage - 0.6) / 5.0 * 1000.0; // approximate datasheet formula, ug/m3 (needs real calibration)
25
26 Serial.print("Dust density (approx): "); Serial.print(dustDensity > 0 ? dustDensity : 0); Serial.println(" ug/m3");
27 delay(1000);
28}
📄 File: pm2.5_gp2y1010au0f_dust_smoke_particle_sensor_-_raspberry_pi_pico.inoRaspberry Pi Pico
969 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// LED-drive pin 2, analog out 26 on Raspberry Pi Pico
6#define LED_PIN 2
7#define AOUT_PIN 26
8
9void setup() {
10 Serial.begin(115200);
11 pinMode(LED_PIN, OUTPUT);
12 digitalWrite(LED_PIN, HIGH); // module's internal IR LED is active-LOW - idle it off between samples
13}
14
15void loop() {
16 digitalWrite(LED_PIN, LOW); // turn the IR LED on
17 delayMicroseconds(280);
18 int raw = analogRead(AOUT_PIN); // sample while the LED is on
19 delayMicroseconds(40);
20 digitalWrite(LED_PIN, HIGH); // turn the IR LED back off
21 delayMicroseconds(9680); // completes the ~10ms duty cycle the datasheet specifies
22
23 float voltage = raw * 3.3 / 4095.0;
24 float dustDensity = (voltage - 0.6) / 5.0 * 1000.0; // approximate datasheet formula, ug/m3 (needs real calibration)
25
26 Serial.print("Dust density (approx): "); Serial.print(dustDensity > 0 ? dustDensity : 0); Serial.println(" ug/m3");
27 delay(1000);
28}
Optical dust/smoke density sensor - pulses an internal IR LED and samples during the pulse.

Specification

Specification

WeightWeight6 g
Dimensions3 × 2 × 1 cm
Product NameGP2Y1010AU0F Dust / Smoke Particle Sensor (PM2.5)
CategorySensor → Dust / Air Quality
Sensor TypeOptical Dust Sensor (IR LED + phototransistor)
DetectsDust / Smoke Particles (PM)
Output TypeAnalog Voltage Output
Supply Voltage5 V
LED DrivePulsed LED control required (recommended)
InterfaceAnalog (to ADC)
ResponseFast particle detection (module/system dependent)
Mounting TypeThrough Hole / Module (variant-dependent)
ApplicationsPM2.5 monitoring, air quality projects, dust/smoke detection systems

Customer Reviews