Files
arduino/src/AirGradient.h

145 lines
2.4 KiB
C
Raw Normal View History

#ifndef _AIR_GRADIENT_H_
#define _AIR_GRADIENT_H_
#include "Display/Display.h"
#include "Main/BoardDef.h"
#include "Main/HardwareWatchdog.h"
#include "Main/LedBar.h"
#include "Main/PushButton.h"
#include "Main/StatusLed.h"
#include "PMS/PMS5003.h"
#include "PMS/PMS5003T.h"
#include "S8/S8.h"
#include "Sgp41/Sgp41.h"
#include "Sht/Sht.h"
2024-02-04 15:04:38 +07:00
/**
* @brief Class with define all the sensor has supported by Airgradient. Each
* sensor usage must be init before use.
*/
class AirGradient {
public:
AirGradient(BoardType type);
/**
* @brief Plantower PMS5003 sensor
*/
PMS5003 pms5003;
2024-02-04 15:04:38 +07:00
/**
* @brief Plantower PMS5003T sensor: connect to PM1 connector on
* OPEN_AIR_OUTDOOR.
2024-02-04 15:04:38 +07:00
*/
PMS5003T pms5003t_1;
2024-02-04 15:04:38 +07:00
/**
* @brief Plantower PMS5003T sensor: connect to PM2 connector on
* OPEN_AIR_OUTDOOR.
2024-02-04 15:04:38 +07:00
*/
PMS5003T pms5003t_2;
/**
* @brief SenseAirS8 CO2 sensor
*/
S8 s8;
/**
* @brief Temperature and humidity sensor supported SHT3x and SHT4x
*
2024-02-06 09:38:37 +07:00
*/
Sht sht;
/**
2024-02-04 15:04:38 +07:00
* @brief SGP41 TVOC and NOx sensor
*
*/
Sgp41 sgp41;
/**
2024-02-04 15:04:38 +07:00
* @brief OLED Display
*
*/
Display display;
/**
* @brief Push Button
*/
PushButton button;
/**
* @brief LED
*/
StatusLed statusLed;
2024-02-04 15:04:38 +07:00
/**
* @brief RGB LED array
*
2024-02-04 15:04:38 +07:00
*/
LedBar ledBar;
/**
2024-02-04 15:04:38 +07:00
* @brief External hardware watchdog
*/
HardwareWatchdog watchdog;
2024-02-04 15:04:38 +07:00
/**
* @brief Get I2C SDA pin has of board supported
*
2024-02-04 15:04:38 +07:00
* @return int Pin number if -1 invalid
*/
int getI2cSdaPin(void);
2024-02-04 15:04:38 +07:00
/**
* @brief Get I2C SCL pin has of board supported
*
2024-02-04 15:04:38 +07:00
* @return int Pin number if -1 invalid
*/
int getI2cSclPin(void);
2024-02-04 15:04:38 +07:00
/**
* @brief Get the Board Type
*
2024-02-04 15:04:38 +07:00
* @return BoardType @ref BoardType
*/
BoardType getBoardType(void);
2024-02-04 15:04:38 +07:00
/**
* @brief Get the library version string
*
* @return String
2024-02-04 15:04:38 +07:00
*/
String getVersion(void);
2024-02-29 10:22:05 +07:00
/**
* @brief Get the Board Name object
*
* @return String
2024-02-29 10:22:05 +07:00
*/
String getBoardName(void);
/**
* @brief Round double value with for 2 decimal
*
* @param valuem Round value
* @return double
*/
double round2(double value);
2024-04-03 21:26:04 +07:00
/**
* @brief Check that Airgradient object is ONE_INDOOR
*
* @return true Yes
* @return false No
*/
2024-04-07 16:39:01 +07:00
bool isOne(void);
2024-04-03 21:26:04 +07:00
/**
* @brief Get device Id
*
* @return String
*/
String deviceId(void);
private:
BoardType boardType;
};
#endif /** _AIR_GRADIENT_H_ */