8

Feinstaubsensor

[Seeed Studio Grove – Dust sensor]

Der Feinstaubsensor wertet die umgebende Luftqualität über die Feinstaubkonzentration aus. Die Feinstaubkonzentration wird dabei durch die Anzahl an erfassten Partikeln pro Zeiteinheit bestimmt. Der Sensor erfasst Feinstaubpartikel ab einer Größe von 1 µm und gibt einen Impuls bei jeder Erfassung eines Partikels aus. Er kann direkt oder mithilfe des Grove Shields an einen digitalen Pin eines Arduinos angeschlossen werden. Die Anzahl der Impulse kann schließlich mithilfe des Arduinos in die Feinstaubkonzentration umgerechnet werden.

Alle weiteren Hintergrundinformationen sowie ein Beispielaufbau und notwendigen Programmbibliotheken sind auf dem offiziellen Wiki (bisher nur in englischer Sprache) von Seeed Studio zusammengefasst. Zusätzlich findet man über alle gängigen Suchmaschinen durch die Eingabe der genauen Komponentenbezeichnung entsprechende Projektbeispiele und Tutorials.

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();
    }
}

 

Wichtige Links für die ersten Schritte:

Weiterführende Hintergrundinformationen:

ZU ALLEN MATERIALIEN