mirror of
https://github.com/airgradienthq/arduino.git
synced 2025-07-18 03:02:10 +02:00
Add report PMS5003 and PMS5003T firmware version
This commit is contained in:
@ -4,6 +4,39 @@
|
|||||||
#include "Main/utils.h"
|
#include "Main/utils.h"
|
||||||
#include "Libraries/Arduino_JSON/src/Arduino_JSON.h"
|
#include "Libraries/Arduino_JSON/src/Arduino_JSON.h"
|
||||||
|
|
||||||
|
#define json_prop_pmsFirmware "pmsFirmware"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get PMS5003 firmware version string
|
||||||
|
*
|
||||||
|
* @param fwCode
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
String Measurements::pms5003FirmwareVersion(int fwCode) {
|
||||||
|
return pms5003FirmwareVersionBase("PMS5003", fwCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get PMS5003T firmware version string
|
||||||
|
*
|
||||||
|
* @param fwCode
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
String Measurements::pms5003TFirmwareVersion(int fwCode) {
|
||||||
|
return pms5003FirmwareVersionBase("PMS5003T", fwCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get firmware version string
|
||||||
|
*
|
||||||
|
* @param prefix Prefix firmware string
|
||||||
|
* @param fwCode Version code
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
String Measurements::pms5003FirmwareVersionBase(String prefix, int fwCode) {
|
||||||
|
return prefix + String("-") + String(fwCode);
|
||||||
|
}
|
||||||
|
|
||||||
String Measurements::toString(bool localServer, AgFirmwareMode fwMode, int rssi,
|
String Measurements::toString(bool localServer, AgFirmwareMode fwMode, int rssi,
|
||||||
void *_ag, void *_config) {
|
void *_ag, void *_config) {
|
||||||
AirGradient *ag = (AirGradient *)_ag;
|
AirGradient *ag = (AirGradient *)_ag;
|
||||||
@ -33,6 +66,11 @@ String Measurements::toString(bool localServer, AgFirmwareMode fwMode, int rssi,
|
|||||||
if (utils::isValidPMS03Count(this->pm03PCount_1)) {
|
if (utils::isValidPMS03Count(this->pm03PCount_1)) {
|
||||||
root["pm003Count"] = this->pm03PCount_1;
|
root["pm003Count"] = this->pm03PCount_1;
|
||||||
}
|
}
|
||||||
|
if (!localServer) {
|
||||||
|
|
||||||
|
root[json_prop_pmsFirmware] =
|
||||||
|
this->pms5003FirmwareVersion(ag->pms5003.getFirmwareVersion());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config->hasSensorSHT) {
|
if (config->hasSensorSHT) {
|
||||||
@ -122,7 +160,8 @@ String Measurements::toString(bool localServer, AgFirmwareMode fwMode, int rssi,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!localServer) {
|
if (!localServer) {
|
||||||
root["PMS5003T_FwVer"] = ag->pms5003t_1.getFirmwareVersion();
|
root[json_prop_pmsFirmware] =
|
||||||
|
pms5003TFirmwareVersion(ag->pms5003t_1.getFirmwareVersion());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (config->hasSensorPMS2) {
|
if (config->hasSensorPMS2) {
|
||||||
@ -161,7 +200,8 @@ String Measurements::toString(bool localServer, AgFirmwareMode fwMode, int rssi,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!localServer) {
|
if(!localServer) {
|
||||||
root["PMS5003T_FwVer"] = ag->pms5003t_1.getFirmwareVersion();
|
root[json_prop_pmsFirmware] =
|
||||||
|
pms5003TFirmwareVersion(ag->pms5003t_1.getFirmwareVersion());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -200,7 +240,8 @@ String Measurements::toString(bool localServer, AgFirmwareMode fwMode, int rssi,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!localServer) {
|
if(!localServer) {
|
||||||
root["PMS5003T_FwVer"] = ag->pms5003t_1.getFirmwareVersion();
|
root[json_prop_pmsFirmware] =
|
||||||
|
pms5003TFirmwareVersion(ag->pms5003t_1.getFirmwareVersion());
|
||||||
}
|
}
|
||||||
} else if (config->hasSensorPMS2) {
|
} else if (config->hasSensorPMS2) {
|
||||||
if(utils::isValidPMS(this->pm01_2)) {
|
if(utils::isValidPMS(this->pm01_2)) {
|
||||||
@ -236,7 +277,8 @@ String Measurements::toString(bool localServer, AgFirmwareMode fwMode, int rssi,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!localServer) {
|
if(!localServer) {
|
||||||
root["PMS5003T_FwVer"] = ag->pms5003t_2.getFirmwareVersion();
|
root[json_prop_pmsFirmware] =
|
||||||
|
pms5003TFirmwareVersion(ag->pms5003t_2.getFirmwareVersion());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -277,7 +319,8 @@ String Measurements::toString(bool localServer, AgFirmwareMode fwMode, int rssi,
|
|||||||
|
|
||||||
// PMS5003T version
|
// PMS5003T version
|
||||||
if(!localServer) {
|
if(!localServer) {
|
||||||
root["channels"]["1"]["PMS5003T_FwVer"] = ag->pms5003t_1.getFirmwareVersion();
|
root["channels"]["1"][json_prop_pmsFirmware] =
|
||||||
|
pms5003TFirmwareVersion(ag->pms5003t_1.getFirmwareVersion());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (config->hasSensorPMS2) {
|
if (config->hasSensorPMS2) {
|
||||||
@ -316,7 +359,8 @@ String Measurements::toString(bool localServer, AgFirmwareMode fwMode, int rssi,
|
|||||||
}
|
}
|
||||||
// PMS5003T version
|
// PMS5003T version
|
||||||
if(!localServer) {
|
if(!localServer) {
|
||||||
root["channels"]["2"]["PMS5003T_FwVer"] = ag->pms5003t_2.getFirmwareVersion();
|
root["channels"]["2"][json_prop_pmsFirmware] =
|
||||||
|
pms5003TFirmwareVersion(ag->pms5003t_2.getFirmwareVersion());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,9 @@
|
|||||||
|
|
||||||
class Measurements {
|
class Measurements {
|
||||||
private:
|
private:
|
||||||
|
String pms5003FirmwareVersion(int fwCode);
|
||||||
|
String pms5003TFirmwareVersion(int fwCode);
|
||||||
|
String pms5003FirmwareVersionBase(String prefix, int fwCode);
|
||||||
public:
|
public:
|
||||||
Measurements() {
|
Measurements() {
|
||||||
pm25_1 = -1;
|
pm25_1 = -1;
|
||||||
|
@ -246,12 +246,19 @@ uint16_t PMSBase::getTemp(void) { return toValue(&package[24]); }
|
|||||||
uint16_t PMSBase::getHum(void) { return toValue(&package[26]); }
|
uint16_t PMSBase::getHum(void) { return toValue(&package[26]); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get PMS500T firmware version code
|
* @brief Get firmware version code
|
||||||
*
|
*
|
||||||
* @return uint8_t
|
* @return uint8_t
|
||||||
*/
|
*/
|
||||||
uint8_t PMSBase::getFirmwareVersion(void) { return package[28]; }
|
uint8_t PMSBase::getFirmwareVersion(void) { return package[28]; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Ge PMS5003 error code
|
||||||
|
*
|
||||||
|
* @return uint8_t
|
||||||
|
*/
|
||||||
|
uint8_t PMSBase::getErrorCode(void) { return package[29]; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Convert PMS2.5 to US AQI unit
|
* @brief Convert PMS2.5 to US AQI unit
|
||||||
*
|
*
|
||||||
|
@ -27,6 +27,7 @@ public:
|
|||||||
uint16_t getTemp(void);
|
uint16_t getTemp(void);
|
||||||
uint16_t getHum(void);
|
uint16_t getHum(void);
|
||||||
uint8_t getFirmwareVersion(void);
|
uint8_t getFirmwareVersion(void);
|
||||||
|
uint8_t getErrorCode(void);
|
||||||
|
|
||||||
int pm25ToAQI(int pm02);
|
int pm25ToAQI(int pm02);
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ bool PMS5003::begin(void) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
_ver = pms.getFirmwareVersion();
|
||||||
this->_isBegin = true;
|
this->_isBegin = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -121,6 +121,20 @@ int PMS5003::getPm03ParticleCount(void) {
|
|||||||
*/
|
*/
|
||||||
int PMS5003::convertPm25ToUsAqi(int pm25) { return pms.pm25ToAQI(pm25); }
|
int PMS5003::convertPm25ToUsAqi(int pm25) { return pms.pm25ToAQI(pm25); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get sensor firmware version
|
||||||
|
*
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
int PMS5003::getFirmwareVersion(void) { return _ver; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get sensor error code
|
||||||
|
*
|
||||||
|
* @return uint8_t
|
||||||
|
*/
|
||||||
|
uint8_t PMS5003::getErrorCode(void) { return pms.getErrorCode(); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Check device initialized or not
|
* @brief Check device initialized or not
|
||||||
*
|
*
|
||||||
|
@ -24,9 +24,12 @@ public:
|
|||||||
int getPm10Ae(void);
|
int getPm10Ae(void);
|
||||||
int getPm03ParticleCount(void);
|
int getPm03ParticleCount(void);
|
||||||
int convertPm25ToUsAqi(int pm25);
|
int convertPm25ToUsAqi(int pm25);
|
||||||
|
int getFirmwareVersion(void);
|
||||||
|
uint8_t getErrorCode(void);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool _isBegin = false;
|
bool _isBegin = false;
|
||||||
|
int _ver;
|
||||||
BoardType _boardDef;
|
BoardType _boardDef;
|
||||||
PMSBase pms;
|
PMSBase pms;
|
||||||
const BoardDef *bsp;
|
const BoardDef *bsp;
|
||||||
|
@ -171,6 +171,13 @@ float PMS5003T::getRelativeHumidity(void) {
|
|||||||
*/
|
*/
|
||||||
int PMS5003T::getFirmwareVersion(void) { return _ver; }
|
int PMS5003T::getFirmwareVersion(void) { return _ver; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get sensor error code
|
||||||
|
*
|
||||||
|
* @return uint8_t
|
||||||
|
*/
|
||||||
|
uint8_t PMS5003T::getErrorCode(void) { return pms.getErrorCode(); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Check device initialized or not
|
* @brief Check device initialized or not
|
||||||
*
|
*
|
||||||
|
@ -30,6 +30,7 @@ public:
|
|||||||
float getTemperature(void);
|
float getTemperature(void);
|
||||||
float getRelativeHumidity(void);
|
float getRelativeHumidity(void);
|
||||||
int getFirmwareVersion(void);
|
int getFirmwareVersion(void);
|
||||||
|
uint8_t getErrorCode(void);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool _isBegin = false;
|
bool _isBegin = false;
|
||||||
|
Reference in New Issue
Block a user