use sparkfun lib for sensors adafruit has issues

This commit is contained in:
2021-07-28 08:19:40 +02:00
parent 3d740c9387
commit 2873d56b58
16 changed files with 626 additions and 577 deletions

View File

@@ -1,6 +1,7 @@
#include "CO2_sensor.h"
Adafruit_SCD30 scd30;
//Adafruit_SCD30 scd30;
SCD30 scd30;
#define CO2_INTERVAL 120000 //ms
#define SCD30TEMPMAX 50
@@ -19,6 +20,7 @@ uint32_t CO2_lastUpdate = 0;
void initCO2sensor(void)
{
Serial.println("SCD30: init");
Wire.begin();
if (!scd30.begin())
{
Serial.println("SCD30: Failed to find sensor");
@@ -33,8 +35,8 @@ void initCO2sensor(void)
addSensorToList(&SCD30_CO2);
//check callibration Mode
scd30.selfCalibrationEnabled(false);
scd30.read();
//scd30.selfCalibrationEnabled(false);
//scd30.read();
Serial.println("SCD30: init OK");
}
}
@@ -42,32 +44,21 @@ void initCO2sensor(void)
void handleCO2sensor(void)
{
uint32_t currentmillis = millis();
if ((currentmillis - CO2_lastUpdate > (g_pms_report_period * 1000)) || (!CO2_lastUpdate) )
if ((currentmillis - CO2_lastUpdate > (g_pms_report_period * 1000)) || (!CO2_lastUpdate))
{
if (!scd30.read())
{
Serial.println("SCD30: read error!");
return;
}
if(!scd30.dataReady())
if (!scd30.dataAvailable())
{
return;
}
else
{
SCD30_temperature.set(uint32_t(scd30.temperature));
SCD30_Humidity.set(uint32_t(scd30.relative_humidity));
SCD30_CO2.set(uint32_t(scd30.CO2));
SCD30_temperature.publish();
SCD30_Humidity.publish();
SCD30_CO2.publish();
CO2_lastUpdate = currentmillis;
}
SCD30_temperature.set(uint32_t(scd30.getTemperature()));
SCD30_Humidity.set(uint32_t(scd30.getHumidity()));
SCD30_CO2.set(uint32_t(scd30.getCO2()));
SCD30_temperature.publish();
SCD30_Humidity.publish();
SCD30_CO2.publish();
CO2_lastUpdate = currentmillis;
}
}