Closed skwaruch closed 3 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
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.
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.
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
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.
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
Do przemyślenia :) (spora różnica) SDS011: PMS7003: