added CO2 and VOC sensor
This commit is contained in:
@@ -3,36 +3,53 @@
|
||||
Adafruit_SCD30 scd30;
|
||||
|
||||
#define CO2_INTERVAL 120000 //ms
|
||||
#define SCD30TEMPMAX 50
|
||||
#define SDC30HUMMAX 100
|
||||
#define SCD30CO2MAX 20000
|
||||
#define SCD30MIN 0
|
||||
|
||||
uint8_t CO2_samples = 3600 / g_pms_report_period;
|
||||
|
||||
AQSSensor SCD30_temperature("Temperature", device_name, CO2_samples);
|
||||
AQSSensor SCD30_Humidity("Humidity", device_name, CO2_samples);
|
||||
AQSSensor SCD30_CO2("CO2", device_name, CO2_samples);
|
||||
AQSSensor SCD30_temperature("Temperature", SCD30_temp, "degC", device_name, CO2_samples, SCD30MIN, SCD30TEMPMAX);
|
||||
AQSSensor SCD30_Humidity("Humidity", SCD30_hum, "%RH", device_name, CO2_samples, SCD30MIN, SDC30HUMMAX);
|
||||
AQSSensor SCD30_CO2("CO2", SCD30_co2, "PPM", device_name, CO2_samples, SCD30MIN, SCD30CO2MAX);
|
||||
|
||||
uint32_t CO2_lastUpdate = 0;
|
||||
|
||||
void initCO2sensor(void)
|
||||
{
|
||||
Serial.print("Init SCD30:");
|
||||
if (!scd30.begin(true))
|
||||
Serial.println("SCD30: init");
|
||||
if (!scd30.begin())
|
||||
{
|
||||
Serial.println("Failed to find SCD30 device");
|
||||
Serial.println("SCD30: Failed to find sensor");
|
||||
}
|
||||
else
|
||||
{
|
||||
//configure sensor
|
||||
scd30.setMeasurementInterval(g_pms_report_period);
|
||||
|
||||
addSensorToList(&SCD30_temperature);
|
||||
addSensorToList(&SCD30_Humidity);
|
||||
addSensorToList(&SCD30_CO2);
|
||||
addSensorToList(&SCD30_temperature);
|
||||
addSensorToList(&SCD30_Humidity);
|
||||
addSensorToList(&SCD30_CO2);
|
||||
|
||||
Serial.println(" OK");
|
||||
//check callibration Mode
|
||||
scd30.selfCalibrationEnabled(false);
|
||||
scd30.read();
|
||||
Serial.println("SCD30: init OK");
|
||||
}
|
||||
}
|
||||
|
||||
void handleCO2sensor(void)
|
||||
{
|
||||
uint32_t currentmillis = millis();
|
||||
|
||||
if (currentmillis - CO2_lastUpdate > CO2_INTERVAL)
|
||||
if ((currentmillis - CO2_lastUpdate > (g_pms_report_period * 1000)) || (!CO2_lastUpdate) && (scd30.dataReady()))
|
||||
{
|
||||
if (!scd30.read())
|
||||
{
|
||||
Serial.println("SCD30: read error!");
|
||||
return;
|
||||
}
|
||||
|
||||
SCD30_temperature.set(uint32_t(scd30.temperature));
|
||||
SCD30_Humidity.set(uint32_t(scd30.relative_humidity));
|
||||
SCD30_CO2.set(uint32_t(scd30.CO2));
|
||||
@@ -40,5 +57,7 @@ void handleCO2sensor(void)
|
||||
SCD30_temperature.publish();
|
||||
SCD30_Humidity.publish();
|
||||
SCD30_CO2.publish();
|
||||
|
||||
CO2_lastUpdate = currentmillis;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user