Grove - Dust Sensor

Från Karlskrona Makerspace Wiki
Hoppa till: navigering, sök
Grove - Dust Sensor

Denna dammsensor ger en bra indikation på luftkvaliteten i en miljö genom att mäta dammkoncentrationen. Partikelämnesnivån (PM-nivå) i luften mäts genom att man räknar upp lågpulsuppehållstiden (LPO-tid) i en given tidsenhet. LPO-tiden är proportionell mot PM-koncentrationen. Denna sensor kan tillhandahålla tillförlitliga data för luftrenare system; det är mottagligt för PM med diameter 1μm.

Kompatibilitet

  • Arduino
  • Raspberry Pi

Port

Digital

Exempelkod

Arduino

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

Raspberry Pi

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")

Mer information

http://wiki.seeedstudio.com/Grove-Dust_Sensor/