forked from airgradienthq/arduino
@ -429,13 +429,12 @@ public:
|
||||
*/
|
||||
void showServerConfig(void) {
|
||||
Serial.println("Server configuration: ");
|
||||
Serial.printf(" inF: %s\r\n", config.inF ? "true" : "false");
|
||||
Serial.printf(" inUSAQI: %s\r\n",
|
||||
config.inUSAQI ? "true" : "false");
|
||||
Serial.printf(" useRGBLedBar: %d\r\n", (int)config.useRGBLedBar);
|
||||
Serial.printf(" Model: %s\r\n", config.models);
|
||||
Serial.printf(" Mqtt Broker: %s\r\n", config.mqttBrokers);
|
||||
Serial.printf(" S8 calib period: %d\r\n", co2AbcCalib);
|
||||
Serial.printf("inF: %s\r\n", config.inF ? "true" : "false");
|
||||
Serial.printf("inUSAQI: %s\r\n", config.inUSAQI ? "true" : "false");
|
||||
Serial.printf("useRGBLedBar: %d\r\n", (int)config.useRGBLedBar);
|
||||
Serial.printf("Model: %s\r\n", config.models);
|
||||
Serial.printf("MQTT Broker: %s\r\n", config.mqttBrokers);
|
||||
Serial.printf("S8 calibration period: %d\r\n", co2AbcCalib);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -566,19 +565,19 @@ public:
|
||||
/** init client */
|
||||
client = esp_mqtt_client_init(&config);
|
||||
if (client == NULL) {
|
||||
Serial.println("mqtt client init failed");
|
||||
Serial.println("MQTT client init failed");
|
||||
return false;
|
||||
}
|
||||
|
||||
/** Register event */
|
||||
if (esp_mqtt_client_register_event(client, MQTT_EVENT_ANY,
|
||||
mqtt_event_handler, NULL) != ESP_OK) {
|
||||
Serial.println("mqtt client register event failed");
|
||||
Serial.println("MQTT client register event failed");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (esp_mqtt_client_start(client) != ESP_OK) {
|
||||
Serial.println("mqtt client start failed");
|
||||
Serial.println("MQTT client start failed");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -711,8 +710,10 @@ bool hasSensorSGP = true;
|
||||
bool hasSensorSHT = true;
|
||||
int pmFailCount = 0;
|
||||
uint32_t factoryBtnPressTime = 0;
|
||||
String mdnsModelName = "";
|
||||
String mdnsModelName = "I-9PSL";
|
||||
int getCO2FailCount = 0;
|
||||
uint32_t addToDashboardTime;
|
||||
bool isAddToDashboard = true;
|
||||
AgSchedule dispLedSchedule(DISP_UPDATE_INTERVAL, displayAndLedBarUpdate);
|
||||
AgSchedule configSchedule(SERVER_CONFIG_UPDATE_INTERVAL,
|
||||
updateServerConfiguration);
|
||||
@ -915,7 +916,7 @@ static void co2Update(void) {
|
||||
if (value >= 0) {
|
||||
co2Ppm = value;
|
||||
getCO2FailCount = 0;
|
||||
Serial.printf("CO2 index: %d\r\n", co2Ppm);
|
||||
Serial.printf("CO2 (ppm): %d\r\n", co2Ppm);
|
||||
} else {
|
||||
getCO2FailCount++;
|
||||
Serial.printf("Get CO2 failed: %d\r\n", getCO2FailCount);
|
||||
@ -1082,7 +1083,7 @@ void webServerHandler(void *param) {
|
||||
static void webServerInit(void) {
|
||||
String host = "airgradient_" + getDevId();
|
||||
if (!MDNS.begin(host)) {
|
||||
Serial.println("Init MDNS failed");
|
||||
Serial.println("Init mDNS failed");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1091,9 +1092,16 @@ static void webServerInit(void) {
|
||||
webServer.on("/metrics", HTTP_GET, webServerMetricsGet);
|
||||
webServer.begin();
|
||||
MDNS.addService("http", "tcp", 80);
|
||||
MDNS.addServiceTxt("http", "_tcp", "model", ag.getBoardName());
|
||||
MDNS.addServiceTxt("http", "_tcp", "model", mdnsModelName);
|
||||
MDNS.addServiceTxt("http", "_tcp", "serialno", getDevId());
|
||||
MDNS.addServiceTxt("http", "_tcp", "fw_ver", ag.getVersion());
|
||||
MDNS.addServiceTxt("http", "_tcp", "vendor", "AirGradient");
|
||||
MDNS.addService("http", "tcp", 80);
|
||||
MDNS.addService("_airgradient", "tcp", 80);
|
||||
MDNS.addServiceTxt("airgradient", "_tcp", "model", mdnsModelName);
|
||||
MDNS.addServiceTxt("airgradient", "_tcp", "serialno", getDevId());
|
||||
MDNS.addServiceTxt("airgradient", "_tcp", "fw_ver", ag.getVersion());
|
||||
MDNS.addServiceTxt("airgradient", "_tcp", "vendor", "AirGradient");
|
||||
|
||||
if (xTaskCreate(webServerHandler, "webserver", 1024 * 4, NULL, 5, NULL) !=
|
||||
pdTRUE) {
|
||||
@ -1171,9 +1179,9 @@ static void createMqttTask(void) {
|
||||
String topic = "airgradient/readings/" + getDevId();
|
||||
if (agMqtt.publish(topic.c_str(), syncData.c_str(),
|
||||
syncData.length())) {
|
||||
Serial.println("Mqtt sync success");
|
||||
Serial.println("MQTT sync success");
|
||||
} else {
|
||||
Serial.println("Mqtt sync failure");
|
||||
Serial.println("MQTT sync failure");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1336,7 +1344,7 @@ static void displayShowDashboard(String err) {
|
||||
u8g2.drawStr(105, 10, strBuf);
|
||||
}
|
||||
} else {
|
||||
Serial.println("Disp show error: " + err);
|
||||
Serial.println("Display show error: " + err);
|
||||
int strWidth = u8g2.getStrWidth(err.c_str());
|
||||
u8g2.drawStr((126 - strWidth) / 2, 10, err.c_str());
|
||||
|
||||
@ -1753,7 +1761,7 @@ static void updateServerConfiguration(void) {
|
||||
if (hasSensorS8) {
|
||||
co2Calibration();
|
||||
} else {
|
||||
Serial.println("CO2 S8 not available, calib ignored");
|
||||
Serial.println("CO2 S8 not available, calibration ignored");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1765,13 +1773,13 @@ static void updateServerConfiguration(void) {
|
||||
int curHour = ag.s8.getAbcPeriod();
|
||||
Serial.printf("Current config: %d (hours)\r\n", curHour);
|
||||
if (curHour == newHour) {
|
||||
Serial.println("set 'abcDays' ignored");
|
||||
Serial.println("Set 'abcDays' ignored");
|
||||
} else {
|
||||
if (ag.s8.setAbcPeriod(agServer.getCo2AbcDaysConfig() * 24) ==
|
||||
false) {
|
||||
Serial.println("Set S8 abcDays period calib failed");
|
||||
Serial.println("Set S8 abcDays period calibration failed");
|
||||
} else {
|
||||
Serial.println("Set S8 abcDays period calib success");
|
||||
Serial.println("Set S8 abcDays period calibration success");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -1796,10 +1804,10 @@ static void updateServerConfiguration(void) {
|
||||
mqttTask = NULL;
|
||||
}
|
||||
if (agMqtt.begin(mqttUri)) {
|
||||
Serial.println("Connect to new mqtt broker success");
|
||||
Serial.println("Connect to MQTT broker successful");
|
||||
createMqttTask();
|
||||
} else {
|
||||
Serial.println("Connect to new mqtt broker failed");
|
||||
Serial.println("Connect to MQTT broker failed");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2102,7 +2110,16 @@ static void dispSmHandler(int sm) {
|
||||
break;
|
||||
}
|
||||
case APP_SM_SENSOR_CONFIG_FAILED: {
|
||||
displayShowDashboard("Add to Dashboard");
|
||||
uint32_t ms = (uint32_t)(millis() - addToDashboardTime);
|
||||
if (ms >= 5000) {
|
||||
addToDashboardTime = millis();
|
||||
if (isAddToDashboard) {
|
||||
displayShowDashboard("Add to Dashboard");
|
||||
} else {
|
||||
displayShowDashboard(getDevId());
|
||||
}
|
||||
isAddToDashboard = !isAddToDashboard;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case APP_SM_NORMAL: {
|
||||
@ -2204,10 +2221,10 @@ static void tvocUpdate(void) {
|
||||
noxRawIndex = ag.sgp41.getNoxRaw();
|
||||
|
||||
Serial.println();
|
||||
Serial.printf(" TVOC index: %d\r\n", tvocIndex);
|
||||
Serial.printf("TVOC raw index: %d\r\n", tvocRawIndex);
|
||||
Serial.printf(" NOx index: %d\r\n", noxIndex);
|
||||
Serial.printf(" NOx raw index: %d\r\n", noxRawIndex);
|
||||
Serial.printf("TVOC index: %d\r\n", tvocIndex);
|
||||
Serial.printf("TVOC raw: %d\r\n", tvocRawIndex);
|
||||
Serial.printf("NOx index: %d\r\n", noxIndex);
|
||||
Serial.printf("NOx raw: %d\r\n", noxRawIndex);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -2222,14 +2239,14 @@ static void pmUpdate(void) {
|
||||
pm03PCount = ag.pms5003.getPm03ParticleCount();
|
||||
|
||||
Serial.println();
|
||||
Serial.printf(" PMS0.1: %d\r\n", pm01);
|
||||
Serial.printf(" PMS2.5: %d\r\n", pm25);
|
||||
Serial.printf(" PMS10.0: %d\r\n", pm10);
|
||||
Serial.printf("PMS3.0 Count: %d\r\n", pm03PCount);
|
||||
Serial.printf("PM1 ug/m3: %d\r\n", pm01);
|
||||
Serial.printf("PM2.5 ug/m3: %d\r\n", pm25);
|
||||
Serial.printf("PM10 ug/m3: %d\r\n", pm10);
|
||||
Serial.printf("PM0.3 Count: %d\r\n", pm03PCount);
|
||||
pmFailCount = 0;
|
||||
} else {
|
||||
pmFailCount++;
|
||||
Serial.printf("PM read failed: %d\r\n", pmFailCount);
|
||||
Serial.printf("PMS read failed: %d\r\n", pmFailCount);
|
||||
if (pmFailCount >= 3) {
|
||||
pm01 = -1;
|
||||
pm25 = -1;
|
||||
@ -2261,10 +2278,10 @@ static void tempHumUpdate(void) {
|
||||
temp = ag.sht.getTemperature();
|
||||
hum = ag.sht.getRelativeHumidity();
|
||||
|
||||
Serial.printf("Temperature: %0.2f\r\n", temp);
|
||||
Serial.printf(" Humidity: %d\r\n", hum);
|
||||
Serial.printf("Temperature in C: %0.2f\r\n", temp);
|
||||
Serial.printf("Relative Humidity: %d\r\n", hum);
|
||||
} else {
|
||||
Serial.println("Measure SHT failed");
|
||||
Serial.println("SHT read failed");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -430,13 +430,12 @@ public:
|
||||
*/
|
||||
void showServerConfig(void) {
|
||||
Serial.println("Server configuration: ");
|
||||
Serial.printf(" inF: %s\r\n", config.inF ? "true" : "false");
|
||||
Serial.printf(" inUSAQI: %s\r\n",
|
||||
config.inUSAQI ? "true" : "false");
|
||||
Serial.printf(" useRGBLedBar: %d\r\n", (int)config.useRGBLedBar);
|
||||
Serial.printf(" Model: %s\r\n", config.models);
|
||||
Serial.printf(" Mqtt Broker: %s\r\n", config.mqttBrokers);
|
||||
Serial.printf(" S8 calib period: %d\r\n", co2AbcCalib);
|
||||
Serial.printf("inF: %s\r\n", config.inF ? "true" : "false");
|
||||
Serial.printf("inUSAQI: %s\r\n", config.inUSAQI ? "true" : "false");
|
||||
Serial.printf("useRGBLedBar: %d\r\n", (int)config.useRGBLedBar);
|
||||
Serial.printf("Model: %s\r\n", config.models);
|
||||
Serial.printf("MQTT Broker: %s\r\n", config.mqttBrokers);
|
||||
Serial.printf("S8 calibration period: %d\r\n", co2AbcCalib);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -567,19 +566,19 @@ public:
|
||||
/** init client */
|
||||
client = esp_mqtt_client_init(&config);
|
||||
if (client == NULL) {
|
||||
Serial.println("mqtt client init failed");
|
||||
Serial.println("MQTT client init failed");
|
||||
return false;
|
||||
}
|
||||
|
||||
/** Register event */
|
||||
if (esp_mqtt_client_register_event(client, MQTT_EVENT_ANY,
|
||||
mqtt_event_handler, NULL) != ESP_OK) {
|
||||
Serial.println("mqtt client register event failed");
|
||||
Serial.println("MQTT client register event failed");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (esp_mqtt_client_start(client) != ESP_OK) {
|
||||
Serial.println("mqtt client start failed");
|
||||
Serial.println("MQTT client start failed");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -701,7 +700,8 @@ const int targetCount = 20;
|
||||
enum {
|
||||
FW_MODE_PST, /** PMS5003T, S8 and SGP41 */
|
||||
FW_MODE_PPT, /** PMS5003T_1, PMS5003T_2, SGP41 */
|
||||
FW_MODE_PP /** PMS5003T_1, PMS5003T_2 */
|
||||
FW_MODE_PP, /** PMS5003T_1, PMS5003T_2 */
|
||||
FW_MDOE_PS /** PMS5003T, S8 */
|
||||
};
|
||||
int fw_mode = FW_MODE_PST;
|
||||
|
||||
@ -950,9 +950,10 @@ void boardInit(void) {
|
||||
|
||||
if (hasSensorS8 == false) {
|
||||
fw_mode = FW_MODE_PP;
|
||||
Serial.println("Can not detect SGP run mode 'PP'");
|
||||
Serial.println("Can not detect SGP run mode 'O-1PP'");
|
||||
} else {
|
||||
Serial.println("Can not detect SGP run mode 'PST' without SGP");
|
||||
Serial.println("Can not detect SGP run mode 'O-1PS'");
|
||||
fw_mode = FW_MDOE_PS;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1004,6 +1005,21 @@ void boardInit(void) {
|
||||
}
|
||||
|
||||
Serial.printf("Firmware Mode: %s\r\n", getFwMode(fw_mode));
|
||||
switch (fw_mode) {
|
||||
case FW_MODE_PP:
|
||||
mdnsModelName = "O-1PP";
|
||||
break;
|
||||
case FW_MODE_PPT:
|
||||
mdnsModelName = "O-1PPT";
|
||||
break;
|
||||
case FW_MODE_PST:
|
||||
mdnsModelName = "O-1PST";
|
||||
break;
|
||||
case FW_MDOE_PS:
|
||||
mdnsModelName = "0-1PS";
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void failedHandler(String msg) {
|
||||
@ -1016,7 +1032,7 @@ void failedHandler(String msg) {
|
||||
void co2Calibration(void) {
|
||||
/** Count down for co2CalibCountdown secs */
|
||||
for (int i = 0; i < SENSOR_CO2_CALIB_COUNTDOWN_MAX; i++) {
|
||||
Serial.printf("Start CO2 calib after %d sec\r\n",
|
||||
Serial.printf("Start CO2 calibration after %d sec\r\n",
|
||||
SENSOR_CO2_CALIB_COUNTDOWN_MAX - i);
|
||||
delay(1000);
|
||||
}
|
||||
@ -1024,16 +1040,16 @@ void co2Calibration(void) {
|
||||
if (ag.s8.setBaselineCalibration()) {
|
||||
Serial.println("Calibration success");
|
||||
delay(1000);
|
||||
Serial.println("Wait for calib finish...");
|
||||
Serial.println("Wait for calibration to finish...");
|
||||
int count = 0;
|
||||
while (ag.s8.isBaseLineCalibrationDone() == false) {
|
||||
delay(1000);
|
||||
count++;
|
||||
}
|
||||
Serial.printf("Calib finish after %d sec\r\n", count);
|
||||
Serial.printf("Calibration finished after %d sec\r\n", count);
|
||||
delay(2000);
|
||||
} else {
|
||||
Serial.println("Calibration failure!!!");
|
||||
Serial.println("Calibration failure");
|
||||
delay(2000);
|
||||
}
|
||||
}
|
||||
@ -1055,7 +1071,7 @@ static void updateWiFiConnect(void) {
|
||||
lastRetry = millis();
|
||||
WiFi.reconnect();
|
||||
|
||||
Serial.printf("Re-Connect WiFi\r\n");
|
||||
Serial.printf("Re-Connect to WiFi\r\n");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1070,10 +1086,10 @@ static void tvocUpdate(void) {
|
||||
noxRawIndex = ag.sgp41.getNoxRaw();
|
||||
|
||||
Serial.println();
|
||||
Serial.printf(" TVOC index: %d\r\n", tvocIndex);
|
||||
Serial.printf("TVOC raw index: %d\r\n", tvocRawIndex);
|
||||
Serial.printf(" NOx index: %d\r\n", noxIndex);
|
||||
Serial.printf(" NOx raw index: %d\r\n", noxRawIndex);
|
||||
Serial.printf("TVOC index: %d\r\n", tvocIndex);
|
||||
Serial.printf("TVOC raw: %d\r\n", tvocRawIndex);
|
||||
Serial.printf("NOx index: %d\r\n", noxIndex);
|
||||
Serial.printf("NOx raw: %d\r\n", noxRawIndex);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1094,12 +1110,12 @@ static void pmUpdate(void) {
|
||||
pmsResult_1 = true;
|
||||
|
||||
Serial.println();
|
||||
Serial.printf("[1] PMS0.1: %d\r\n", pm01_1);
|
||||
Serial.printf("[1] PMS2.5: %d\r\n", pm25_1);
|
||||
Serial.printf("[1] PMS10.0: %d\r\n", pm10_1);
|
||||
Serial.printf("[1]PMS3.0 Count: %d\r\n", pm03PCount_1);
|
||||
Serial.printf("[1] Temperature: %0.2f\r\n", temp_1);
|
||||
Serial.printf("[1] Humidity: %d\r\n", hum_1);
|
||||
Serial.printf("[1] PM1 ug/m3: %d\r\n", pm01_1);
|
||||
Serial.printf("[1] PM2.5 ug/m3: %d\r\n", pm25_1);
|
||||
Serial.printf("[1] PM10 ug/m3: %d\r\n", pm10_1);
|
||||
Serial.printf("[1] PM3.0 Count: %d\r\n", pm03PCount_1);
|
||||
Serial.printf("[1] Temperature in C: %0.2f\r\n", temp_1);
|
||||
Serial.printf("[1] Relative Humidity: %d\r\n", hum_1);
|
||||
} else {
|
||||
pm01_1 = -1;
|
||||
pm25_1 = -1;
|
||||
@ -1120,12 +1136,12 @@ static void pmUpdate(void) {
|
||||
pmsResult_2 = true;
|
||||
|
||||
Serial.println();
|
||||
Serial.printf("[2] PMS0.1: %d\r\n", pm01_2);
|
||||
Serial.printf("[2] PMS2.5: %d\r\n", pm25_2);
|
||||
Serial.printf("[2] PMS10.0: %d\r\n", pm10_2);
|
||||
Serial.printf("[2]PMS3.0 Count: %d\r\n", pm03PCount_2);
|
||||
Serial.printf("[2] Temperature: %0.2f\r\n", temp_2);
|
||||
Serial.printf("[2] Humidity: %d\r\n", hum_2);
|
||||
Serial.printf("[2] PM1 ug/m3: %d\r\n", pm01_2);
|
||||
Serial.printf("[2] PM2.5 ug/m3: %d\r\n", pm25_2);
|
||||
Serial.printf("[2] PM10 ug/m3: %d\r\n", pm10_2);
|
||||
Serial.printf("[2] PM3.0 Count: %d\r\n", pm03PCount_2);
|
||||
Serial.printf("[2] Temperature in C: %0.2f\r\n", temp_2);
|
||||
Serial.printf("[2] Relative Humidity: %d\r\n", hum_2);
|
||||
} else {
|
||||
pm01_2 = -1;
|
||||
pm25_2 = -1;
|
||||
@ -1193,7 +1209,7 @@ static void co2Update(void) {
|
||||
if (value >= 0) {
|
||||
co2Ppm = value;
|
||||
getCO2FailCount = 0;
|
||||
Serial.printf("CO2 index: %d\r\n", co2Ppm);
|
||||
Serial.printf("CO2 ppm: %d\r\n", co2Ppm);
|
||||
} else {
|
||||
getCO2FailCount++;
|
||||
Serial.printf("Get CO2 failed: %d\r\n", getCO2FailCount);
|
||||
@ -1211,7 +1227,7 @@ static void updateServerConfiguration(void) {
|
||||
if (hasSensorS8) {
|
||||
co2Calibration();
|
||||
} else {
|
||||
Serial.println("CO2 S8 not available, calib ignored");
|
||||
Serial.println("CO2 S8 not available, calibration ignored");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1223,13 +1239,13 @@ static void updateServerConfiguration(void) {
|
||||
int curHour = ag.s8.getAbcPeriod();
|
||||
Serial.printf("Current config: %d (hours)\r\n", curHour);
|
||||
if (curHour == newHour) {
|
||||
Serial.println("set 'abcDays' ignored");
|
||||
Serial.println("Set 'abcDays' ignored");
|
||||
} else {
|
||||
if (ag.s8.setAbcPeriod(agServer.getCo2AbcDaysConfig() * 24) ==
|
||||
false) {
|
||||
Serial.println("Set S8 abcDays period calib failed");
|
||||
Serial.println("Set S8 abcDays period calibration failed");
|
||||
} else {
|
||||
Serial.println("Set S8 abcDays period calib success");
|
||||
Serial.println("Set S8 abcDays period calibration success");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1246,10 +1262,10 @@ static void updateServerConfiguration(void) {
|
||||
mqttTask = NULL;
|
||||
}
|
||||
if (agMqtt.begin(mqttUri)) {
|
||||
Serial.println("Connect to new mqtt broker success");
|
||||
Serial.println("Connect to MQTT broker successful");
|
||||
createMqttTask();
|
||||
} else {
|
||||
Serial.println("Connect to new mqtt broker failed");
|
||||
Serial.println("Connect to MQTT broker failed");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1366,6 +1382,8 @@ static const char *getFwMode(int mode) {
|
||||
return "FW_MODE_PPT";
|
||||
case FW_MODE_PP:
|
||||
return "FW_MODE_PP";
|
||||
case FW_MDOE_PS:
|
||||
return "FW_MODE_PS";
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -1394,9 +1412,16 @@ static void webServerInit(void) {
|
||||
webServer.on("/measures/current", HTTP_GET, webServerMeasureCurrentGet);
|
||||
webServer.begin();
|
||||
MDNS.addService("http", "tcp", 80);
|
||||
MDNS.addServiceTxt("http", "_tcp", "model", ag.getBoardName());
|
||||
MDNS.addServiceTxt("http", "_tcp", "model", mdnsModelName);
|
||||
MDNS.addServiceTxt("http", "_tcp", "serialno", getDevId());
|
||||
MDNS.addServiceTxt("http", "_tcp", "fw_ver", ag.getVersion());
|
||||
MDNS.addServiceTxt("http", "_tcp", "vendor", "AirGradient");
|
||||
MDNS.addService("http", "tcp", 80);
|
||||
MDNS.addService("_airgradient", "tcp", 80);
|
||||
MDNS.addServiceTxt("airgradient", "_tcp", "model", mdnsModelName);
|
||||
MDNS.addServiceTxt("airgradient", "_tcp", "serialno", getDevId());
|
||||
MDNS.addServiceTxt("airgradient", "_tcp", "fw_ver", ag.getVersion());
|
||||
MDNS.addServiceTxt("airgradient", "_tcp", "vendor", "AirGradient");
|
||||
|
||||
if (xTaskCreate(webServerHandler, "webserver", 1024 * 4, NULL, 5, NULL) !=
|
||||
pdTRUE) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
name=AirGradient Air Quality Sensor
|
||||
version=3.0.6
|
||||
version=3.0.7
|
||||
author=AirGradient <support@airgradient.com>
|
||||
maintainer=AirGradient <support@airgradient.com>
|
||||
sentence=ESP32-C3 / ESP8266 library for air quality monitor measuring PM, CO2, Temperature, TVOC and Humidity with OLED display.
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include "AirGradient.h"
|
||||
|
||||
#define AG_LIB_VER "3.0.6"
|
||||
#define AG_LIB_VER "3.0.7"
|
||||
|
||||
AirGradient::AirGradient(BoardType type)
|
||||
: pms5003(type), pms5003t_1(type), pms5003t_2(type), s8(type), sgp41(type),
|
||||
|
Reference in New Issue
Block a user