The on-chip digital processing allows very good linearity. By using the patented low-K polymeric dielectrics, this sensor is available to achieve measurements with a very low drift and hysteresis, and excellent long-term stability. The on-chip digital processing allows very good linearity. Each sensor has the factory calibration parameters pre-programmed in the non-volatile memory, requiring no additional calibration by the user.
Armed with the integrated sensor which features patented low-K polymeric dielectrics and CMOS technology, the click shows good immunity to contaminants, integrated data processing with the polynomial non-linearity correction, selectable measurement resolution, and excellent long-term stability and reliability.
How does it work?
The sensor IC used on the Temp&Hum 7 click is the Si7021-A20, a humidity and temperature digital sensor, which uses the I2C interface, from Silicon Labs. This sensor is produced using the patented low-K polymeric dielectrics for the humidity sensing, which allows it to achieve an excellent long-term stability. The Si7021-A20 offers an onboard digital signal processing. By applying the polynomial non-linearity correction, the measurements are linear across the range between 0% and 80% RH, retaining the accuracy of ±3% RH. The sensor can still be used in the range between 0% and 100% RH, in applications with slightly higher tolerances.
Each sensor contains the factory calibration data in the internal non-volatile memory, so there is no need for additional calibration steps. The datasheet of the Si7021-A20 offers conversion formulas, which should be used to convert the readings from the sensor to physical values, expressed in %RH and °C.
Due to the used capacitive technology the sensor might exhibit a hysteresis effect. Exposed to the higher RH percentage, the sensor will develop an upward drift in respect to the factory calibration values. Similarly, if exposed to a low RH percentage, the sensor will develop a downward drift in respect to the factory calibration values. However, changing the RH conditions will affect the measurement drift, causing the hysteresis effect. The hysteresis is a common parameter of any sensor that uses the capacitive humidity sensing element. However, the Si7021-A20 incorporates very low hysteresis (±1% RH) due to the used low-K polymer technology.
Besides the capacitive sensing elements, the sensor IC incorporates an analog front end (AFE), which consists of A/D converter, non-volatile memory, and the control logic section. The integrated A/D converter can be programmatically selected from the lowest 8/11-bit resolution, up to resolutions of 12/14 bits (RH/T). The resolution selection affects the power consumption, as well as the data output rate. The response time of the RH readings might vary between 2.6ms for 8-bit resolution, up to 12ms for 12-bit resolution.
The SHT21 sensor also features an integrated resistive heating element, used to evaporate condensation. The heating element can be programmed by using four control bits in the heater control register, allowing to control the heating amount, as well as the typical current draw of the internal heating element.
Temp&Hum 7 click uses the I2C interface, and it features pull-up resistors on the I2C lines. It can be used out of the box. The Click board™ has an SMD jumper, which allows the logic voltage level to be selected between 3.3V and 5V, enabling the Click board™ to be interfaced with a wide range of different microcontrollers.
The provided click board™ library contains simple and easy to use functions, which simplify configuring and reading of the measurement data. These functions are demonstrated in the included example application and can be used as a reference for custom projects. These functions can be used in mikroC, mikroBASIC and mikroPASCAL compilers for all MCU architectures supported by MikroElektronika.
Specifications
Type |
Temperature / Humidity |
Applications |
It can be used for development of many different relative humidity and temperature measuring applications, including weather stations, reliable monitoring systems, asset tracking, HVAC/R based applications, and more. |
On-board modules |
Si7021-A10, a humidity and temperature digital sensor, which uses the I2C interface, from Silicon Labs |
Key Features |
Good linearity and long-term stability, programmable resolution, onboard processing and compensation, patented low-K polymeric dielectrics, selectable logic voltage, etc. |
Interface |
I2C |
Input Voltage |
3.3V,5V |
Click board size |
M (42.9 x 25.4 mm) |
Pinout diagram
This table shows how the pinout on Temp&Hum 7 Click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Notes |
Pin |
|
Pin |
Notes |
---|
|
NC |
1 |
AN |
PWM |
16 |
NC |
|
|
NC |
2 |
RST |
INT |
15 |
NC |
|
|
NC |
3 |
CS |
RX |
14 |
NC |
|
|
NC |
4 |
SCK |
TX |
13 |
NC |
|
|
NC |
5 |
MISO |
SCL |
12 |
SCL |
I2C Clock |
|
NC |
6 |
MOSI |
SDA |
11 |
SDA |
I2C Data |
Power supply |
3V3 |
7 |
3.3V |
5V |
10 |
5V |
Power Supply |
Ground |
GND |
8 |
GND |
GND |
9 |
GND |
Ground |
Onboard settings and indicators
Label |
Name |
Default |
Description |
---|
PWR |
PWR |
- |
Power LED indicator |
VCC SEL |
VCC SEL |
Left |
Logic voltage level selection: left position 3.3V, right position 5V |
We provide a library for the Temp&Hum 7 click on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Library Description
The library contains functions for reading register content and setting register content Library contains functions for reading the electronic serial number and firmware revision Library contains functions for reading temperature (C), humidity(%RH) and heater current (mA) values Library contains a function for device reset.
Key functions:
void temphum7_setData( uint8_t command_, uint8_t dataIn_ );
- sets one byte of register data
float temphum7_getRelativeHumidity( uint8_t mode_ )
- performs relative humidity measurement and calculates relative humidity
float temphum7_getTemperature ( uint8_t mode_ )
- performs temperature measurement and calculates the temperature
Examples description
The application is composed of the three sections :
- System Initialization - Initializes I2C and LOG
- Application Initialization - Initializes I2C driver, and sets 12-bit resolution for measurements
- Application Task - Calculates and Logs temperature and relative humidity
void applicationTask()
{
mikrobus_logWrite( " ", _LOG_LINE );
temperature = temphum7_getTemperature( _TEMPHUM7_HOLD_MASTER_MODE );
FloatToStr( temperature, text );
mikrobus_logWrite( " > > > temperature : ", _LOG_TEXT );
mikrobus_logWrite( text, _LOG_TEXT );
mikrobus_logWrite( " C", _LOG_LINE );
relativeHumidity = temphum7_getRelativeHumidity( _TEMPHUM7_HOLD_MASTER_MODE );
FloatToStr( relativeHumidity, text );
mikrobus_logWrite( " > > > relative humidity : ", _LOG_TEXT );
mikrobus_logWrite( text, _LOG_TEXT );
mikrobus_logWrite( " %RH", _LOG_LINE );
Delay_ms(1000);
}
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
Additional notes and information
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. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
mikroSDK
This click board is supported with mikroSDK - MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant click board demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
For more information about mikroSDK, visit the official page.