Zbotic Logo Zbotic Logo
  • Home
  • Shop
  • Sale
  • 3D Print Service
  • PCB Service
  • B2B
  • Blogs
  • Contact Us
0 0

View Wishlist Add all to cart

0 0
0 Shopping Cart
Shopping cart (0)
Subtotal: ₹0.00

View cartCheckout

  • Shop
  • About Us
  • Contact Us
  • Reseller
  • Blogs
020 69134444
1800 209 0998
[email protected]
Help Desk
Facebook Twitter Instagram Linkedin YouTube
Zbotic Logo Zbotic Logo
0 0

View Wishlist Add all to cart

0 0
0 Shopping Cart
Shopping cart (0)
Subtotal: ₹0.00

View cartCheckout

All departments
  • 3D Print Service
  • 3D Printer
  • Batteries & Chargers
  • Development Boards
  • Drone Parts
  • EBike parts
  • Sensor Modules
  • Electronic Components
  • Electronic Modules
  • IoT and Wireless
  • Mechanical Parts and Workbench Tools
  • Motors & Drivers & Pumps & Actuators
  • DIY and Robot Kits
  • Show more
  • Home
  • Shop
  • Sale
  • 3D Print Service
  • PCB Service
  • B2B
  • Blogs
  • Contact Us
Return to previous page
Home Sensors & Modules

Dust Particle Sensor GP2Y1010AU0F: Air Quality Measurement with Arduino

Dust Particle Sensor GP2Y1010AU0F: Air Quality Measurement with Arduino

March 11, 2026 /Posted byJayesh Jain / 0

Air pollution is an invisible health threat, and in Indian cities fine dust particles are among the most harmful pollutants. The Sharp GP2Y1010AU0F is an optical dust sensor capable of detecting particulate matter at concentrations as low as 0.1 mg/m³. At under ₹300, it is one of the most affordable air quality sensors available and can be connected directly to an Arduino to build a functional room air quality monitor. This tutorial covers everything from the sensor’s operating principle to a complete Arduino project with LCD display and alerts.

Table of Contents

  1. How the GP2Y1010AU Works
  2. Sensor Specifications
  3. Components Required
  4. Wiring Diagram and Circuit
  5. Arduino Code
  6. Calibration and Voltage-to-Dust Conversion
  7. Understanding Dust Levels and AQI
  8. Project Improvements: Averaging, Logging, Alerts
  9. Related Sensors at Zbotic
  10. Frequently Asked Questions

1. How the GP2Y1010AU Works

The GP2Y1010AU uses a nephelometric optical sensing principle. Inside the sensor body, an infrared LED illuminates a measurement chamber. A phototransistor positioned at 150° to the LED axis detects scattered light. When dust particles pass through the chamber, they scatter the IR beam toward the detector, producing a voltage spike proportional to particle concentration.

The sensing cycle works like this:

  1. The LED is pulsed ON for 0.32 ms (it should NOT be kept on continuously — this causes drift)
  2. After 0.28 ms (allowing the signal to stabilise), the Arduino samples the analog output
  3. The LED turns OFF for the remaining ~10 ms of the cycle
  4. The analog voltage is converted to dust density using the sensor’s characteristic curve

This pulsed operation is critical. The GP2Y1010AU is frequently wired incorrectly with the LED always on, producing saturated and useless readings.

What It Detects

The GP2Y1010AU detects particles greater than approximately 1 µm in diameter. This includes:

  • PM10 dust particles
  • Smoke (tobacco and cooking)
  • Pollen and mould spores
  • Coarse PM2.5 particles

It is not as accurate as dedicated laser-based PM2.5 sensors (like the PMS5003) for fine particle counting. But it gives reliable relative readings for home air quality monitoring and responds visibly to smoke events within seconds.

2. Sensor Specifications

Parameter Value
Supply Voltage (VCC) 5.0 V ± 10%
LED Supply (V-LED) 5.0 V (via 150 Ω resistor)
Output Voltage (clean air) 0.9 V typical
Sensitivity 0.5 V per 0.1 mg/m³
Detection Range 0–0.8 mg/m³
Operating Temperature −10°C to +65°C
LED Pulse Duration 0.32 ms ON, ~10 ms period
Output Analog voltage (0–3.5 V)
Connector 6-pin JST connector

