Mikroe Temp&Hum 2 Click - Digital Humidity and Temperature Sensor w/ I2C - Si7034
- Product ID: 7498
- MPN: MIKROE-3085
The Si7034 IC also includes a thermal sensor, and all the sensor and thermal calibration data is stored on-chip, allowing interchangeability between the different samples of the IC with no additional calibration steps. These features make Temp-Hum 2 click a perfect solution for a wide range of applications that depend on accurate temperature and humidity readings. It is a perfect choice for various consumer and industry related applications, such as the indoor weather stations, thermostats and humidistats, microenvironment centers, respiratory therapy applications, and similar.
The sensor IC used on the Temp Hum 2 click is the Si7034, a digital humidity and temperature sensor IC with I2C interface, from Silicon Labs. It is a digital relative humidity and a temperature sensor that integrates temperature and humidity sensor elements, an analog-to-digital converter, signal processing, calibration, and data correction on the chip. Each chip is factory calibrated, and the calibration data is stored in its non-volatile memory. The maximum accuracy achieved with this sensor is ± 4% RH for the humidity range from 0 to 80%. Besides the humidity sensing element, this sensor includes an accurate thermal sensor, which can achieve up to ±0.4 °C. It is used in conjunction with the humidity measurement, to allow thermal compensation of the relative humidity measurements.
This sensor IC also has an integrated heating element that is used to evaporate condensation reducing the effect of the offset accumulation when used in high humidity conditions, or to implement dew-point measurement when the Si7034 is used with a separate temperature sensor. The heating element current can be adjusted by the appropriate bits in the Humidity Control Register.
Due to the nature of the used sensors, a special care should be taken to reduce the sensor contamination to a minimum. Particles, dirt or other artifacts collected on the surface of the exposed polymer film will affect its ability to measure the humidity, and therefore, the manufacturer recommends protecting the sensor against particles. The sensor otherwise has a long aging period with minimal drift. Synthetic long-term stability tests show less than 0.25 %RH per year drift.
The data provided by the IC is ready to be used directly. Two measurements are done when a command is received via the I2C. One is the humidity measurement, while the second is temperature measurement, used for the compensation. By applying this simple formula, the relative humidity can be directly represented in percentages:
Where RH_DATA is the 16bit value provided by the Si7034 sensor on the Click board™. The temperature (given in degrees Celsius) reading can be calculated by applying this formula:
Where TEMP_DATA is the 16bit value provided by the Si7034 sensor on the Click board™.
Si7034 IC operates on 1.8V and therefore, a small LDO has to be used to convert 3.3V from the mikroBUS™ power rail, down to 1.8V. In addition, the I2C signal voltage levels also have to be converted so it can be used with the MCUs operated with 3.3V. For this purpose, the Click board™ utilizes the PCA9306, a level shifting IC, made by Texas Instruments. It uses 1.8V as the first reference voltage and 3,3V from the mikroBUS™ power rail as the second reference voltage, shifting the I2C communication signal levels, allowing this Click board™ to be used with MCUs operated at 3.3V.
The sensor IC is physically located away from other components on the Click board™, so the heating influence of the surrounding components or PCB is reduced to a minimum, allowing the accuracy of the Click board™ to stay within the specifications. The i2C lines of the IC are routed to the mikroBUS™ and supplied by the pull-up resistors, allowing this Click board™ to be used right out of the box. Temp-Hum 2 click uses only 3.3V rail from the mikroBUS™.
Temperature / Humidity
It is a perfect choice for various consumer and industry related applications, such as the indoor weather stations, thermostats and humidistats, microenvironment centers, respiratory therapy applications, and similar applications.
Si7034, a digital humidity and temperature sensor IC with I2C interface, from Silicon Labs; PCA9306, a dual bidirectional I2C voltage level translator from Texas Instruments; AP7331, an LDO regulator from Diodes Incorporated.
Accurate low-K polymeric dielectric sensor used for capacitive measurement of the humidity, on-chip factory programmed calibration parameters, operates in the range of 0% to 100% RH, low drift over time.
Click board size
M (42.9 x 25.4 mm)
Onboard jumpers and settings
|PWR||PWR||-||Power LED indicator|
This table shows how the pinout on Temp&Hum 2 click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
We provide a demo application for Temp&Hum 2 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.
The library initializes and defines the I2C bus driver and drivers that offer a choice for writing data in the register. The library includes the function for reads query device, electronic ID, firmware revision, temperature and humidity data. The user can select the measurement mode and set the Heater.
Key functions :
void temphum2_setMode(uint8_t selectMode, uint8_t speedMode) - Functions for set measurement mode
void temphum2_getMeasurement( float *dataBuffer ) - Functions for measurement
void temphum2_writeByte(uint8_t reg, uint8_t _data) - Functions for write one byte in register
The application is composed of three sections:
- System Initialization - Initializes I2C module.
- Application Initialization - Initializes driver init, set work mode and Heater.
- Application Task - (code snippet) - Reads temperature and humidity and logs values on usbuart for every 500ms.
temphum2_getMeasurement( &dataBuffer );
mikrobus_logWrite( " --- Temperature : ", _LOG_TEXT);
FloatToStr( dataBuffer , dataText);
mikrobus_logWrite( " C", _LOG_LINE);
mikrobus_logWrite( " --- Humidity : ", _LOG_TEXT);
FloatToStr( dataBuffer , dataText);
mikrobus_logWrite( " %RH", _LOG_LINE);
Delay_ms( 500 );
The full application pre, and ready to use projects can be found on our LibStock page.
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.
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.