Adafruit AHT10 Library
Adafruit_AHTX0.h
Go to the documentation of this file.
1 
18 #ifndef _ADAFRUIT_AHTX0_H
19 #define _ADAFRUIT_AHTX0_H
20 
21 #include "Arduino.h"
22 #include <Adafruit_BusIO_Register.h>
23 #include <Adafruit_I2CDevice.h>
24 #include <Adafruit_Sensor.h>
25 #include <Wire.h>
26 
27 #define AHTX0_I2CADDR_DEFAULT 0x38
28 #define AHTX0_I2CADDR_ALTERNATE 0x39
29 #define AHTX0_CMD_CALIBRATE 0xE1
30 #define AHTX0_CMD_TRIGGER 0xAC
31 #define AHTX0_CMD_SOFTRESET 0xBA
32 #define AHTX0_STATUS_BUSY 0x80
33 #define AHTX0_STATUS_CALIBRATED 0x08
34 
35 class Adafruit_AHTX0;
36 
42 class Adafruit_AHTX0_Humidity : public Adafruit_Sensor {
43 public:
46  Adafruit_AHTX0_Humidity(Adafruit_AHTX0 *parent) { _theAHTX0 = parent; }
47  bool getEvent(sensors_event_t *);
48  void getSensor(sensor_t *);
49 
50 private:
51  int _sensorID = 0x1020;
52  Adafruit_AHTX0 *_theAHTX0 = NULL;
53 };
54 
60 class Adafruit_AHTX0_Temp : public Adafruit_Sensor {
61 public:
64  Adafruit_AHTX0_Temp(Adafruit_AHTX0 *parent) { _theAHTX0 = parent; }
65 
66  bool getEvent(sensors_event_t *);
67  void getSensor(sensor_t *);
68 
69 private:
70  int _sensorID = 0x1021;
71  Adafruit_AHTX0 *_theAHTX0 = NULL;
72 };
73 
79 public:
81  ~Adafruit_AHTX0();
82 
83  bool begin(TwoWire *wire = &Wire, int32_t sensor_id = 0,
84  uint8_t i2c_address = AHTX0_I2CADDR_DEFAULT);
85 
86  bool getEvent(sensors_event_t *humidity, sensors_event_t *temp);
87  uint8_t getStatus(void);
88  Adafruit_Sensor *getTemperatureSensor(void);
89  Adafruit_Sensor *getHumiditySensor(void);
90 
91 protected:
92  float _temperature,
93  _humidity;
94 
95  uint16_t _sensorid_humidity;
96  uint16_t _sensorid_temp;
97 
98  Adafruit_I2CDevice *i2c_dev = NULL;
99 
100  Adafruit_AHTX0_Temp *temp_sensor = NULL;
101  Adafruit_AHTX0_Humidity *humidity_sensor =
102  NULL;
103 
104 private:
105  void _fetchTempCalibrationValues(void);
106  void _fetchHumidityCalibrationValues(void);
107  friend class Adafruit_AHTX0_Temp;
108  friend class Adafruit_AHTX0_Humidity;
110 
112  void fillTempEvent(sensors_event_t *temp, uint32_t timestamp);
113  void fillHumidityEvent(sensors_event_t *humidity, uint32_t timestamp);
114 };
115 
116 #endif
uint16_t _sensorid_temp
ID number for temperature.
Definition: Adafruit_AHTX0.h:96
uint16_t _sensorid_humidity
ID number for humidity.
Definition: Adafruit_AHTX0.h:95
#define AHTX0_I2CADDR_DEFAULT
AHT default i2c address.
Definition: Adafruit_AHTX0.h:27
Adafruit Unified Sensor interface for the temperature sensor component of AHT10/AHT20.
Definition: Adafruit_AHTX0.h:60
Class that stores state and functions for interacting with the AHT10/AHT20 I2C Temperature/Humidity s...
Definition: Adafruit_AHTX0.h:78
Adafruit Unified Sensor interface for the humidity sensor component of AHT10/AHT20.
Definition: Adafruit_AHTX0.h:42
Adafruit_AHTX0_Temp(Adafruit_AHTX0 *parent)
Create an Adafruit_Sensor compatible object for the temp sensor.
Definition: Adafruit_AHTX0.h:64
Adafruit_AHTX0_Humidity(Adafruit_AHTX0 *parent)
Create an Adafruit_Sensor compatible object for the humidity sensor.
Definition: Adafruit_AHTX0.h:46
void getSensor(sensor_t *)
Gets the sensor_t object describing the AHTx0&#39;s humidity sensor.
Definition: Adafruit_AHTX0.cpp:212
float _temperature
Last reading&#39;s temperature (C)
Definition: Adafruit_AHTX0.h:92
bool getEvent(sensors_event_t *)
Gets the humidity as a standard sensor event.
Definition: Adafruit_AHTX0.cpp:232