HTS221 Sensor

The ST HTS221 is a sensor for relative humidity and temperature.

The HTS221Sensor class provides methods to read and write data, set configuration of HTS221 sensor.

Assembly

HTS221Sensor.h

Summary

Types
DevI2C
PinName
Constructors
HTS221Sensor - HTS221Sensor(DevI2C &i2c)
HTS221Sensor - HTS221Sensor(DevI2C &i2c, unsigned char address)
Methods
init - int init(void *init)
enable - int enable(void)
disable - int disable(void)
readId - int readId(unsigned char *id)
reset - int reset(void)
getHumidity - int getHumidity(float* pfData)
getTemperature - int getTemperature(float* pfData)
getOdr - int getOdr(float* odr)
setOdr - int setOdr(float odr)

Types

DevI2C

Provides functions for multi-register I2C communication.

PinName

Provides the mapping of mbed DIP and LPC Pin Names.

Constructors

HTS221Sensor

HTS221Sensor(DevI2C &i2c)

Parameters

Type Name Description
DevI2C & i2c The object of an helper class which handles the I2C peripheral.

HTS221Sensor

HTS221Sensor(DevI2C &i2c, unsigned char address)

Parameters

Type Name Description
DevI2C & i2c The object of an helper class which handles the I2C peripheral.
unsigned char address The address of the component’s instance.

Methods

init

int init(void *init)

Initializing the component.

Parameters

Type Name Description
void * init Pointer to device specific initalization structure.

Return value

Type Description
int Result code, 0 in case of success, an error code otherwise.

enable

int enable(void)

Enable HTS221.

Parameters

None.

Return value

Type Description
int Result code, 0 in case of success, an error code otherwise.

disable

int disable(void)

Disable HTS221.

Parameters

None.

Return value

Type Description
int Result code, 0 in case of success, an error code otherwise.

readId

int readId(unsigned char *id)

Read ID address of HTS221.

Parameters

Type Name Description
unsigned char * id The pointer where the ID of the device is stored.

Return value

Type Description
int Result code, 0 in case of success, an error code otherwise.

reset

int reset(void)

Reboot memory content of HTS221.

Parameters

None.

Return value

Type Description
int Result code, 0 in case of success, an error code otherwise.

getHumidity

int getHumidity(float *pfData)

Read HTS221 output register, and calculate the humidity.

Parameters

Type Name Description
float * pfData The pointer to data output.

Return value

Type Description
int Result code, 0 in case of success, an error code otherwise.

getTemperature

int getTemperature(float *pfData)

Read HTS221 output register, and calculate the temperature.

Parameters

Type Name Description
float * pfData The pointer to data output.

Return value

Type Description
int Result code, 0 in case of success, an error code otherwise.

getOdr

int getOdr(float *odr)

Read HTS221 output register, and calculate the humidity.

Parameters

Type Name Description
float * odr The pointer to the output data rate.

Return value

Type Description
int Result code, 0 in case of success, an error code otherwise.

setOdr

int setOdr(float odr)

Set ODR.

Parameters

Type Name Description
float odr The output data rate to be set.

Return value

Type Description
int Result code, 0 in case of success, an error code otherwise.

Sample code

#include "HTS221Sensor.h"
DevI2C *i2c;
HTS221Sensor *sensor;
float humidity = 0;
float temperature = 0;
unsigned char id;
void setup() {
    i2c = new DevI2C(D14, D15);
    sensor = new HTS221Sensor(*i2c);
    // init the sensor
    sensor -> init(NULL);
}
void loop() {
    // enable
    sensor -> enable();
    // read id
    sensor -> readId(&id);
    Serial.printf("ID: %d\r\n", id);
    // get humidity
    sensor -> getHumidity(&humidity);
    Serial.print("Humidity: ");
    Serial.println(humidity);
    // get temperature
    sensor -> getTemperature(&temperature);
    Serial.print("Temperature: ");
    Serial.println(temperature);
    // disable the sensor
    sensor -> disable();
    // reset
    sensor -> reset();
    delay(1000);
}