HTS221
Arduino library for the HTS221 humidity and temperature sensor
Loading...
Searching...
No Matches
HTS221Sensor.h
Go to the documentation of this file.
1
39/* Prevent recursive inclusion -----------------------------------------------*/
40
41#ifndef __HTS221Sensor_H__
42#define __HTS221Sensor_H__
43
44
45/* Includes ------------------------------------------------------------------*/
46
47#include "Wire.h"
48#include "HTS221_Driver.h"
49
50
59
60/* Class Declaration ---------------------------------------------------------*/
61
64{
65 public:
67 HTS221Sensor (TwoWire *i2c);
68
71
74
77
80
82 HTS221StatusTypeDef ReadID (uint8_t *ht_id);
83
86
88 HTS221StatusTypeDef GetHumidity (float *pfData);
89
91 HTS221StatusTypeDef GetTemperature (float *pfData);
92
94 HTS221StatusTypeDef GetODR (float *odr);
96 HTS221StatusTypeDef SetODR (float odr);
98 HTS221StatusTypeDef ReadReg (uint8_t reg, uint8_t *data);
100 HTS221StatusTypeDef WriteReg (uint8_t reg, uint8_t data);
101
109 uint8_t IO_Read(uint8_t* pBuffer, uint8_t RegisterAddr, uint16_t NumByteToRead)
110 {
111 dev_i2c->beginTransmission(((uint8_t)(((address) >> 1) & 0x7F)));
112 dev_i2c->write(RegisterAddr);
113 dev_i2c->endTransmission(false);
114
115 dev_i2c->requestFrom(((uint8_t)(((address) >> 1) & 0x7F)), (byte) NumByteToRead);
116
117 int i=0;
118 while (dev_i2c->available())
119 {
120 pBuffer[i] = dev_i2c->read();
121 i++;
122 }
123
124 return 0;
125 }
126
134 uint8_t IO_Write(uint8_t* pBuffer, uint8_t RegisterAddr, uint16_t NumByteToWrite)
135 {
136 dev_i2c->beginTransmission(((uint8_t)(((address) >> 1) & 0x7F)));
137
138 dev_i2c->write(RegisterAddr);
139 for (uint16_t i = 0 ; i < NumByteToWrite ; i++)
140 dev_i2c->write(pBuffer[i]);
141
142 dev_i2c->endTransmission(true);
143
144 return 0;
145 }
146
147 private:
148 /* Helper classes. */
149 TwoWire *dev_i2c;
150
151 /* Configuration */
152 uint8_t address;
153};
154
155#ifdef __cplusplus
156extern "C" {
157#endif
158uint8_t HTS221_IO_Write( void *handle, uint8_t WriteAddr, uint8_t *pBuffer, uint16_t nBytesToWrite );
159uint8_t HTS221_IO_Read( void *handle, uint8_t ReadAddr, uint8_t *pBuffer, uint16_t nBytesToRead );
160#ifdef __cplusplus
161}
162#endif
163
164#endif
HTS221StatusTypeDef
Definition HTS221Sensor.h:53
@ HTS221_STATUS_OK
Definition HTS221Sensor.h:54
@ HTS221_STATUS_TIMEOUT
Definition HTS221Sensor.h:56
@ HTS221_STATUS_NOT_IMPLEMENTED
Definition HTS221Sensor.h:57
@ HTS221_STATUS_ERROR
Definition HTS221Sensor.h:55
HTS221 driver header file.
Definition HTS221Sensor.h:64
uint8_t IO_Read(uint8_t *pBuffer, uint8_t RegisterAddr, uint16_t NumByteToRead)
Read bytes from the sensor over I2C.
Definition HTS221Sensor.h:109
HTS221StatusTypeDef Reset(void)
Reboot memory content of HTS221.
Definition HTS221Sensor.cpp:148
HTS221StatusTypeDef GetTemperature(float *pfData)
Read temperature and convert the result to degrees Celsius.
Definition HTS221Sensor.cpp:195
HTS221StatusTypeDef end(void)
Disable the sensor and relative resources.
Definition HTS221Sensor.cpp:87
HTS221StatusTypeDef GetODR(float *odr)
Get the configured output data rate.
Definition HTS221Sensor.cpp:215
HTS221StatusTypeDef ReadReg(uint8_t reg, uint8_t *data)
Read the data from register.
Definition HTS221Sensor.cpp:276
HTS221StatusTypeDef Enable(void)
Enable HTS221.
Definition HTS221Sensor.cpp:102
HTS221StatusTypeDef Disable(void)
Disable HTS221.
Definition HTS221Sensor.cpp:117
uint8_t IO_Write(uint8_t *pBuffer, uint8_t RegisterAddr, uint16_t NumByteToWrite)
Write bytes to the sensor over I2C.
Definition HTS221Sensor.h:134
HTS221StatusTypeDef ReadID(uint8_t *ht_id)
Read ID address of HTS221.
Definition HTS221Sensor.cpp:133
HTS221StatusTypeDef GetHumidity(float *pfData)
Read humidity and convert the result to percent.
Definition HTS221Sensor.cpp:175
HTS221StatusTypeDef SetODR(float odr)
Set the output data rate.
Definition HTS221Sensor.cpp:252
HTS221StatusTypeDef WriteReg(uint8_t reg, uint8_t data)
Write the data to register.
Definition HTS221Sensor.cpp:294
HTS221StatusTypeDef begin(void)
Configure the sensor in order to be used.
Definition HTS221Sensor.cpp:61
uint8_t HTS221_IO_Read(void *handle, uint8_t ReadAddr, uint8_t *pBuffer, uint16_t nBytesToRead)
Read bytes from the HTS221 over its configured I2C interface.
Definition HTS221Sensor.cpp:326
uint8_t HTS221_IO_Write(void *handle, uint8_t WriteAddr, uint8_t *pBuffer, uint16_t nBytesToWrite)
Write bytes to the HTS221 over its configured I2C interface.
Definition HTS221Sensor.cpp:313