temphum24  2.1.0.0
Main Page

TempHum 24 click

Temp&Hum 24 Click is a compact add-on board that measures the surrounding environment's humidity and temperature. This board features the HDC3021, an integrated capacitive-based relative humidity and temperature sensor with a removable tape cover from Texas Instruments. The HDC3021 is characterized by its high accuracy (±0.5RH and ±0.1°C over a wide operating temperature range) and high resolution, providing 16-bit data to the host controller with a configurable I2C interface. Offset Error Correction reduces RH sensor offset due to aging, exposure to extreme operating conditions, and contaminants to return the device to within accuracy specifications.

click Product page


Click library

  • Author : Stefan Filipovic
  • Date : Mar 2023.
  • Type : I2C type

Software Support

We provide a library for the TempHum 24 Click as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.

Package can be downloaded/installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on Mikroe github account.

Library Description

This library contains API for TempHum 24 Click driver.

Standard key functions :

Example key functions :

  • temphum24_read_temp_and_rh This function reads the temperature in celsius and the relative humidity level in percents.
    err_t temphum24_read_temp_and_rh ( temphum24_t *ctx, float *temp, float *hum );
  • temphum24_read_temp_history This function reads the temperature minimum and maximum values since the beginning of the measurements.
    err_t temphum24_read_temp_history ( temphum24_t *ctx, float *temp_min, float *temp_max );
  • temphum24_read_rh_history This function reads the relative humidity minimum and maximum values since the beginning of measurements.
    err_t temphum24_read_rh_history ( temphum24_t *ctx, float *hum_min, float *hum_max );

Example Description

This example demonstrates the use of Temp & Hum 24 click board by reading the temperature and humidity data.

The demo application is composed of two sections :

Application Init

Initializes the driver and performs the click default configuration which resets the device and starts the auto measurement mode with data rate of 1 Hz.

void application_init ( void )
{
log_cfg_t log_cfg;
temphum24_cfg_t temphum24_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
temphum24_cfg_setup( &temphum24_cfg );
TEMPHUM24_MAP_MIKROBUS( temphum24_cfg, MIKROBUS_1 );
if ( I2C_MASTER_ERROR == temphum24_init( &temphum24, &temphum24_cfg ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
if ( TEMPHUM24_ERROR == temphum24_default_cfg ( &temphum24 ) )
{
log_error( &logger, " Default configuration." );
for ( ; ; );
}
log_info( &logger, " Application Task " );
}

Application Task

Reads the temperature (degrees C) and the relative humidity (RH) data and displays the results on the USB UART approximately once per second.

It also reads and displays the minimum and maximum values measured since the beginning of measurements.

void application_task ( void )
{
float temp = 0, hum = 0;
if ( TEMPHUM24_OK == temphum24_read_temp_and_rh ( &temphum24, &temp, &hum ) )
{
float min_temp = 0, max_temp = 0;
float min_rh = 0, max_rh = 0;
log_printf ( &logger, " Temperature: %.2f C\r\n", temp );
if ( TEMPHUM24_OK == temphum24_read_temp_history ( &temphum24, &min_temp, &max_temp ) )
{
log_printf ( &logger, " MIN: %.2f C\r\n MAX: %.2f C\r\n", min_temp, max_temp );
}
log_printf ( &logger, "\r\n Humidity: %.1f %%RH\r\n", hum );
if ( TEMPHUM24_OK == temphum24_read_rh_history ( &temphum24, &min_rh, &max_rh ) )
{
log_printf ( &logger, " MIN: %.1f %%RH\r\n MAX: %.1f %%RH\r\n", min_rh, max_rh );
}
log_printf ( &logger, "----------------------\r\n" );
Delay_ms ( 1000 );
}
}

The full application code, and ready to use projects can be installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on Mikroe github account.

Other Mikroe Libraries used in the example:

  • MikroSDK.Board
  • MikroSDK.Log
  • Click.TempHum24

Additional notes and informations

Depending on the development board you are using, you may need USB UART click, USB UART 2 Click or RS232 Click to connect to your PC, for development systems with no UART to USB interface available on the board. UART terminal is available in all MikroElektronika compilers.


temphum24_t
TempHum 24 Click context object.
Definition: temphum24.h:193
temphum24_cfg_t
TempHum 24 Click configuration object.
Definition: temphum24.h:213
TEMPHUM24_ERROR
@ TEMPHUM24_ERROR
Definition: temphum24.h:232
temphum24_read_rh_history
err_t temphum24_read_rh_history(temphum24_t *ctx, float *hum_min, float *hum_max)
TempHum 24 read rh history function.
application_task
void application_task(void)
Definition: main.c:68
temphum24_cfg_setup
void temphum24_cfg_setup(temphum24_cfg_t *cfg)
TempHum 24 configuration object setup function.
TEMPHUM24_OK
@ TEMPHUM24_OK
Definition: temphum24.h:231
temphum24_read_temp_history
err_t temphum24_read_temp_history(temphum24_t *ctx, float *temp_min, float *temp_max)
TempHum 24 read temp history function.
application_init
void application_init(void)
Definition: main.c:32
temphum24_default_cfg
err_t temphum24_default_cfg(temphum24_t *ctx)
TempHum 24 default configuration function.
TEMPHUM24_MAP_MIKROBUS
#define TEMPHUM24_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition: temphum24.h:179
temphum24_read_temp_and_rh
err_t temphum24_read_temp_and_rh(temphum24_t *ctx, float *temp, float *hum)
TempHum 24 read temp and rh function.
temphum24_init
err_t temphum24_init(temphum24_t *ctx, temphum24_cfg_t *cfg)
TempHum 24 initialization function.