Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: Cosmic_Pi_STM32_i2c
Si7020 Class Reference
Silicon Labs Si7020 Humidity and Temperature Sensor. More...
#include <Si7020.h>
Public Types | |
| enum | resolution_t { RH_12b_TEMP_14b = 0x0, RH_8b_TEMP_12b = 0x1, RH_10b_TEMP_13b = 0x2, RH_11b_TEMP_11b = 0x3 } |
Measurement resolution. More... | |
Public Member Functions | |
| Si7020 (PinName sda, PinName scl) | |
| Si7020 constructor. | |
| Si7020 (I2C *i2c) | |
| Si7020 constructor. | |
| ~Si7020 () | |
| Si7020 destructor. | |
| int | reset (void) |
| Reset. | |
| int | getElectronicId (char *id) |
| Get Electronic ID. | |
| int | configResolution (Si7020::resolution_t resolution) |
| Configure sample resolution. | |
| int | getTemperature (int16_t *tempCx10) |
| Get temperature reading. | |
| int | getTemperature (float *tempC) |
| Get temperature reading. | |
| int | startTemperature (void) |
| Start temperature reading. | |
| int | checkTemperature (int16_t *tempCx10) |
| Check temperature reading. | |
| int | checkTemperature (float *tempC) |
| Check temperature reading. | |
| int | getHumidity (int16_t *humidx10) |
| Get humidity reading. | |
| int | getHumidity (float *humid) |
| Get humidity reading. | |
| int | startHumidity (void) |
| Start humidity reading. | |
| int | checkHumidity (int16_t *humidx10) |
| Check humidity reading. | |
| int | checkHumidity (float *humid) |
| Check humidity reading. | |
| int | getPrevTemperature (float *tempC) |
| Get temperature from humidity reading. | |
| int | getPrevTemperature (int16_t *tempCx10) |
| Get temperature from humidity reading. | |
| int | getRev (char *rev) |
| Get firmware revision. | |
| int | heater (bool enable) |
| Control heater. | |
Detailed Description
Silicon Labs Si7020 Humidity and Temperature Sensor.
#include <stdio.h> #include "mbed.h" #include "Si7020.h" I2C i2c(I2C_SDA, I2C_SCL); Si7020 si(&i2c); int main() { while(1) { float humid; if(si.getHumidity(&humid) != 0) { printf("Error getting humidity\n"); humid = -1; } float temp; if(si.getTemperature(&temp) != 0) { printf("Error getting temperature"); temp = -1; } printf("Humidity = %f%% Temperature = %fC\n", humid, temp); wait(1); } }
Definition at line 72 of file Si7020.h.
Member Enumeration Documentation
| enum resolution_t |
Constructor & Destructor Documentation
| Si7020 | ( | PinName | sda, |
| PinName | scl | ||
| ) |
Si7020 constructor.
- Parameters:
-
sda mbed pin to use for SDA line of I2C interface. scl mbed pin to use for SCL line of I2C interface.
| Si7020 | ( | I2C * | i2c ) |
| ~Si7020 | ( | ) |
Si7020 destructor.
Definition at line 71 of file Si7020.cpp.
Member Function Documentation
| int checkHumidity | ( | int16_t * | humidx10 ) |
Check humidity reading.
Checks to see if the humidity reading has been completed. Returns humidity if reading complete.
- Note:
- Must call startHumidity() prior to calling this function.
- Parameters:
-
humidCx10 Pointer for humidity reading. Unit is 1/10th percent.
- Returns:
- 0 if reading taken, -1 if reading pending.
Definition at line 291 of file Si7020.cpp.
| int checkHumidity | ( | float * | humid ) |
Check humidity reading.
Checks to see if the humidity reading has been completed. Returns humidity if reading complete.
- Note:
- Must call startHumidity() prior to calling this function.
- Parameters:
-
humid Pointer for humidity reading. Unit is percent.
- Returns:
- 0 if reading taken, -1 if reading pending.
Definition at line 318 of file Si7020.cpp.
| int checkTemperature | ( | float * | tempC ) |
Check temperature reading.
Checks to see if the temperature reading has been completed. Returns temperature if reading complete.
- Note:
- Must call startTemperature() prior to calling this function.
- Parameters:
-
tempC Pointer for temperature reading. Unit is degree Celcius.
- Returns:
- 0 if reading taken, -1 if reading pending.
Definition at line 241 of file Si7020.cpp.
| int checkTemperature | ( | int16_t * | tempCx10 ) |
Check temperature reading.
Checks to see if the temperature reading has been completed. Returns temperature if reading complete.
- Note:
- Must call startTemperature() prior to calling this function.
- Parameters:
-
tempCx10 Pointer for temperature reading. Unit is 1/10th degree Celcius.
- Returns:
- 0 if reading taken, -1 if reading pending.
Definition at line 217 of file Si7020.cpp.
| int configResolution | ( | Si7020::resolution_t | resolution ) |
Configure sample resolution.
Sets the number of bits used for humidity and temperature readings.
- Parameters:
-
resolution Enum for the resolution setting.
- Returns:
- 0 if no errors, -1 if error.
Definition at line 148 of file Si7020.cpp.
| int getElectronicId | ( | char * | id ) |
Get Electronic ID.
Gets the Electronic ID of the connected device. Verifies the ID with an 8-bit CRC.
- Parameters:
-
Character buffer to store the id. Needs to be at least 8 bytes.
- Returns:
- 0 if no errors, -1 if error.
Definition at line 89 of file Si7020.cpp.
| int getHumidity | ( | int16_t * | humidx10 ) |
Get humidity reading.
Initiates a humidity reading and blocks until reading has been calculated.
- Note:
- Will hold the I2C bus until reading is complete. Refer to datasheet for timing specifications.
- Parameters:
-
humidx10 Pointer for humidity reading. Unit is 1/10th percent.
- Returns:
- 0 if no errors, -1 if error.
Definition at line 261 of file Si7020.cpp.
| int getHumidity | ( | float * | humid ) |
Get humidity reading.
Initiates a humidity reading and blocks until reading has been calculated.
- Note:
- Will hold the I2C bus until reading is complete. Refer to datasheet for timing specifications.
- Parameters:
-
humid Pointer for humidity reading. Unit is percent.
- Returns:
- 0 if no errors, -1 if error.
Definition at line 271 of file Si7020.cpp.
| int getPrevTemperature | ( | int16_t * | tempCx10 ) |
Get temperature from humidity reading.
Gets temperature reading from previous humidity reading.
- Note:
- Must call startHumidity() prior to calling this function.
- Parameters:
-
tempCx10 Pointer for temperature reading. Unit is 1/10th degree Celcius.
- Returns:
- 0 if reading taken, -1 if reading pending.
Definition at line 351 of file Si7020.cpp.
| int getPrevTemperature | ( | float * | tempC ) |
Get temperature from humidity reading.
Gets temperature reading from previous humidity reading.
- Note:
- Must call startHumidity() prior to calling this function.
- Parameters:
-
tempC Pointer for temperature reading. Unit is degree Celcius.
- Returns:
- 0 if reading taken, -1 if reading pending.
Definition at line 337 of file Si7020.cpp.
| int getRev | ( | char * | rev ) |
Get firmware revision.
Reads the firmware revision, refer to datasheet for codes.
- Parameters:
-
rev Pointer to store firmware revision.
- Returns:
- 0 if no errors, -1 if error.
Definition at line 365 of file Si7020.cpp.
| int getTemperature | ( | int16_t * | tempCx10 ) |
Get temperature reading.
Initiates a temperature reading and blocks until reading has been calculated.
- Note:
- Will hold the I2C bus until reading is complete. Refer to datasheet for timing specifications.
- Parameters:
-
tempCx10 Pointer for temperature reading. Unit is 1/10th degree Celcius.
- Returns:
- 0 if no errors, -1 if error.
Definition at line 187 of file Si7020.cpp.
| int getTemperature | ( | float * | tempC ) |
Get temperature reading.
Initiates a temperature reading and blocks until reading has been calculated.
- Note:
- Will hold the I2C bus until reading is complete. Refer to datasheet for timing specifications.
- Parameters:
-
tempC Pointer for temperature reading. Unit is degree Celcius.
- Returns:
- 0 if no errors, -1 if error.
Definition at line 197 of file Si7020.cpp.
| int heater | ( | bool | enable ) |
Control heater.
Enable or disable the heater.
- Parameters:
-
enable True to enable heater, false to disable.
- Returns:
- 0 if no errors, -1 if error.
Definition at line 379 of file Si7020.cpp.
| int reset | ( | void | ) |
Reset.
Sends the rest command.
- Returns:
- 0 if no errors, -1 if error.
Definition at line 79 of file Si7020.cpp.
| int startHumidity | ( | void | ) |
Start humidity reading.
Initiates a humidity reading. Will not hold the bus or block.
- Returns:
- 0 if no errors, -1 if error.
Definition at line 281 of file Si7020.cpp.
| int startTemperature | ( | void | ) |
Start temperature reading.
Initiates a temperature reading. Will not hold the bus or block.
- Returns:
- 0 if no errors, -1 if error.
Definition at line 207 of file Si7020.cpp.
Generated on Sun Jul 17 2022 05:28:52 by
1.7.2