hackerspace-silesia / Smogomierz

Smogly(formerly: Smogomierz) - simple and cheap PM 2.5 and PM10 sensor based on NodeMCU (ESP8266) or ESP32
Apache License 2.0
123 stars 38 forks source link

Pomiary PMS7003 vs SDS011 #58

Closed skwaruch closed 3 years ago

skwaruch commented 5 years ago

Do przemyślenia :) (spora różnica) SDS011: image PMS7003: image

bfaliszek commented 5 years ago

PMS7003: "±10% @ 100 ~ 500 μg/m³ ±10μ g/m³ @ 0 ~ 100 μg/m³" PMS7003_manual.pdf

SDS011: "Maximum of ± 15% and ±10μg/m3" SDS011_laser_PM2.5_sensor_specification-V1.3.pdf

hali71 commented 4 years ago

Mam pytanie o kalibracje czujnika. Jakie jest źródło obliczania współczynnika calib:

      if (int(BMESensor.temperature) < 5 or int(BMESensor.humidity) > 60) {
        calib1 = float((200 - (BMESensor.humidity)) / 150);
        calib2 = calib1 / 2;
        calib = calib2;
      } else {
        calib = calib1;

Szukałem jakiegos potwierdzenia tej kalibracji w necie ale niestety nie znalazłem. A od jakiegoś czasu zastanawiam się jak korygować pomiary np podczas duzej wilgotności lub mgle. Uzywam czujnika PMS7003.

bfaliszek commented 4 years ago

calib obliczany jest na podstawie pomiarów wilgotności powietrza. Później pomiary z PMS są mnożone razy ten współczynnik. Wypracowałem go na podstawie pomiarów z kilku różnych urządzeń pomiarowych, w tym profesjonalnych pożyczonych od alarmu smogowego.

black-red-dot commented 3 years ago

Czy wspołczynnik kalibracji obliczany jest w ten sposób: float((200 - (BMESensor.humidity)) / 150); calib1 czy jeszcze dodatkowo dzielony jest przez 2: float((200 - (BMESensor.humidity)) / 150)/2; calib2

z kodu, od miejsca: // Automatic calibration - END if (!strcmp(THP_MODEL, "BME280")) { calib = calib1; wynika, że dodatkowe dzielenie jest pomijane

bfaliszek commented 3 years ago

Te współczynniki obliczane są zawsze, ale w zależności od ustawień, są używane albo nie. Choć nie do końca wiem, o który fragment kodu Ci chodzi. Zamiast tak cytować kawałek linijki, możesz wrzucić linka do niej w konkretnym pliku w repozytorium. Wtedy będę bardziej wiedział o które miejsce chodzi.

black-red-dot commented 3 years ago

Chodzi mi to, że najpierw współczynnik calib przyjmuje wartość calib2 https://github.com/hackerspace-silesia/Smogomierz/blob/master/Smogomierz.ino#L1890-L1892 ale za chwilę zawsze zmieniany jest na calib1 https://github.com/hackerspace-silesia/Smogomierz/blob/master/Smogomierz.ino#L1926-L1927