32 lines
1010 B
C++
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);
|
|
}
|