🌬️ Breathe in the future of air quality monitoring!
The Waveshare Dust Sensor Detector Module utilizes the Sharp GP2Y1010AU0F to accurately measure PM2.5 levels, detecting particles as small as 0.8μm. With low power consumption and a wide operating temperature range, this compact sensor is ideal for various applications, ensuring you stay informed about your air quality.
Brand | waveshare |
Item model number | Dust Sensor |
Item Weight | 0.352 ounces |
Product Dimensions | 7.09 x 3.94 x 3.54 inches |
Item Dimensions LxWxH | 7.09 x 3.94 x 3.54 inches |
Color | Dust Sensor |
Manufacturer | Waveshare |
ASIN | B07P94LCFZ |
Is Discontinued By Manufacturer | No |
Date First Available | February 28, 2015 |
M**H
An Excellent Dust Sensor ( if you know how to use it)
I have noticed mixed reviews and believe they are caused by insufficient information. Any code designed for the bare Sharp GP2Y1014AU0F will not work for following reasons:1./ The WaveShare board has an additional transistor Q1 that reverses impulses for the Sharp ILED on pin 3 (now HIGH is active when appears on WaveShare ILED pin);2./ While the Sharp sensor has output Aout on pin 5 in range 0.4-4V the Waweshare board lowers it with the resistor divider R10 10k + R6 1k (11:1);3./ I simply compensated the voltage divider by adding 11 counts in the measuring loop. In addition the command 'analogReference(INTERNAL);' changes default reference voltage from 5V to 1.1V further increasing counts from the analog to digital converter.4./ The Waveshare board has an integrated circuit PT1301 (High Efficiency, Low Voltage Step-up DC/DC Converter) capable of giving stable 5V for the Sharp sensor surprisingly from low 1.5V. So 3.3V is the best option for powering. I was assured by the seller that the board is compatible with 5V. However, reading some bad reviews there is no reason giving a chance for destroying PT1301 with higher than optimal voltage. Moreover, if burned PT1301 is shorted then it will endanger 5V supply through inductance L1 and diode 1N1.If you intend to use the WaveShare dust sensor with ESP8266 or ESP32 you will find the voltage divider beneficial because their analog inputs wouldn't tolerate full Aot voltage. So I would discourage making any changes on board as I read in one review. If you follow my recommendation you will like the board as it is. Definitely it is more convenient connecting it to a microcontroller than it is with the bare Sharp sensor. Plus, the stabilized voltage on the WaveShare board improves output accuracy. I designed a testing code where the voltage divider is compensated by the sum of 11 counts. The sum is converted to mV and from it is computed dust concentration and air quality. Intentionally I used the cable connection to pins to be in the same order as they appear on the WaveShare board to prevent faulty connection.I don't have a reference device for tuning the computed output, I just used a graph from Sharp datasheet. For me this project is only for fun and educating grandchildren.Go to Waveshare website, use the keyword 'dust sensor' and you will find circuit schematic and all needed information for the project.I like to share my pleasant experience when contacting the supplier through email. I was very pleased with the prompt response and all correspondence that followed. With my experience I can give the highest recommendation for the product and for people who support it.Picture 1: The WaveShare Dust Sensor connected to Arduino UNO.Picture 2: For the curious what is inside. It is not recommended to open it.If you open it don't touch anything inside - just blow dust with compressed air, if needed.Don't touch the potentiometer for gain as is set in the factory.Here is the test code for Arduino UNO (hopefully in will be not disturbed during transfer to Amazon website):/* Waveshare Dust Sensor tested with Arduino UNO, Michael H March 30, 2021 VCC red => 3.3V GND black => GND AOUT blue => A0 ILED yellow => A2*/long int systemTime; // replaces delay()int AoutMin = 360; // equal to Aout min in mV for clean airint AoutMax = 3600; // equal to Aout max in mV (toothpick in measuring window)float dustConst; // it will be computed from Aout range and Sharp sensor range 0-500 ug/m3int dustConc; // dust concentration in ug/m3/mVunsigned int sum11; // sum of 11 counts to compensate 11:1 Aot voltage dividerint AoutAvg; // direct Sharp Vout in mV computed as average from 11 measurementsint ref1024 = 1100; // reference voltage for 10-bit ADC; 1023 counts = 1100 mVint dustQualityIndex; // it is quite arbitrarychar *dustQualityChar[] = {"1.Excellent", "2.Very good", "3.Good", "4.Fair", "5.Poor"};void setup() { Serial.begin(9600); pinMode(A0, INPUT); // pin selected for 3.3V, GND, AOUT, and ILED pinMode(A2, OUTPUT); // in order RED, BLACK, BLUE, and YELLOW as on WaveShare board analogReference(INTERNAL); // for better resolution use 1100mV instead of default 5000mV analogRead(A0); // activate IOref pin, 1.1V will be present dustConst = 500 / float(AoutMax - AoutMin); // in ug/m3 per millivolt Serial.print("\n ------------------------------------------------------\n"); Serial.print(" The WaveShare board divides the Sharp Sensor Vout 11:1.\n"); Serial.print(" The sum of 11 counts will compensate for lowered output.\n"); Serial.print(" Then the sum is converted to mV, and from it\n"); Serial.print(" is computed dust concentration and air quality."); Serial.print("\n-------------------------------------------------------\n"); Serial.print("500/("); Serial.print(AoutMax); Serial.print("-"); Serial.print(AoutMin); Serial.print(")="); Serial.print(dustConst); Serial.print(" Dust density constant in ug/m3/mV"); Serial.print("\n-------------------------------------------------------\n");}void loop() { sum11 = 0; for (int i = 0; i < 11; i++) { //Sharp datasheet: pulse cycle 10ms, pulse width 0.32ms, sampling at 0,28ms digitalWrite(A2, HIGH); delayMicroseconds(280); sum11 += analogRead(A0); delayMicroseconds(40); // 280+40=320 digitalWrite(A2, LOW); delayMicroseconds(9680); // 320 + 9680 = 10000 } if ((millis() - systemTime) > 2000) { computeAirQuality(); systemTime = millis(); }}void computeAirQuality(){ AoutAvg = float(sum11) * float(ref1024) / 1024; // Sharp sensor direct Aout in mV int q, i; q = float(AoutAvg - AoutMin) * dustConst; if (q < 0) q = 0; // handle non positive values if (q < 40) i = 0; else if (q < 80) i = 1; else if (q < 160) i = 2; else if (q < 320) i = 3; else i = 4; dustConc = q; dustQualityIndex = i; printAirQuality();}void printAirQuality(){ Serial.print(" Sum_11 "); Serial.print(sum11); Serial.print(" \t "); Serial.print(AoutAvg); Serial.print(" mV \tdust_C "); Serial.print(dustConc); Serial.print(" ug/m3\t\t"); Serial.print(dustQualityChar[dustQualityIndex]); Serial.print(" air quality\n");}
T**H
Waveshare Dust Sensor
This is a really cool little device and works perfectly as advertised. I see a lot of reviewers get all twisted up with coding, mods and errors...not necessary. Just go to the Waveshare website for the GP2Y1010AU0F and there are examples/tutorials for several microprocessor platforms. They've made it very easy. I used one of their Arduino examples, added an OLED and walked around the house reading out 16-27 ug/m3 and then opened up the door to our fireplace and the readings almost instantly shot up to over 200 ug/m3. I'm really interested to see results on a smoky day during wildfire season.
D**R
Great results
I'm doing a project to measure the air quality of my workshop and this sensor was one of the 20 I used. This is by far the best Arduino air sensor and its readings were in line with the Foobot sitting next to it. I believe that this sensor is inside many commercial products. It's the real deal.
C**N
Works as advertised.
Cool little dust sensor. I removed the 11:1 output divider string because it was unnecessary for my Arduino UNO. Now I have better resolution for particle count. This thing can detect a nearby foot stomp on the carpet as your foot kicks up dust.
A**G
Good product, though it would have been nice to ...
Good product, though it would have been nice to get Arduino examples (i.e. how to connect to Ubidots or Thingspeak) and better documentation. The ones found online are returning some crazy high levels of pollution, so I assume either the firmware or the sensor is not working properly.
T**S
NOT a 5v device
Don't trust the instructions on this product page; using 5v on this chip will cause it to (instead of sensing smoke) briefly become a smoke *emitter*.
M**O
Five Stars
Excellent dust sensor, it works great. The documentation in web page helps a lot.
T**I
Killed my Arduino mega
It worked fine for about 3 days then out of nowhere shorted out and killed my Arduino mega. I most likely just got a defective product but its just hard to trust none the less.
Trustpilot
4 days ago
1 month ago