16 #ifndef _ADAFRUIT_SCD30_H 17 #define _ADAFRUIT_SCD30_H 20 #include <Adafruit_BusIO_Register.h> 21 #include <Adafruit_I2CDevice.h> 22 #include <Adafruit_Sensor.h> 24 #define SCD30_I2CADDR_DEFAULT 0x61 25 #define SCD30_CHIP_ID 0x60 27 #define SCD30_WHOAMI 0xD100 29 #define SCD30_CMD_READ_MEASUREMENT 0x0300 31 #define SCD30_CMD_CONTINUOUS_MEASUREMENT \ 33 #define SCD30_CMD_STOP_MEASUREMENTS 0x0104 34 #define SCD30_CMD_SET_MEASUREMENT_INTERVAL \ 36 #define SCD30_CMD_GET_DATA_READY 0x0202 37 #define SCD30_CMD_AUTOMATIC_SELF_CALIBRATION \ 39 #define SCD30_CMD_SET_FORCED_RECALIBRATION_REF \ 41 #define SCD30_CMD_SET_TEMPERATURE_OFFSET 0x5403 42 #define SCD30_CMD_SET_ALTITUDE_COMPENSATION \ 44 #define SCD30_CMD_SOFT_RESET 0xD304 45 #define SCD30_CMD_READ_REVISION 0xD100 72 int _sensorID = 0xC02;
87 int _sensorID = 0xC02 + 1;
101 int32_t sensor_id = 0);
104 bool dataReady(
void);
105 bool getEvent(sensors_event_t *humidity, sensors_event_t *temp);
109 uint16_t getMeasurementInterval(
void);
110 bool setMeasurementInterval(uint16_t interval);
112 bool selfCalibrationEnabled(
void);
113 bool selfCalibrationEnabled(
bool);
115 bool startContinuousMeasurement(uint16_t pressure = 0);
116 uint16_t getAmbientPressureOffset(
void);
118 bool setAltitudeOffset(uint16_t altitude);
119 uint16_t getAltitudeOffset(
void);
121 bool setTemperatureOffset(uint16_t temp_offset);
122 uint16_t getTemperatureOffset(
void);
124 bool forceRecalibrationWithReference(uint16_t reference);
125 uint16_t getForcedCalibrationReference(
void);
127 Adafruit_Sensor *getTemperatureSensor(
void);
128 Adafruit_Sensor *getHumiditySensor(
void);
135 virtual bool _init(int32_t sensor_id);
137 uint16_t _sensorid_humidity,
140 Adafruit_I2CDevice *i2c_dev = NULL;
153 void fillHumidityEvent(sensors_event_t *humidity, uint32_t timestamp);
154 void fillTempEvent(sensors_event_t *temp, uint32_t timestamp);
155 bool sendCommand(uint16_t command, uint16_t argument);
156 bool sendCommand(uint16_t command);
157 uint16_t getAmbiendPressure(
void);
158 uint8_t computeCRC8(uint8_t data[], uint8_t len);
159 uint16_t readRegister(uint16_t reg_address);
uint16_t _sensorid_temp
ID number for temperature.
Definition: Adafruit_SCD30.h:137
Class that stores state and functions for interacting with the SCD30 CO2, Temperature, and Humidity sensor.
Definition: Adafruit_SCD30.h:95
float temperature
The most recent temperature reading.
Definition: Adafruit_SCD30.h:129
void getSensor(sensor_t *)
Gets the sensor_t data for the SCD30's tenperature.
Definition: Adafruit_SCD30.cpp:454
Adafruit_SCD30_Humidity(Adafruit_SCD30 *parent)
Create an Adafruit_Sensor compatible object for the humidity sensor.
Definition: Adafruit_SCD30.h:82
bool getEvent(sensors_event_t *)
Gets the temperature as a standard sensor event.
Definition: Adafruit_SCD30.cpp:478
#define SCD30_I2CADDR_DEFAULT
SCD30 default i2c address.
Definition: Adafruit_SCD30.h:24
Definition: Adafruit_SCD30.h:78
scd30_rate_t
Allowed values for setDataRate.
Definition: Adafruit_SCD30.h:52
Definition: Adafruit_SCD30.h:63
Adafruit_SCD30_Temp(Adafruit_SCD30 *parent)
Create an Adafruit_Sensor compatible object for the temp sensor.
Definition: Adafruit_SCD30.h:67