Adafruit HTU31D Arduino Library
Adafruit_HTU31D.h
Go to the documentation of this file.
1 
5 #ifndef _ADAFRUIT_HTU31D_H
6 #define _ADAFRUIT_HTU31D_H
7 
8 #include <Adafruit_BusIO_Register.h>
9 #include <Adafruit_I2CDevice.h>
10 #include <Adafruit_Sensor.h>
11 
13 #define HTU31D_DEFAULT_I2CADDR (0x40)
14 
16 #define HTU31D_READTEMPHUM (0x00)
17 
19 #define HTU31D_CONVERSION (0x40)
20 
22 #define HTU31D_READSERIAL (0x0A)
23 
25 #define HTU31D_HEATERON (0x04)
26 
28 #define HTU31D_HEATEROFF (0x02)
29 
31 #define HTU31D_RESET (0x1E)
32 
33 class Adafruit_HTU31D;
34 
40 class Adafruit_HTU31D_Humidity : public Adafruit_Sensor {
41 public:
44  Adafruit_HTU31D_Humidity(Adafruit_HTU31D *parent) { _theHTU31D = parent; }
45  bool getEvent(sensors_event_t *);
46  void getSensor(sensor_t *);
47 
48 private:
49  int _sensorID = 0x31D1;
50  Adafruit_HTU31D *_theHTU31D = NULL;
51 };
52 
58 class Adafruit_HTU31D_Temp : public Adafruit_Sensor {
59 public:
62  Adafruit_HTU31D_Temp(Adafruit_HTU31D *parent) { _theHTU31D = parent; }
63 
64  bool getEvent(sensors_event_t *);
65  void getSensor(sensor_t *);
66 
67 private:
68  int _sensorID = 0x31D0;
69  Adafruit_HTU31D *_theHTU31D = NULL;
70 };
71 
76 public:
78  ~Adafruit_HTU31D(void);
79 
80  bool begin(uint8_t i2c_addr = HTU31D_DEFAULT_I2CADDR,
81  TwoWire *theWire = &Wire);
82  bool reset(void);
83  uint32_t readSerial(void);
84 
85  bool enableHeater(bool en);
86 
87  bool getEvent(sensors_event_t *humidity, sensors_event_t *temp);
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  Adafruit_HTU31D_Temp *temp_sensor = NULL;
100  Adafruit_HTU31D_Humidity *humidity_sensor =
101  NULL;
102 
103 private:
104  friend class Adafruit_HTU31D_Temp;
105  friend class Adafruit_HTU31D_Humidity;
107  void fillTempEvent(sensors_event_t *temp, uint32_t timestamp);
109  void fillHumidityEvent(sensors_event_t *humidity, uint32_t timestamp);
110 };
111 
112 #endif /* _ADAFRUIT_HTU31D_H */
#define HTU31D_DEFAULT_I2CADDR
Definition: Adafruit_HTU31D.h:13
uint16_t _sensorid_humidity
ID number for humidity.
Definition: Adafruit_HTU31D.h:95
float _temperature
Last reading&#39;s temperature (C)
Definition: Adafruit_HTU31D.h:92
Definition: Adafruit_HTU31D.h:75
void getSensor(sensor_t *)
Gets the sensor_t object describing the HTU31D&#39;s humidity sensor.
Definition: Adafruit_HTU31D.cpp:248
uint16_t _sensorid_temp
ID number for temperature.
Definition: Adafruit_HTU31D.h:96
Adafruit_HTU31D_Temp(Adafruit_HTU31D *parent)
Create an Adafruit_Sensor compatible object for the temp sensor.
Definition: Adafruit_HTU31D.h:62
Adafruit Unified Sensor interface for the temperature sensor component of HTU31D. ...
Definition: Adafruit_HTU31D.h:58
Adafruit Unified Sensor interface for the humidity sensor component of HTU31D.
Definition: Adafruit_HTU31D.h:40
Adafruit_HTU31D_Humidity(Adafruit_HTU31D *parent)
Create an Adafruit_Sensor compatible object for the humidity sensor.
Definition: Adafruit_HTU31D.h:44
bool getEvent(sensors_event_t *)
Gets the humidity as a standard sensor event.
Definition: Adafruit_HTU31D.cpp:268