mirror of
https://github.com/airgradienthq/arduino.git
synced 2025-07-16 10:12:09 +02:00
48 lines
1.0 KiB
C++
48 lines
1.0 KiB
C++
#ifndef _AIR_GRADIENT_PMS5003_H_
|
|
#define _AIR_GRADIENT_PMS5003_H_
|
|
|
|
#include "../Main/BoardDef.h"
|
|
#include "PMS.h"
|
|
#include "Stream.h"
|
|
|
|
/**
|
|
* @brief The class define how to handle PMS5003 sensor bas on @ref PMS class
|
|
*/
|
|
class PMS5003 {
|
|
public:
|
|
PMS5003(BoardType def);
|
|
#if defined(ESP8266)
|
|
bool begin(Stream *_debugStream);
|
|
#else
|
|
bool begin(HardwareSerial &serial);
|
|
#endif
|
|
void end(void);
|
|
void handle(void);
|
|
bool isFailed(void);
|
|
void updateFailCount(void);
|
|
void resetFailCount(void);
|
|
int getFailCount(void);
|
|
int getFailCountMax(void);
|
|
int getPm01Ae(void);
|
|
int getPm25Ae(void);
|
|
int getPm10Ae(void);
|
|
int getPm03ParticleCount(void);
|
|
int convertPm25ToUsAqi(int pm25);
|
|
int compensated(int pm25, float humidity);
|
|
|
|
private:
|
|
bool _isBegin = false;
|
|
BoardType _boardDef;
|
|
PMSBase pms;
|
|
const BoardDef *bsp;
|
|
#if defined(ESP8266)
|
|
Stream *_debugStream;
|
|
const char *TAG = "PMS5003";
|
|
#else
|
|
HardwareSerial *_serial;
|
|
#endif
|
|
bool begin(void);
|
|
bool isBegin(void);
|
|
};
|
|
#endif /** _AIR_GRADIENT_PMS5003_H_ */
|