Files
WxBox/src/sensors/CCS811Sensor.cpp
2024-04-07 03:01:19 +03:00

32 lines
1010 B
C++

// CCS811Sensor.cpp
#include "CCS811Sensor.h"
CCS811Sensor::CCS811Sensor(uint8_t wakePin) : _wakePin(wakePin), ccs811(wakePin) {
// Constructor sets the wake pin and initializes the ccs811 object
}
void CCS811Sensor::init(double* temperature, double* humidity) {
// Enable CCS811
bool ok = ccs811.begin();
// let's handle if not OK later
// Lock pointers to temperature and humidity values
ok = ccs811.start(CCS811_MODE_1SEC);
// if( !ok ) Serial.println("setup: CCS811 start FAILED");
_temperaturePtr = temperature;
_humidityPtr = humidity;
}
void CCS811Sensor::init() {
bool ok = ccs811.begin();
}
void CCS811Sensor::read_values(uint16_t* eco2, uint16_t* etvoc, uint16_t* errstat, uint16_t* raw) {
if (_temperaturePtr && _humidityPtr) {
// Set environmental data for CCS811 sensor using pointers
ccs811.set_envdata(*_temperaturePtr, *_humidityPtr);
}
// Read eCO2, eTVOC, error status, and raw data values from CCS811 sensor
ccs811.read(eco2, etvoc, errstat, raw);
}