forked from airgradienthq/arduino
v1.0.2
-Changed getCO2 to return a char and if sensor is non existent will return NULL -Changed getPM2 to return a char and if sensor is non existent will return NULL -Added a new function getPM2_Raw which will return the value of PM2 as an integer -Added a new function getCO2_Raw which will return the value of CO2 as an integer -Added 2 new variables in the TMP_Raw Struct: 1. t_Char 2. rh_Char These variables will be used to store the corresponding values as char and if sensor is nonexistent should be NULL
This commit is contained in:
126
AirGradient.cpp
126
AirGradient.cpp
@ -38,6 +38,7 @@ unsigned long lastRequest = 0;
|
|||||||
bool SerialConfigured = true;
|
bool SerialConfigured = true;
|
||||||
bool PwmConfigured = true;
|
bool PwmConfigured = true;
|
||||||
|
|
||||||
|
|
||||||
AirGradient::AirGradient(bool displayMsg,int baudRate)
|
AirGradient::AirGradient(bool displayMsg,int baudRate)
|
||||||
{
|
{
|
||||||
_debugMsg = displayMsg;
|
_debugMsg = displayMsg;
|
||||||
@ -81,16 +82,30 @@ void AirGradient::PMS_Init(int rx_pin,int tx_pin,int baudRate){
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
int AirGradient::getPM2(){
|
const char* AirGradient::getPM2(){
|
||||||
int pm02;
|
if (getPM2_Raw()) {
|
||||||
DATA data;
|
int result_raw = getPM2_Raw();
|
||||||
|
sprintf(Char_PM2,"%d", result_raw);
|
||||||
|
return Char_PM2;
|
||||||
|
} else {
|
||||||
|
//Serial.println("no PMS data");
|
||||||
|
Char_PM2[0] = 'N';
|
||||||
|
Char_PM2[1] = 'U';
|
||||||
|
Char_PM2[2] = 'L';
|
||||||
|
Char_PM2[3] = 'L';
|
||||||
|
return Char_PM2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int AirGradient::getPM2_Raw(){
|
||||||
|
int pm02;
|
||||||
|
DATA data;
|
||||||
requestRead();
|
requestRead();
|
||||||
if (readUntil(data)) {
|
if (readUntil(data)) {
|
||||||
pm02 = data.PM_AE_UG_2_5;
|
pm02 = data.PM_AE_UG_2_5;
|
||||||
return pm02;
|
return pm02;
|
||||||
} else {
|
} else {
|
||||||
//Serial.println("no PMS data");
|
return 0;
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -260,15 +275,6 @@ void AirGradient::loop()
|
|||||||
//END PMS FUNCTIONS //
|
//END PMS FUNCTIONS //
|
||||||
|
|
||||||
//START TMP_RH FUNCTIONS//
|
//START TMP_RH FUNCTIONS//
|
||||||
uint32_t AirGradient::getTemp(){
|
|
||||||
TMP_RH result = periodicFetchData();
|
|
||||||
return result.t;
|
|
||||||
}
|
|
||||||
int AirGradient::getRhum(){
|
|
||||||
TMP_RH result = periodicFetchData();
|
|
||||||
return result.rh;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
TMP_RH_ErrorCode AirGradient::TMP_RH_Init(uint8_t address) {
|
TMP_RH_ErrorCode AirGradient::TMP_RH_Init(uint8_t address) {
|
||||||
if (_debugMsg) {
|
if (_debugMsg) {
|
||||||
@ -287,9 +293,15 @@ TMP_RH_ErrorCode AirGradient::reset()
|
|||||||
|
|
||||||
TMP_RH AirGradient::periodicFetchData() //
|
TMP_RH AirGradient::periodicFetchData() //
|
||||||
{
|
{
|
||||||
|
TMP_RH result;
|
||||||
TMP_RH_ErrorCode error = writeCommand(SHT3XD_CMD_FETCH_DATA);
|
TMP_RH_ErrorCode error = writeCommand(SHT3XD_CMD_FETCH_DATA);
|
||||||
if (error == SHT3XD_NO_ERROR)
|
if (error == SHT3XD_NO_ERROR){
|
||||||
return readTemperatureAndHumidity();
|
result = readTemperatureAndHumidity();
|
||||||
|
sprintf(result.t_char,"%d", result.t);
|
||||||
|
sprintf(result.rh_char,"%f", result.rh);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
returnError(error);
|
returnError(error);
|
||||||
}
|
}
|
||||||
@ -535,59 +547,75 @@ TMP_RH AirGradient::returnError(TMP_RH_ErrorCode error) {
|
|||||||
TMP_RH result;
|
TMP_RH result;
|
||||||
result.t = NULL;
|
result.t = NULL;
|
||||||
result.rh = NULL;
|
result.rh = NULL;
|
||||||
|
|
||||||
|
result.t_char[0] = 'N';
|
||||||
|
result.t_char[1] = 'U';
|
||||||
|
result.t_char[2] = 'L';
|
||||||
|
result.t_char[3] = 'L';
|
||||||
|
|
||||||
|
result.rh_char[0] = 'N';
|
||||||
|
result.rh_char[1] = 'U';
|
||||||
|
result.rh_char[2] = 'L';
|
||||||
|
result.rh_char[3] = 'L';
|
||||||
|
|
||||||
result.error = error;
|
result.error = error;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
//END TMP_RH FUNCTIONS //
|
//END TMP_RH FUNCTIONS //
|
||||||
|
|
||||||
//START C02 FUNCTIONS //
|
//START CO2 FUNCTIONS //
|
||||||
void AirGradient::C02_Init(){
|
void AirGradient::CO2_Init(){
|
||||||
C02_Init(D4,D3);
|
CO2_Init(D4,D3);
|
||||||
}
|
}
|
||||||
void AirGradient::C02_Init(int rx_pin,int tx_pin){
|
void AirGradient::CO2_Init(int rx_pin,int tx_pin){
|
||||||
C02_Init(rx_pin,tx_pin,9600);
|
CO2_Init(rx_pin,tx_pin,9600);
|
||||||
|
|
||||||
}
|
}
|
||||||
void AirGradient::C02_Init(int rx_pin,int tx_pin,int baudRate){
|
void AirGradient::CO2_Init(int rx_pin,int tx_pin,int baudRate){
|
||||||
if (_debugMsg) {
|
if (_debugMsg) {
|
||||||
Serial.println("Initializing C02...");
|
Serial.println("Initializing CO2...");
|
||||||
}
|
}
|
||||||
_SoftSerial_C02 = new SoftwareSerial(rx_pin,tx_pin);
|
_SoftSerial_CO2 = new SoftwareSerial(rx_pin,tx_pin);
|
||||||
_SoftSerial_C02->begin(baudRate);
|
_SoftSerial_CO2->begin(baudRate);
|
||||||
|
|
||||||
if(getC02() == -1){
|
if(getCO2_Raw() == -1){
|
||||||
if (_debugMsg) {
|
if (_debugMsg) {
|
||||||
Serial.println("C02 Sensor Failed to Initialize ");
|
Serial.println("CO2 Sensor Failed to Initialize ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
Serial.println("C02 Successfully Initialized. Heating up for 10s");
|
Serial.println("CO2 Successfully Initialized. Heating up for 10s");
|
||||||
delay(10000);
|
delay(10000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
int AirGradient::getC02(int retryLimit) {
|
const char* AirGradient::getCO2(int retryLimit) {
|
||||||
int ctr = 0;
|
int ctr = 0;
|
||||||
int result_c02 = get_C02_values();
|
int result_CO2 = getCO2_Raw();
|
||||||
while(result_c02 == -1){
|
while(result_CO2 == -1){
|
||||||
result_c02 = get_C02_values();
|
result_CO2 = getCO2_Raw();
|
||||||
if(ctr == retryLimit){
|
if((ctr == retryLimit) || (result_CO2 == -1)){
|
||||||
return NULL;
|
Char_CO2[0] = 'N';
|
||||||
|
Char_CO2[1] = 'U';
|
||||||
|
Char_CO2[2] = 'L';
|
||||||
|
Char_CO2[3] = 'L';
|
||||||
|
return Char_CO2;
|
||||||
}
|
}
|
||||||
ctr++;
|
ctr++;
|
||||||
}
|
}
|
||||||
return result_c02;
|
sprintf(Char_CO2,"%d", result_CO2);
|
||||||
|
return Char_CO2;
|
||||||
}
|
}
|
||||||
int AirGradient::get_C02_values(){
|
int AirGradient::getCO2_Raw(){
|
||||||
int retry = 0;
|
int retry = 0;
|
||||||
CO2_READ_RESULT result;
|
CO2_READ_RESULT result;
|
||||||
const byte C02Command[] = {0xFE, 0X44, 0X00, 0X08, 0X02, 0X9F, 0X25};
|
const byte CO2Command[] = {0xFE, 0X44, 0X00, 0X08, 0X02, 0X9F, 0X25};
|
||||||
byte C02Response[] = {0,0,0,0,0,0,0};
|
byte CO2Response[] = {0,0,0,0,0,0,0};
|
||||||
|
|
||||||
while(!(_SoftSerial_C02->available())) {
|
while(!(_SoftSerial_CO2->available())) {
|
||||||
retry++;
|
retry++;
|
||||||
// keep sending request until we start to get a response
|
// keep sending request until we start to get a response
|
||||||
_SoftSerial_C02->write(C02Command, 7);
|
_SoftSerial_CO2->write(CO2Command, 7);
|
||||||
delay(50);
|
delay(50);
|
||||||
if (retry > 10) {
|
if (retry > 10) {
|
||||||
return -1;
|
return -1;
|
||||||
@ -596,33 +624,33 @@ int AirGradient::get_C02_values(){
|
|||||||
|
|
||||||
int timeout = 0;
|
int timeout = 0;
|
||||||
|
|
||||||
while (_SoftSerial_C02->available() < 7) {
|
while (_SoftSerial_CO2->available() < 7) {
|
||||||
timeout++;
|
timeout++;
|
||||||
if (timeout > 10) {
|
if (timeout > 10) {
|
||||||
while(_SoftSerial_C02->available())
|
while(_SoftSerial_CO2->available())
|
||||||
_SoftSerial_C02->read();
|
_SoftSerial_CO2->read();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
delay(50);
|
delay(50);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i=0; i < 7; i++) {
|
for (int i=0; i < 7; i++) {
|
||||||
int byte = _SoftSerial_C02->read();
|
int byte = _SoftSerial_CO2->read();
|
||||||
if (byte == -1) {
|
if (byte == -1) {
|
||||||
result.success = false;
|
result.success = false;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
C02Response[i] = byte;
|
CO2Response[i] = byte;
|
||||||
}
|
}
|
||||||
int valMultiplier = 1;
|
int valMultiplier = 1;
|
||||||
int high = C02Response[3];
|
int high = CO2Response[3];
|
||||||
int low = C02Response[4];
|
int low = CO2Response[4];
|
||||||
unsigned long val = high*256 + low;
|
unsigned long val = high*256 + low;
|
||||||
|
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
//END C02 FUNCTIONS //
|
//END CO2 FUNCTIONS //
|
||||||
|
|
||||||
//START MHZ19 FUNCTIONS //
|
//START MHZ19 FUNCTIONS //
|
||||||
void AirGradient::MHZ19_Init(uint8_t type) {
|
void AirGradient::MHZ19_Init(uint8_t type) {
|
||||||
@ -638,7 +666,7 @@ void AirGradient::MHZ19_Init(int rx_pin,int tx_pin, int baudRate, uint8_t type)
|
|||||||
_SoftSerial_MHZ19 = new SoftwareSerial(rx_pin,tx_pin);
|
_SoftSerial_MHZ19 = new SoftwareSerial(rx_pin,tx_pin);
|
||||||
_SoftSerial_MHZ19->begin(baudRate);
|
_SoftSerial_MHZ19->begin(baudRate);
|
||||||
|
|
||||||
if(getC02() == -1){
|
if(readMHZ19() == -1){
|
||||||
if (_debugMsg) {
|
if (_debugMsg) {
|
||||||
Serial.println("MHZ19 Sensor Failed to Initialize ");
|
Serial.println("MHZ19 Sensor Failed to Initialize ");
|
||||||
}
|
}
|
||||||
|
@ -134,16 +134,21 @@ typedef enum {
|
|||||||
struct TMP_RH {
|
struct TMP_RH {
|
||||||
float t;
|
float t;
|
||||||
int rh;
|
int rh;
|
||||||
|
char t_char[10];
|
||||||
|
char rh_char[10];
|
||||||
|
TMP_RH_ErrorCode error;
|
||||||
|
};
|
||||||
|
struct TMP_RH_Char {
|
||||||
TMP_RH_ErrorCode error;
|
TMP_RH_ErrorCode error;
|
||||||
};
|
};
|
||||||
// ENUMS AND STRUCTS FOR TMP_RH END
|
// ENUMS AND STRUCTS FOR TMP_RH END
|
||||||
|
|
||||||
//ENUMS STRUCTS FOR C02 START
|
//ENUMS STRUCTS FOR CO2 START
|
||||||
struct CO2_READ_RESULT {
|
struct CO2_READ_RESULT {
|
||||||
int co2 = -1;
|
int co2 = -1;
|
||||||
bool success = false;
|
bool success = false;
|
||||||
};
|
};
|
||||||
//ENUMS STRUCTS FOR C02 END
|
//ENUMS STRUCTS FOR CO2 END
|
||||||
|
|
||||||
// library interface description
|
// library interface description
|
||||||
class AirGradient
|
class AirGradient
|
||||||
@ -155,8 +160,8 @@ class AirGradient
|
|||||||
|
|
||||||
static void setOutput(Print& debugOut, bool verbose = true);
|
static void setOutput(Print& debugOut, bool verbose = true);
|
||||||
|
|
||||||
void beginC02(void);
|
void beginCO2(void);
|
||||||
void beginC02(int,int);
|
void beginCO2(int,int);
|
||||||
void PMS_Init(void);
|
void PMS_Init(void);
|
||||||
void PMS_Init(int,int);
|
void PMS_Init(int,int);
|
||||||
void PMS_Init(int,int,int);
|
void PMS_Init(int,int,int);
|
||||||
@ -192,14 +197,13 @@ class AirGradient
|
|||||||
void requestRead();
|
void requestRead();
|
||||||
bool read_PMS(DATA& data);
|
bool read_PMS(DATA& data);
|
||||||
bool readUntil(DATA& data, uint16_t timeout = SINGLE_RESPONSE_TIME);
|
bool readUntil(DATA& data, uint16_t timeout = SINGLE_RESPONSE_TIME);
|
||||||
int getPM2();
|
const char* getPM2();
|
||||||
|
int getPM2_Raw();
|
||||||
|
|
||||||
//PMS VARIABLES PUBLIC_END
|
//PMS VARIABLES PUBLIC_END
|
||||||
|
|
||||||
//TMP_RH VARIABLES PUBLIC START
|
//TMP_RH VARIABLES PUBLIC START
|
||||||
void ClosedCube_TMP_RH();
|
void ClosedCube_TMP_RH();
|
||||||
uint32_t getTemp();
|
|
||||||
int getRhum();
|
|
||||||
TMP_RH_ErrorCode TMP_RH_Init(uint8_t address);
|
TMP_RH_ErrorCode TMP_RH_Init(uint8_t address);
|
||||||
TMP_RH_ErrorCode clearAll();
|
TMP_RH_ErrorCode clearAll();
|
||||||
|
|
||||||
@ -215,13 +219,13 @@ class AirGradient
|
|||||||
|
|
||||||
//TMP_RH VARIABLES PUBLIC END
|
//TMP_RH VARIABLES PUBLIC END
|
||||||
|
|
||||||
//C02 VARIABLES PUBLIC START
|
//CO2 VARIABLES PUBLIC START
|
||||||
void C02_Init();
|
void CO2_Init();
|
||||||
void C02_Init(int,int);
|
void CO2_Init(int,int);
|
||||||
void C02_Init(int,int,int);
|
void CO2_Init(int,int,int);
|
||||||
int getC02(int retryLimit = 5);
|
const char* getCO2(int retryLimit = 5);
|
||||||
int get_C02_values();
|
int getCO2_Raw();
|
||||||
SoftwareSerial *_SoftSerial_C02;
|
SoftwareSerial *_SoftSerial_CO2;
|
||||||
|
|
||||||
//CO2 VARIABLES PUBLIC END
|
//CO2 VARIABLES PUBLIC END
|
||||||
|
|
||||||
@ -260,6 +264,7 @@ class AirGradient
|
|||||||
uint16_t _calculatedChecksum;
|
uint16_t _calculatedChecksum;
|
||||||
SoftwareSerial *_SoftSerial_PMS;
|
SoftwareSerial *_SoftSerial_PMS;
|
||||||
void loop();
|
void loop();
|
||||||
|
char Char_PM2[10];
|
||||||
//PMS VARIABLES PRIVATE END
|
//PMS VARIABLES PRIVATE END
|
||||||
|
|
||||||
//TMP_RH VARIABLES PRIVATE START
|
//TMP_RH VARIABLES PRIVATE START
|
||||||
@ -281,6 +286,10 @@ class AirGradient
|
|||||||
TMP_RH returnError(TMP_RH_ErrorCode command);
|
TMP_RH returnError(TMP_RH_ErrorCode command);
|
||||||
//TMP_RH VARIABLES PRIVATE END
|
//TMP_RH VARIABLES PRIVATE END
|
||||||
|
|
||||||
|
//CO2 VARABLES PUBLIC START
|
||||||
|
char Char_CO2[10];
|
||||||
|
|
||||||
|
//CO2 VARABLES PUBLIC END
|
||||||
//MHZ19 VARABLES PUBLIC START
|
//MHZ19 VARABLES PUBLIC START
|
||||||
|
|
||||||
int readInternal_MHZ19();
|
int readInternal_MHZ19();
|
||||||
@ -291,6 +300,7 @@ class AirGradient
|
|||||||
Stream * _serial_MHZ19;
|
Stream * _serial_MHZ19;
|
||||||
SoftwareSerial *_SoftSerial_MHZ19;
|
SoftwareSerial *_SoftSerial_MHZ19;
|
||||||
uint8_t getCheckSum_MHZ19(unsigned char *packet);
|
uint8_t getCheckSum_MHZ19(unsigned char *packet);
|
||||||
|
|
||||||
//MHZ19 VARABLES PUBLIC END
|
//MHZ19 VARABLES PUBLIC END
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -4,19 +4,18 @@ AirGradient ag = AirGradient();
|
|||||||
void setup(){
|
void setup(){
|
||||||
Serial.begin(9600);
|
Serial.begin(9600);
|
||||||
ag.PMS_Init();
|
ag.PMS_Init();
|
||||||
ag.C02_Init();
|
ag.CO2_Init();
|
||||||
ag.TMP_RH_Init(0x44); //check for SHT sensor with address 0x44
|
ag.TMP_RH_Init(0x44); //check for SHT sensor with address 0x44
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop(){
|
void loop(){
|
||||||
|
|
||||||
int PM2 = ag.getPM2();
|
|
||||||
Serial.print("PM2: ");
|
Serial.print("PM2: ");
|
||||||
Serial.println(PM2);
|
Serial.println(ag.getPM2());
|
||||||
|
|
||||||
int CO2 = ag.getC02();
|
|
||||||
Serial.print("C02: ");
|
Serial.print("CO2: ");
|
||||||
Serial.println(CO2);
|
Serial.println(ag.getCO2());
|
||||||
|
|
||||||
TMP_RH result = ag.periodicFetchData();
|
TMP_RH result = ag.periodicFetchData();
|
||||||
Serial.print("Humidity: ");
|
Serial.print("Humidity: ");
|
||||||
|
@ -10,17 +10,17 @@ void setup(){
|
|||||||
Serial.begin(9600);
|
Serial.begin(9600);
|
||||||
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
|
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
|
||||||
ag.PMS_Init();
|
ag.PMS_Init();
|
||||||
ag.C02_Init();
|
ag.CO2_Init();
|
||||||
ag.TMP_RH_Init(0x44); //check for SHT sensor with address 0x44
|
ag.TMP_RH_Init(0x44); //check for SHT sensor with address 0x44
|
||||||
showTextRectangle("Init", String(ESP.getChipId(),HEX),"AirGradient");
|
showTextRectangle("Init", String(ESP.getChipId(),HEX),"AirGradient");
|
||||||
delay(2000);
|
delay(2000);
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop(){
|
void loop(){
|
||||||
int PM2 = ag.getPM2();
|
int PM2 = ag.getPM2_Raw();
|
||||||
int CO2 = ag.getC02();
|
int CO2 = ag.getCO2_Raw();
|
||||||
TMP_RH result = ag.periodicFetchData();
|
TMP_RH result = ag.periodicFetchData();
|
||||||
showTextRectangle(String(result.t)+"c "+String(result.rh)+"%", "PM2: "+ String(PM2), "CO2: "+String(CO2)+"");
|
showTextRectangle(String(result.t)+"c "+String(result.rh)+"%", "PM2: "+ String(ag.getPM2()), "CO2: "+String(ag.getCO2())+"");
|
||||||
delay(5000);
|
delay(5000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ void setup(){
|
|||||||
Serial.begin(9600);
|
Serial.begin(9600);
|
||||||
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
|
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
|
||||||
ag.PMS_Init();
|
ag.PMS_Init();
|
||||||
ag.C02_Init();
|
ag.CO2_Init();
|
||||||
ag.TMP_RH_Init(0x44); //check for SHT sensor with address 0x44
|
ag.TMP_RH_Init(0x44); //check for SHT sensor with address 0x44
|
||||||
showTextRectangle("Init", String(ESP.getChipId(),HEX),"AirGradient");
|
showTextRectangle("Init", String(ESP.getChipId(),HEX),"AirGradient");
|
||||||
connectToWifi();
|
connectToWifi();
|
||||||
@ -23,13 +23,13 @@ void setup(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void loop(){
|
void loop(){
|
||||||
int PM2 = ag.getPM2();
|
int PM2 = ag.getPM2_Raw();
|
||||||
int CO2 = ag.getC02();
|
int CO2 = ag.getCO2_Raw();
|
||||||
TMP_RH result = ag.periodicFetchData();
|
TMP_RH result = ag.periodicFetchData();
|
||||||
showTextRectangle(String(result.t)+"c "+String(result.rh)+"%", "PM2: "+ String(PM2), "CO2: "+String(CO2)+"");
|
showTextRectangle(String(result.t)+"c "+String(result.rh)+"%", "PM2: "+ String(PM2), "CO2: "+String(CO2)+"");
|
||||||
|
|
||||||
// send payload
|
// send payload
|
||||||
String payload = "{\"pm02\":" + String(PM2) + ",\"wifi\":" + String(WiFi.RSSI()) + ",\"rco2\":" + String(CO2) + ",\"atmp\":" + String(result.t) + ",\"rhum\":" + String(result.rh) + "}";
|
String payload = "{\"pm02\":" + String(ag.getPM2()) + ",\"wifi\":" + String(WiFi.RSSI()) + ",\"rco2\":" + String(ag.getCO2()) + ",\"atmp\":" + String(result.t) + ",\"rhum\":" + String(result.rh) + "}";
|
||||||
Serial.println(payload);
|
Serial.println(payload);
|
||||||
String POSTURL = APIROOT + "sensors/airgradient:" + String(ESP.getChipId(),HEX) + "/measures";
|
String POSTURL = APIROOT + "sensors/airgradient:" + String(ESP.getChipId(),HEX) + "/measures";
|
||||||
Serial.println(POSTURL);
|
Serial.println(POSTURL);
|
||||||
|
@ -3,14 +3,14 @@ AirGradient ag = AirGradient();
|
|||||||
|
|
||||||
void setup(){
|
void setup(){
|
||||||
Serial.begin(9600);
|
Serial.begin(9600);
|
||||||
ag.C02_Init();
|
ag.CO2_Init();
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop(){
|
void loop(){
|
||||||
|
|
||||||
int CO2 = ag.getC02();
|
int CO2 = ag.getCO2_Raw();
|
||||||
Serial.print("C02: ");
|
Serial.print("C02: ");
|
||||||
Serial.println(CO2);
|
Serial.println(ag.getCO2());
|
||||||
|
|
||||||
delay(5000);
|
delay(5000);
|
||||||
}
|
}
|
||||||
|
@ -8,9 +8,9 @@ void setup(){
|
|||||||
|
|
||||||
void loop(){
|
void loop(){
|
||||||
|
|
||||||
int PM2 = ag.getPM2();
|
int PM2 = ag.getPM2_Raw();
|
||||||
Serial.print("PM2: ");
|
Serial.print("PM2: ");
|
||||||
Serial.println(PM2);
|
Serial.println(ag.getPM2());
|
||||||
|
|
||||||
delay(5000);
|
delay(5000);
|
||||||
}
|
}
|
||||||
|
@ -9,8 +9,8 @@ void setup(){
|
|||||||
void loop(){
|
void loop(){
|
||||||
TMP_RH result = ag.periodicFetchData();
|
TMP_RH result = ag.periodicFetchData();
|
||||||
Serial.print("Humidity: ");
|
Serial.print("Humidity: ");
|
||||||
Serial.print(result.rh);
|
Serial.print(result.rh_char);
|
||||||
Serial.print(" Temperature: ");
|
Serial.print(" Temperature: ");
|
||||||
Serial.println(result.t);
|
Serial.println(result.t_char);
|
||||||
delay(5000);
|
delay(5000);
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@ AirGradient KEYWORD1
|
|||||||
#######################################
|
#######################################
|
||||||
|
|
||||||
setOutput KEYWORD2
|
setOutput KEYWORD2
|
||||||
beginC02 KEYWORD2
|
beginCO2 KEYWORD2
|
||||||
PMS_Init KEYWORD2
|
PMS_Init KEYWORD2
|
||||||
PMS KEYWORD2
|
PMS KEYWORD2
|
||||||
sleep KEYWORD2
|
sleep KEYWORD2
|
||||||
@ -41,9 +41,9 @@ periodicFetchData KEYWORD2
|
|||||||
periodicStop KEYWORD2
|
periodicStop KEYWORD2
|
||||||
|
|
||||||
|
|
||||||
C02_Init KEYWORD2
|
CO2_Init KEYWORD2
|
||||||
getC02 KEYWORD2
|
getCO2 KEYWORD2
|
||||||
get_C02_values KEYWORD2
|
get_CO2_values KEYWORD2
|
||||||
|
|
||||||
|
|
||||||
MHZ19_Init KEYWORD2
|
MHZ19_Init KEYWORD2
|
||||||
|
Reference in New Issue
Block a user