edit

Grove - Dust Sensor

This Dust Sensor gives a good indication of the air quality in an environment by measuring the dust concentration. The Particulate Matter level (PM level) in the air is measured by counting the Low Pulse Occupancy time (LPO time) in given time unit. LPO time is proportional to PM concentration. This sensor can provide reliable data for air purifier systems; it is responsive to PM of diameter 1μm.

Warning

  • This sensor uses counting method to measure dust concentration, not weighing method, and the unit is pcs/L or pcs/0.01cf.
  • Please pay attention to the warnings listed here:
    • Please keep it upright.
    • 3 min preheat time is required while using for the first time.
    • Arbitrary operation may cause unexpected damage.
    • Following widgets (red rectangle marked) is used only for the factory setting. Please DO NOT change the default configuration.

Version

Product Version Changes Released Date
Grove-Dust Sensor V1.0 Initial Nov 2012

Features

  • Stable and sensitive detection of not only cigarette smoke but also house dust which are indoor asthma triggers.
  • Air is self-aspirated with the current of air generation mechanism with a built-in heater.
  • Easy maintenance. High sensitivity lasts long term.
  • Dual output for the particle size over 1 micron and 2.5 micron (approx).
  • More compact and lighter, and easy installation.

Tip

More details about Grove modules please refer to Grove System

Specifications

Item Norm Unit
VCC 4.75~5.75 V
Standby Current Supply 90 mA
Detectable range of concentration 0~28,000 / 0 ~ 8000 pcs/liter / pcs/0.01cf
Operating Temperature Range 0~45 °C
Output Method Negative Logic, Digital output, High: over 4.0V(Rev.2), Low: under 0.7V -
Detecting the particle diameter >1 μm
Dimensions 59(W) × 45(H) × 22(D) mm
Humidity Range 95% rh or less -

Note

In the latest version, output Hi Voltage is changed from 4.0V to 4.5V.

Platforms Supported

Arduino Raspberry Pi BeagleBone Wio LinkIt ONE

Caution

The platforms mentioned above as supported is/are an indication of the module's hardware or theoritical compatibility. We only provide software library or code examples for Arduino platform in most cases. It is not possible to provide software library / demo code for all possible MCU platforms. Hence, users have to write their own software library.

Application Ideas

  • Air Purifier
  • Air Quality Monitor
  • Air Conditioner
  • Ventilator

Getting Started

Note

If this is the first time you work with Arduino, we firmly recommend you to see Getting Started with Arduino before the start.

Play With Arduino

Hardware

  • Step 1. Prepare the below stuffs:
Seeeduino V4.2 Base Shield Grove-Dust Sensor
enter image description here enter image description here enter image description here
Get One Now Get One Now Get One Now
  • Step 2. Connect Grove-Dust Sensor to D8 port of Grove-Base Shield.
  • Step 3. Plug Grove - Base Shield into Seeeduino.
  • Step 4. Connect Seeeduino to PC via a USB cable.

Note

If we don't have Grove Base Shield, We also can directly connect Grove-Dust Sensor to Seeeduino as below.

Seeeduino Grove-Loudness Sensor
5V Red
GND Black
NC White
D8 Yellow

Software

  • Step 1. Please copy below code to Arduio IDE and upload to arduino. If you do not know how to upload the code, please check how to upload code.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
int pin = 8;
unsigned long duration;
unsigned long starttime;
unsigned long sampletime_ms = 30000;//sampe 30s ;
unsigned long lowpulseoccupancy = 0;
float ratio = 0;
float concentration = 0;

void setup() 
{
    Serial.begin(9600);
    pinMode(pin,INPUT);
    starttime = millis();//get the current time;
}

void loop() 
{
    duration = pulseIn(pin, LOW);
    lowpulseoccupancy = lowpulseoccupancy+duration;

    if ((millis()-starttime) > sampletime_ms)//if the sampel time == 30s
    {
        ratio = lowpulseoccupancy/(sampletime_ms*10.0);  // Integer percentage 0=>100
        concentration = 1.1*pow(ratio,3)-3.8*pow(ratio,2)+520*ratio+0.62; // using spec sheet curve
        Serial.print(lowpulseoccupancy);
        Serial.print(",");
        Serial.print(ratio);
        Serial.print(",");
        Serial.println(concentration);
        lowpulseoccupancy = 0;
        starttime = millis();
    }
}
  • Step 2. In this program, the Seeeduino samples the total duration of "logic low" in 30s, and this duration illustrates the dust density of environment. Open Serial Monitor, we can get air quality's value detected by sensor from PC's serial port.

Terminology:

  • "Lowpulseoccupancy" represents the Low Pulse Occupancy Time(LPO Time) detected in given 30s. Its unit is microseconds.

  • "Ratio" reflects on which level LPO Time takes up the whole sample time.

  • "Concentration" is a figure that has a physical meaning. It is calculated from the characteristic graph below by using the LPO time.

  • Here is a graph of the dust concentration measured in office :

We can see the concentration of dust is very low in the evening, but it is higher in the afternoon. A threshold can be set when the concentration is above a value. Also, if you want to set the sensor more sensitive you can add a fan on the sensor, and add a 10kΩ resistor between the Pin5 and Ground. More information please visit the blog of A.J.

Play With Raspberry Pi

Hardware

  • Step 1. Prepare the below stuffs:
Raspberry pi GrovePi_Plus Grove-Dust Sensor
enter image description here enter image description here enter image description here
Get One Now Get One Now Get One Now
  • Step 2. Plug the GrovePi_Plus into Raspberry.
  • Step 3. Connect Grove-Dust Sensor to D2 port of GrovePi_Plus.
  • Step 4. Connect the Raspberry to PC through USB cable.

Software

  • Step 1. Follow Setting Software to configure the development environment.
  • Step 2. Git clone the Github repository.
1
2
cd ~
git clone https://github.com/DexterInd/GrovePi.git
  • Step 3. Excute below commands to monitor the dust.
1
2
cd ~/GrovePi/Software/Python
python grove_dust_sensor.py

Here is the grove_dust_sensor.py code.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import time
import grovepi
import atexit

atexit.register(grovepi.dust_sensor_dis)

print("Reading from the dust sensor")
grovepi.dust_sensor_en()
while True:
    try:
        [new_val,lowpulseoccupancy] = grovepi.dustSensorRead()
        if new_val:
            print(lowpulseoccupancy)
        time.sleep(5) 

    except IOError:
        print ("Error")
  • Step 4. We will see the dust status as below.
1
2
3
4
5
6
7
8
pi@raspberrypi:~/GrovePi/Software/Python $ python grove_dust_sensor.py 
Reading from the dust sensor
14029
2621
1725
1978
2533
1619

If you want to make some awesome projects by Grove - Dust Sensor, here is a project for reference.

Air Quality Box

This section an IoT demo made by Seeeduino and Grove.

More attention is being paid to the environmental air quality nowadays because the tiny particles in the air around can badly endanger people’s health. We always get the information of environment from our government department. But it’s the average value of the whole city/section. It can not reflect the environment around you accurately.

Resources

Projects

Air Quality Box: Monitor air quality around you

Smart Crops: Implementing IoT in Conventional Agriculture!: Our mission with nature is to preserve it, designing and implementing technologies and monitoring methods with the help of IoT via Helium.

Tech Support

Please submit any technical issue into our forum.