Adafruit AM2320 Arduino Library
Adafruit_AM2320.h
Go to the documentation of this file.
1 
34 #ifndef ADAFRUIT_AM2320
35 #define ADAFRUIT_AM2320
36 
37 #define AM2320_SENSOR_VERSION 1
38 #define AM2320_CMD_READREG 0x03
39 #define AM2320_REG_TEMP_H 0x02
40 #define AM2320_REG_HUM_H 0x00
41 #include <Adafruit_I2CDevice.h>
42 #include <Adafruit_Sensor.h>
43 
44 /**************************************************************************/
49 /**************************************************************************/
51 public:
52  Adafruit_AM2320(TwoWire *theI2C = &Wire, int32_t tempSensorId = -1,
53  int32_t humiditySensorId = -1);
54  bool begin();
55 
56  float readTemperature();
57  float readHumidity();
58  uint32_t readRegister32(uint8_t reg);
59  uint16_t crc16(uint8_t *buffer, uint8_t nbytes);
60 
61  /**************************************************************************/
65  /**************************************************************************/
66  class Temperature : public Adafruit_Sensor {
67  public:
68  Temperature(Adafruit_AM2320 *parent, int32_t id);
69  bool getEvent(sensors_event_t *event);
70  void getSensor(sensor_t *sensor);
71 
72  private:
73  Adafruit_AM2320 *_parent;
74  int32_t _id;
75  };
76 
77  /**************************************************************************/
81  /**************************************************************************/
82  class Humidity : public Adafruit_Sensor {
83  public:
84  Humidity(Adafruit_AM2320 *parent, int32_t id);
85  bool getEvent(sensors_event_t *event);
86  void getSensor(sensor_t *sensor);
87 
88  private:
89  Adafruit_AM2320 *_parent;
90  int32_t _id;
91  };
92 
93  /**************************************************************************/
98  /**************************************************************************/
99  Temperature temperature() { return _temp; }
100 
101  /**************************************************************************/
106  /**************************************************************************/
107  Humidity humidity() { return _humidity; }
108 
109 private:
110  Temperature _temp;
111  Humidity _humidity;
112  Adafruit_I2CDevice *i2c_dev = NULL;
113  void setName(sensor_t *sensor);
114  void setMinDelay(sensor_t *sensor);
115 };
116 
117 #endif
void getSensor(sensor_t *sensor)
populate a sensor_t with data for this sensor
Definition: Adafruit_AM2320.cpp:263
bool begin()
Setups the hardware.
Definition: Adafruit_AM2320.cpp:79
float readTemperature()
read the temperature from the device
Definition: Adafruit_AM2320.cpp:94
uint16_t crc16(uint8_t *buffer, uint8_t nbytes)
perfor a CRC check to verify data
Definition: Adafruit_AM2320.cpp:189
Class that stores state and functions for interacting with AM2320 Temperature & Humidity Unified Sens...
Definition: Adafruit_AM2320.h:50
float readHumidity()
read the humidity from the device
Definition: Adafruit_AM2320.cpp:114
Temperature temperature()
get the temperature sensor object belonging to this class
Definition: Adafruit_AM2320.h:99
bool getEvent(sensors_event_t *event)
read the temperature from the device and populate a sensor_event_t with the value ...
Definition: Adafruit_AM2320.cpp:244
uint32_t readRegister32(uint8_t reg)
read 4 bytes from a hardware register
Definition: Adafruit_AM2320.cpp:129
humidity sensor class
Definition: Adafruit_AM2320.h:82
Temperature(Adafruit_AM2320 *parent, int32_t id)
create a temperature sensor instance
Definition: Adafruit_AM2320.cpp:233
temperature sensor class
Definition: Adafruit_AM2320.h:66
Adafruit_AM2320(TwoWire *theI2C=&Wire, int32_t tempSensorId=-1, int32_t humiditySensorId=-1)
Instantiates a new AM2320 class.
Definition: Adafruit_AM2320.cpp:65
Humidity humidity()
get the humidity sensor object belonging to this class
Definition: Adafruit_AM2320.h:107