3. Components Required

  • Arduino Uno / Nano / Mega
  • Sharp GP2Y1010AU0F dust sensor
  • 150 Ω resistor (for LED current limiting)
  • 220 µF electrolytic capacitor (decoupling — critical for stable readings)
  • 16×2 LCD with I2C adapter (optional) or OLED display
  • Jumper wires (6-pin JST to dupont, or solder directly)
  • Breadboard

The 150 Ω resistor and 220 µF capacitor are part of the recommended LED drive circuit from the Sharp datasheet. Without the capacitor, the LED current pulse will cause a voltage spike on the 5 V rail that corrupts the analog reading. This is the single most common build mistake.

4. Wiring Diagram and Circuit

The GP2Y1010AU has a 6-pin JST connector. Pin numbering (from the sensor’s flat face, left to right):

Pin # Name Connect to
1 V-LED 5V via 150 Ω resistor; also 220 µF cap from V-LED to GND
2 LED-GND Arduino GND
3 LED (pulse) Arduino Digital Pin 7 (pulse control)
4 S-GND Arduino GND
5 Vout Arduino A0 (analog input)
6 VCC Arduino 5V

Circuit note: Place the 150 Ω resistor between Arduino 5 V and Pin 1 (V-LED). Place the 220 µF capacitor between Pin 1 (after the resistor) and GND, with the positive terminal toward Pin 1.

5. Arduino Code

// Sharp GP2Y1010AU Dust Sensor — Arduino Example
// LED control on Pin 7, analog output on A0

#define DUST_PIN      A0
#define LED_PIN       7
#define SAMPLE_COUNT  20  // average over 20 readings

// Sampling delays per Sharp datasheet
#define LED_ON_DELAY    280   // µs: wait before sampling
#define SAMPLE_DELAY    40    // µs: ADC sample time
#define LED_OFF_DELAY   9680  // µs: LED off time

void setup() {
  Serial.begin(115200);
  pinMode(LED_PIN, OUTPUT);
  digitalWrite(LED_PIN, LOW);
  Serial.println("GP2Y1010AU Dust Sensor Ready");
}

float readDustVoltage() {
  long sum = 0;
  for (int i = 0; i < SAMPLE_COUNT; i++) {
    digitalWrite(LED_PIN, LOW);   // LED ON (active low)
    delayMicroseconds(LED_ON_DELAY);
    int raw = analogRead(DUST_PIN);
    delayMicroseconds(SAMPLE_DELAY);
    digitalWrite(LED_PIN, HIGH);  // LED OFF
    delayMicroseconds(LED_OFF_DELAY);
    sum += raw;
  }
  // Convert ADC counts to voltage (5V reference, 10-bit ADC)
  return (sum / SAMPLE_COUNT) * (5.0 / 1023.0);
}

float voltToDustDensity(float voltage) {
  // Sharp characteristic: 0.5V per 0.1 mg/m3, Voffset ~0.9V
  // dustDensity (mg/m3) = (voltage - 0.9) / 5.0
  if (voltage < 0.9) return 0.0;  // below detection floor
  return (voltage - 0.9) / 5.0;
}

void loop() {
  float voltage = readDustVoltage();
  float dustMgM3 = voltToDustDensity(voltage);
  float dustUgM3 = dustMgM3 * 1000.0;  // convert to µg/m³

  Serial.print("Voltage: ");
  Serial.print(voltage, 3);
  Serial.print(" V  |  Dust: ");
  Serial.print(dustUgM3, 1);
  Serial.println(" µg/m³");

  delay(1000);  // 1-second reading interval
}

Open Serial Monitor at 115200 baud. In clean indoor air you should see values around 10–30 µg/m³. Light smoke (e.g., incense near the sensor) should produce values over 100 µg/m³ within seconds.

6. Calibration and Voltage-to-Dust Conversion

