SDS011 – Feinstaubsensor

Mit dem Modul SDS011 kann der Feinstaub in der Luft per Particulate Matter (PM) „gezählt“ werden. Es werden Partikelgrößen in den Bereichen PM 2.5 und PM 10 registriert.

Die Kommunikation mit dem Arduino geht per Serieller Verbindung. Der Sensor kann per HEX Befehl gesteuert oder Schlafen gelegt werden. Dies ist auch bei Einsatz als „Messsonde“ auch sinnvoll da die Lebensdauer der Laserdiode auf 8000 h geschätzt wird. Mehr Infos gibt es Datenblatt am Ende des Beitrages.

Ein einfacher Arduino Sketch zum auslesen der Daten sollte als Basis für weitere Entwicklungen ausreichend sein. Hierfür bietet sich die Library von Paweł Kołodziejczyk an die hier zu finden ist.



Nachfolgend eine Ausgabe im Arduino Seriellen Monitor.

 
#include "SdsDustSensor.h"
 
int rxPin = 6;
int txPin = 7;
SdsDustSensor sds(rxPin, txPin);
 
void setup() {
  Serial.begin(9600);
  sds.begin();
 
  Serial.println(sds.queryFirmwareVersion().toString()); // prints firmware version
  Serial.println(sds.setActiveReportingMode().toString()); // ensures sensor is in 'active' reporting mode
  Serial.println(sds.setCustomWorkingPeriod(10).toString()); // sensor sends data every 3 minutes
}
 
void loop() {
  PmResult pm = sds.readPm();
  if (pm.isOk()) {
    Serial.print("PM2.5 = ");
    Serial.print(pm.pm25);
    Serial.print(", PM10 = ");
    Serial.println(pm.pm10);
 
    // if you want to just print the measured values, you can use toString() method as well
    Serial.println(pm.toString());
  } else {
    // notice that loop delay is set to 5s (sensor sends data every 3 minutes) and some reads are not available
    Serial.print("Could not read values from sensor, reason: ");
    Serial.println(pm.statusToString());
  }
 
  delay(5000);
}

Nachfolgend noch das Datenblatt von Nova Fitness Co., Ltd..