move pm25ToAQI into PMSUtils

This commit is contained in:
Phat Nguyen
2024-02-29 14:45:44 +07:00
parent 0bda7a1c4b
commit 351af57591
6 changed files with 40 additions and 57 deletions

View File

@ -1,5 +1,6 @@
#include "PMS5003T.h"
#include "Arduino.h"
#include "PMSUtils.h"
#if defined(ESP8266)
#include <SoftwareSerial.h>
@ -105,31 +106,6 @@ bool PMS5003T::begin(void) {
return true;
}
/**
* @brief Convert PM2.5 to US AQI
*
* @param pm02
* @return int
*/
int PMS5003T::pm25ToAQI(int pm02) {
if (pm02 <= 12.0)
return ((50 - 0) / (12.0 - .0) * (pm02 - .0) + 0);
else if (pm02 <= 35.4)
return ((100 - 50) / (35.4 - 12.0) * (pm02 - 12.0) + 50);
else if (pm02 <= 55.4)
return ((150 - 100) / (55.4 - 35.4) * (pm02 - 35.4) + 100);
else if (pm02 <= 150.4)
return ((200 - 150) / (150.4 - 55.4) * (pm02 - 55.4) + 150);
else if (pm02 <= 250.4)
return ((300 - 200) / (250.4 - 150.4) * (pm02 - 150.4) + 200);
else if (pm02 <= 350.4)
return ((400 - 300) / (350.4 - 250.4) * (pm02 - 250.4) + 300);
else if (pm02 <= 500.4)
return ((500 - 400) / (500.4 - 350.4) * (pm02 - 350.4) + 400);
else
return 500;
}
/**
* @brief Read all package data then call to @ref getPMxxx to get the target
* data
@ -179,7 +155,7 @@ int PMS5003T::getPm03ParticleCount(void) { return pmsData.PM_RAW_0_3; }
* @param pm25 PM2.5 index
* @return int PM2.5 US AQI
*/
int PMS5003T::convertPm25ToUsAqi(int pm25) { return this->pm25ToAQI(pm25); }
int PMS5003T::convertPm25ToUsAqi(int pm25) { return pm25ToAQI(pm25); }
/**
* @brief Get temperature, Must call this method after @ref readData() success