The conversion formula above is based on Sharp’s datasheet typical curve. In practice, your sensor’s zero-point offset (Voffset) may differ slightly from 0.9 V. To calibrate:

  1. Place the sensor in clean outdoor air away from traffic for 10 minutes
  2. Record the average output voltage — this is your Voffset
  3. Update the formula: dustDensity = (voltage - Voffset) / 5.0

For cross-calibration with PM2.5 mass concentration (µg/m³), many researchers apply a correction factor based on particle density assumptions. A commonly used formula from community calibration work:

PM2.5 (µg/m³) ≈ 170 × Vout(V) − 0.1 × 1000

This is an approximation and accuracy varies by particle type. For regulatory-grade monitoring you need a calibrated PM2.5 laser sensor like the PMS5003.

7. Understanding Dust Levels and India AQI

PM2.5 (µg/m³) AQI Category Health Message
0–30 Good Minimal impact on health
31–60 Satisfactory Minor breathing discomfort for sensitive people
61–90 Moderate Breathing discomfort on prolonged exposure
91–120 Poor Breathing discomfort on exertion
121–250 Very Poor Respiratory illness on prolonged exposure
>250 Severe Affects healthy people, serious impact on diseased

8. Project Improvements: Averaging, Logging, Alerts

Moving Average for Stable Readings

Dust density readings fluctuate naturally. Apply a 60-second moving average (60 samples at 1 per second) for stable display values while keeping real-time response for spike detection.

LED RGB Air Quality Indicator

Connect an RGB LED to pins 9, 10, 11 (PWM). Map AQI categories to colours: green (good), yellow (moderate), orange (poor), red (very poor), flashing red (severe). This gives instant visual feedback without looking at the display.

SD Card Data Logging

Add an SD card module to log timestamp, voltage, and dust density every minute. Analyse in Excel or Python to track daily air quality trends in your home or office.

IFTTT / Telegram Alerts via ESP8266

Replace the Arduino with an ESP8266 (Wemos D1 Mini) or add an ESP01 as a serial bridge. When dust exceeds 120 µg/m³, send a Telegram bot message or IFTTT webhook: “Air quality POOR — close windows!”

Combining with MQ-135 Gas Sensor

Add an MQ-135 gas sensor for ammonia, CO2, and VOC detection. The combination of particulate sensing (GP2Y1010AU) + gas sensing (MQ-135) gives a more complete air quality picture and is particularly useful for kitchen or workshop monitoring.

9. Related Sensors at Zbotic

MQ-135 Gas Sensor

MQ-135 Air Quality / Gas Detector Sensor Module for Arduino

Detects NH3, NOx, alcohol, benzene, CO2. Combine with the GP2Y1010AU for a comprehensive indoor air quality monitor covering both particles and gases.

View on Zbotic

MQ-131 Ozone Sensor

MQ-131 Ozone Gas Detection Sensor

Ground-level ozone is a serious pollutant linked to dust events. Add ozone detection to your air quality station for a complete outdoor pollution monitor.

View on Zbotic

DHT11 Humidity Sensor

DHT11 Digital Humidity and Temperature Sensor Module

Humidity and temperature data complement dust readings — high humidity causes dust particles to clump and fall, while low humidity keeps them airborne longer.

View on Zbotic

10. Frequently Asked Questions

Q: Why does my GP2Y1010AU always read 0 or show no change?

The most common causes: (1) The LED control pin polarity is wrong — the LED is active LOW (drive the pin LOW to turn on). (2) Missing 220 µF decoupling capacitor on V-LED — without it, the supply droops during the pulse and corrupts the analog reading. (3) The sampling is not timed correctly — the ADC must sample 280 µs after the LED turns on.

Q: Can I use 3.3 V with the GP2Y1010AU?

Not directly. The sensor is rated for 5 V. At 3.3 V, the LED will be dim and sensitivity drops dramatically. If using a 3.3 V microcontroller (ESP32, ESP8266), power the sensor from a separate 5 V supply and use a voltage divider (2:1) on the analog output pin to scale 5 V → 2.5 V before connecting to the 3.3 V ADC input.

Q: How does the GP2Y1010AU compare to the PMS5003?

The GP2Y1010AU is an analog optical sensor measuring total optical density — it does not give separate PM2.5/PM10 counts. The PMS5003 is a laser-based sensor with a particle counter giving calibrated PM1.0, PM2.5, and PM10 in µg/m³. The PMS5003 is significantly more accurate and suitable for regulatory-grade monitoring; the GP2Y1010AU is better for low-cost relative detection and trend monitoring.

Q: How long does the sensor last?

Sharp specifies the GP2Y1010AU for over 30,000 hours of continuous operation. In practice, the LED does dim slightly over years of use. In heavily polluted environments, dust can accumulate inside the sensing chamber and reduce sensitivity. Occasional gentle cleaning with compressed air helps maintain performance.

Q: Can this sensor detect COVID-19 or viruses?

No. Viruses are typically 0.02–0.3 µm in size — far below the ~1 µm detection threshold of the GP2Y1010AU. This sensor detects coarse particulate matter, not biological agents. No low-cost optical dust sensor can reliably detect airborne viruses.

Build Your Own Air Quality Monitor

Find gas sensors, temperature/humidity modules, and all the components you need for environmental monitoring projects at Zbotic — fast delivery across India.

Shop Air Quality Sensors at Zbotic

Tags: air quality, Arduino, dust sensor, GP2Y1010AU, particle sensor
Share Post
  • Facebook
  • Linkedin
  • Whatsapp
Breadboard Power Supply: Build...
blog breadboard power supply build a 3 3v and 5v rail setup 596250
blog 12v lead acid battery charging circuit basics for beginners 596252
12V Lead Acid Battery Charging...

Related posts

Svg%3E
Read more

Encoder Module: Position and Speed Measurement with Arduino

April 1, 2026 0
A rotary encoder converts the angular position and rotation speed of a shaft into electrical signals that Arduino can count... Continue reading
Svg%3E
Read more

Infrared Obstacle Sensor: Line Follower and Object Detection

April 1, 2026 0
Infrared obstacle sensors are the building blocks of line-following robots, edge detection systems, and proximity triggers. These tiny modules emit... Continue reading
Svg%3E
Read more

Rain Sensor and Raindrop Detection Module: Arduino Guide

April 1, 2026 0
A rain sensor module detects the presence of water droplets on its surface, giving Arduino a simple signal to trigger... Continue reading
Svg%3E
Read more

LiDAR Sensor TFmini: Distance Measurement Beyond Ultrasonic

April 1, 2026 0
When ultrasonic sensors hit their limits — range too short, accuracy too coarse, outdoor sunlight causing interference — LiDAR sensors... Continue reading
Svg%3E
Read more

Pressure Sensor BMP280: Weather Station and Altitude Meter

April 1, 2026 0
The BMP280 barometric pressure sensor by Bosch measures atmospheric pressure with ±1 hPa accuracy and temperature with ±1°C precision. These... Continue reading

Add comment Cancel reply

Your email address will not be published. Required fields are marked

Facebook Twitter Instagram Pinterest Linkedin Youtube

Get the latest deals and more.

Download on Google Play Download on the App Store

Call us: 020 69134444 / 1800 209 0998

Monday - Saturday 09:30 AM - 06:00 PM
For Technical Supports Email: [email protected]
For Sales / Enquiries Email: [email protected]

  • My Account

    • Cart

    • Wishlist

    • Checkout

    • My Orders

    • Track Order

    • My Account

  • Information

    • FAQs

    • Blogs

    • Career

    • About Us

    • Contact Us

    • Payment Options

  • Policies

    • Privacy Policy

    • Terms & Conditions

    • GST Input Tax Credit

    • Shipping Return Policy

    • E-Waste Collection Points

    • Our Sitemap

© Zbotic.in is registered trademark of Moxie Supply Pvt Ltd – All Rights Reserved
Login
Use Phone Number
Use Email Address
Not a member yet? Register Now
Reset Password
Use Phone Number
Use Email Address
Register
Already a member? Login Now