I2C HUMIDITY AND TEMPERATURE SENSOR
SI7021.h@3:75cece7f7329, 2018-02-05 (annotated)
- Committer:
- mcm
- Date:
- Mon Feb 05 12:51:46 2018 +0000
- Revision:
- 3:75cece7f7329
- Parent:
- 1:54da1ce19764
The library was completed and tested, it works as expected ( NUCLEO-L152RE was used for testing )
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mcm | 1:54da1ce19764 | 1 | /** |
mcm | 1:54da1ce19764 | 2 | * @brief SI7021.h |
mcm | 1:54da1ce19764 | 3 | * @details I2C HUMIDITY AND TEMPERATURE SENSOR. |
mcm | 1:54da1ce19764 | 4 | * Header file. |
mcm | 1:54da1ce19764 | 5 | * |
mcm | 1:54da1ce19764 | 6 | * |
mcm | 1:54da1ce19764 | 7 | * @return NA |
mcm | 1:54da1ce19764 | 8 | * |
mcm | 1:54da1ce19764 | 9 | * @author Manuel Caballero |
mcm | 1:54da1ce19764 | 10 | * @date 5/February/2018 |
mcm | 1:54da1ce19764 | 11 | * @version 5/February/2018 The ORIGIN |
mcm | 1:54da1ce19764 | 12 | * @pre NaN. |
mcm | 1:54da1ce19764 | 13 | * @warning NaN |
mcm | 1:54da1ce19764 | 14 | * @pre This code belongs to AqueronteBlog ( http://unbarquero.blogspot.com ). |
mcm | 1:54da1ce19764 | 15 | */ |
mcm | 1:54da1ce19764 | 16 | #ifndef SI7021_H |
mcm | 1:54da1ce19764 | 17 | #define SI7021_H |
mcm | 1:54da1ce19764 | 18 | |
mcm | 1:54da1ce19764 | 19 | #include "mbed.h" |
mcm | 1:54da1ce19764 | 20 | |
mcm | 1:54da1ce19764 | 21 | |
mcm | 1:54da1ce19764 | 22 | /** |
mcm | 1:54da1ce19764 | 23 | Example: |
mcm | 1:54da1ce19764 | 24 | |
mcm | 3:75cece7f7329 | 25 | #include "mbed.h" |
mcm | 3:75cece7f7329 | 26 | #include "SI7021.h" |
mcm | 3:75cece7f7329 | 27 | |
mcm | 3:75cece7f7329 | 28 | |
mcm | 3:75cece7f7329 | 29 | SI7021 myTempRHsensor ( I2C_SDA, I2C_SCL, SI7021::SI7021_ADDRESS, 400000 ); |
mcm | 3:75cece7f7329 | 30 | Serial pc ( USBTX, USBRX ); |
mcm | 3:75cece7f7329 | 31 | |
mcm | 3:75cece7f7329 | 32 | Ticker newReading; |
mcm | 3:75cece7f7329 | 33 | DigitalOut myled1 ( LED1 ); |
mcm | 3:75cece7f7329 | 34 | |
mcm | 3:75cece7f7329 | 35 | |
mcm | 3:75cece7f7329 | 36 | |
mcm | 3:75cece7f7329 | 37 | SI7021::SI7021_vector_data_t myData; |
mcm | 3:75cece7f7329 | 38 | SI7021::SI7021_status_t mySI7021status; |
mcm | 3:75cece7f7329 | 39 | uint32_t myState; |
mcm | 3:75cece7f7329 | 40 | |
mcm | 3:75cece7f7329 | 41 | |
mcm | 3:75cece7f7329 | 42 | void readDATA ( void ) |
mcm | 3:75cece7f7329 | 43 | { |
mcm | 3:75cece7f7329 | 44 | myState++; |
mcm | 3:75cece7f7329 | 45 | } |
mcm | 3:75cece7f7329 | 46 | |
mcm | 3:75cece7f7329 | 47 | |
mcm | 3:75cece7f7329 | 48 | int main() |
mcm | 3:75cece7f7329 | 49 | { |
mcm | 3:75cece7f7329 | 50 | pc.baud ( 115200 ); |
mcm | 3:75cece7f7329 | 51 | |
mcm | 3:75cece7f7329 | 52 | // Reset the device |
mcm | 3:75cece7f7329 | 53 | mySI7021status = myTempRHsensor.SI7021_SoftReset (); |
mcm | 3:75cece7f7329 | 54 | wait_ms ( 15 ); |
mcm | 3:75cece7f7329 | 55 | |
mcm | 3:75cece7f7329 | 56 | |
mcm | 3:75cece7f7329 | 57 | // Configure the device |
mcm | 3:75cece7f7329 | 58 | mySI7021status = myTempRHsensor.SI7021_Conf ( SI7021::SI7021_RESOLUTION_RH_12_TEMP_14, SI7021::SI7021_HTRE_DISABLED ); |
mcm | 3:75cece7f7329 | 59 | |
mcm | 3:75cece7f7329 | 60 | // Get the Electronic Serial Number |
mcm | 3:75cece7f7329 | 61 | mySI7021status = myTempRHsensor.SI7021_GetElectronicSerialNumber ( &myData ); |
mcm | 3:75cece7f7329 | 62 | |
mcm | 3:75cece7f7329 | 63 | // Get the Firmware revision |
mcm | 3:75cece7f7329 | 64 | mySI7021status = myTempRHsensor.SI7021_GetFirmwareRevision ( &myData ); |
mcm | 3:75cece7f7329 | 65 | |
mcm | 3:75cece7f7329 | 66 | // Plot all the information through the srial port. |
mcm | 3:75cece7f7329 | 67 | pc.printf( "Electronic Serial Number: %16x %16x\nFirmware Revision: %02x\r\n", myData.ElectronicSerialNumber_MSB, myData.ElectronicSerialNumber_LSB, myData.FirmwareRevision ); |
mcm | 3:75cece7f7329 | 68 | |
mcm | 3:75cece7f7329 | 69 | |
mcm | 3:75cece7f7329 | 70 | newReading.attach( &readDATA, 0.5 ); // the address of the function to be attached ( readDATA ) and the interval ( 0.5s ) |
mcm | 3:75cece7f7329 | 71 | |
mcm | 3:75cece7f7329 | 72 | |
mcm | 3:75cece7f7329 | 73 | // Let the callbacks take care of everything |
mcm | 3:75cece7f7329 | 74 | while(1) { |
mcm | 3:75cece7f7329 | 75 | sleep(); |
mcm | 3:75cece7f7329 | 76 | |
mcm | 3:75cece7f7329 | 77 | if ( myState == 1 ) { |
mcm | 3:75cece7f7329 | 78 | // Trigger a new Humidity conversion ( the temperature conversion is triggered by default ) |
mcm | 3:75cece7f7329 | 79 | myled1 = 1; |
mcm | 3:75cece7f7329 | 80 | |
mcm | 3:75cece7f7329 | 81 | mySI7021status = myTempRHsensor.SI7021_TriggerHumidity ( SI7021::SI7021_NO_HOLD_MASTER_MODE ); |
mcm | 3:75cece7f7329 | 82 | } else if ( myState == 2 ) { |
mcm | 3:75cece7f7329 | 83 | // Read Humidity and Temperature result |
mcm | 3:75cece7f7329 | 84 | mySI7021status = myTempRHsensor.SI7021_ReadHumidity ( &myData ); |
mcm | 3:75cece7f7329 | 85 | mySI7021status = myTempRHsensor.SI7021_ReadTemperatureFromRH ( &myData ); |
mcm | 3:75cece7f7329 | 86 | |
mcm | 3:75cece7f7329 | 87 | // Send it through the UART |
mcm | 3:75cece7f7329 | 88 | pc.printf( "Temp: %0.5f C, RH: %0.5f\r\n", myData.Temperature, myData.RelativeHumidity ); |
mcm | 3:75cece7f7329 | 89 | |
mcm | 3:75cece7f7329 | 90 | myState = 0; // Reset state |
mcm | 3:75cece7f7329 | 91 | myled1 = 0; |
mcm | 3:75cece7f7329 | 92 | } |
mcm | 3:75cece7f7329 | 93 | } |
mcm | 3:75cece7f7329 | 94 | } |
mcm | 1:54da1ce19764 | 95 | |
mcm | 1:54da1ce19764 | 96 | */ |
mcm | 1:54da1ce19764 | 97 | |
mcm | 1:54da1ce19764 | 98 | |
mcm | 1:54da1ce19764 | 99 | /*! |
mcm | 1:54da1ce19764 | 100 | Library for the SI7021 I2C Humidity and Temperature sensor. |
mcm | 1:54da1ce19764 | 101 | */ |
mcm | 1:54da1ce19764 | 102 | class SI7021 |
mcm | 1:54da1ce19764 | 103 | { |
mcm | 1:54da1ce19764 | 104 | public: |
mcm | 1:54da1ce19764 | 105 | /** |
mcm | 1:54da1ce19764 | 106 | * @brief DEFAULT ADDRESSES |
mcm | 1:54da1ce19764 | 107 | */ |
mcm | 1:54da1ce19764 | 108 | typedef enum { |
mcm | 1:54da1ce19764 | 109 | SI7021_ADDRESS = ( 0x40 << 1 ) /*!< SI7021 I2C Address */ |
mcm | 1:54da1ce19764 | 110 | } SI7021_address_t; |
mcm | 1:54da1ce19764 | 111 | |
mcm | 1:54da1ce19764 | 112 | |
mcm | 1:54da1ce19764 | 113 | // REGISTERS |
mcm | 1:54da1ce19764 | 114 | /** |
mcm | 1:54da1ce19764 | 115 | * @brief COMMAND CODE |
mcm | 1:54da1ce19764 | 116 | */ |
mcm | 1:54da1ce19764 | 117 | typedef enum { |
mcm | 1:54da1ce19764 | 118 | SI7021_MEASURE_RELATIVE_HUMIDITY_HOLD_MASTER_MODE = 0xE5, /*!< Measure Relative Humidity, Hold Master Mode */ |
mcm | 1:54da1ce19764 | 119 | SI7021_MEASURE_RELATIVE_HUMIDITY_NO_HOLD_MASTER_MODE = 0xF5, /*!< Measure Relative Humidity, No Hold Master Mode */ |
mcm | 1:54da1ce19764 | 120 | SI7021_MEASURE_TEMPERATURE_HOLD_MASTER_MODE = 0xE3, /*!< Measure Temperature, Hold Master Mode */ |
mcm | 1:54da1ce19764 | 121 | SI7021_MEASURE_TEMPERATURE_NO_HOLD_MASTER_MODE = 0xF3, /*!< Measure Temperature, No Hold Master Mode */ |
mcm | 1:54da1ce19764 | 122 | SI7021_READ_TEMPERATURE_VALUE_FROM_PREVIOUS_RH_MEASUREMENT = 0xE0, /*!< Read Temperature Value from Previous RH Measurement */ |
mcm | 1:54da1ce19764 | 123 | SI7021_RESET = 0xFE, /*!< Reset */ |
mcm | 1:54da1ce19764 | 124 | SI7021_WRITE_RH_T_USER_REGISTER_1 = 0xE6, /*!< Write RH/T User Register 1 */ |
mcm | 1:54da1ce19764 | 125 | SI7021_READ_RH_T_USER_REGISTER_1 = 0xE7, /*!< Read RH/T User Register 1 */ |
mcm | 1:54da1ce19764 | 126 | SI7021_WRITE_HEATER_CONTROL_REGISTER = 0x51, /*!< Write Heater Control Register */ |
mcm | 1:54da1ce19764 | 127 | SI7021_READ_HEATER_CONTROL_REGISTER = 0x11, /*!< Read Heater Control Register */ |
mcm | 1:54da1ce19764 | 128 | SI7021_READ_ELECTRONIC_ID_FIRST_BYTE_CMD1 = 0xFA, /*!< Read Electronic ID 1st Byte */ |
mcm | 1:54da1ce19764 | 129 | SI7021_READ_ELECTRONIC_ID_FIRST_BYTE_CMD2 = 0x0F, /*!< Read Electronic ID 1st Byte */ |
mcm | 1:54da1ce19764 | 130 | SI7021_READ_ELECTRONIC_ID_SECOND_BYTE_CMD1 = 0xFC, /*!< Read Electronic ID 2nd Byte */ |
mcm | 1:54da1ce19764 | 131 | SI7021_READ_ELECTRONIC_ID_SECOND_BYTE_CMD2 = 0xC9, /*!< Read Electronic ID 2nd Byte */ |
mcm | 1:54da1ce19764 | 132 | SI7021_READ_FIRMWARE_VERSION_CMD1 = 0x84, /*!< Read Firmware Revision */ |
mcm | 1:54da1ce19764 | 133 | SI7021_READ_FIRMWARE_VERSION_CMD2 = 0xB8 /*!< Read Firmware Revision */ |
mcm | 1:54da1ce19764 | 134 | } SI7021_command_code_t; |
mcm | 1:54da1ce19764 | 135 | |
mcm | 1:54da1ce19764 | 136 | |
mcm | 1:54da1ce19764 | 137 | |
mcm | 1:54da1ce19764 | 138 | // MASTER MODE |
mcm | 1:54da1ce19764 | 139 | /** |
mcm | 1:54da1ce19764 | 140 | * @brief MEASUREMENT RESOLUTION |
mcm | 1:54da1ce19764 | 141 | */ |
mcm | 1:54da1ce19764 | 142 | typedef enum { |
mcm | 1:54da1ce19764 | 143 | SI7021_HOLD_MASTER_MODE = 0x01, /*!< SI7021 HOLD MASTER MODE enabled */ |
mcm | 1:54da1ce19764 | 144 | SI7021_NO_HOLD_MASTER_MODE = 0x00 /*!< SI7021 NO HOLD MASTER MODE enabled */ |
mcm | 1:54da1ce19764 | 145 | } SI7021_master_mode_t; |
mcm | 1:54da1ce19764 | 146 | |
mcm | 1:54da1ce19764 | 147 | |
mcm | 1:54da1ce19764 | 148 | |
mcm | 1:54da1ce19764 | 149 | // USER REGISTER 1 |
mcm | 1:54da1ce19764 | 150 | /* |
mcm | 1:54da1ce19764 | 151 | NOTE: Reset Settings = 0011_1010. |
mcm | 1:54da1ce19764 | 152 | Except where noted, reserved register bits will always read back as “1,” and are not affected by write operations. For |
mcm | 1:54da1ce19764 | 153 | future compatibility, it is recommended that prior to a write operation, registers should be read. Then the values read |
mcm | 1:54da1ce19764 | 154 | from the RSVD bits should be written back unchanged during the write operation. |
mcm | 1:54da1ce19764 | 155 | */ |
mcm | 1:54da1ce19764 | 156 | /** |
mcm | 1:54da1ce19764 | 157 | * @brief MEASUREMENT RESOLUTION |
mcm | 1:54da1ce19764 | 158 | */ |
mcm | 1:54da1ce19764 | 159 | typedef enum { |
mcm | 1:54da1ce19764 | 160 | SI7021_RESOLUTION_MASK = 0x81, /*!< SI7021 Measurement Resolution */ |
mcm | 1:54da1ce19764 | 161 | SI7021_RESOLUTION_RH_12_TEMP_14 = 0x00, /*!< SI7021 12b RH 14b Temp. */ |
mcm | 1:54da1ce19764 | 162 | SI7021_RESOLUTION_RH_8_TEMP_12 = 0x01, /*!< SI7021 9b RH 12b Temp. */ |
mcm | 1:54da1ce19764 | 163 | SI7021_RESOLUTION_RH_10_TEMP_13 = 0x80, /*!< SI7021 10b RH 13b Temp. */ |
mcm | 1:54da1ce19764 | 164 | SI7021_RESOLUTION_RH_11_TEMP_11 = 0x81 /*!< SI7021 11b RH 11b Temp. */ |
mcm | 1:54da1ce19764 | 165 | } SI7021_measurement_resolution_t; |
mcm | 1:54da1ce19764 | 166 | |
mcm | 1:54da1ce19764 | 167 | |
mcm | 1:54da1ce19764 | 168 | |
mcm | 1:54da1ce19764 | 169 | /** |
mcm | 1:54da1ce19764 | 170 | * @brief VDDS |
mcm | 1:54da1ce19764 | 171 | */ |
mcm | 1:54da1ce19764 | 172 | /* |
mcm | 1:54da1ce19764 | 173 | NOTE: The minimum recommended operating voltage is 1.9 V. A transition |
mcm | 1:54da1ce19764 | 174 | of the VDD status bit from 0 to 1 indicates that VDD is |
mcm | 1:54da1ce19764 | 175 | between 1.8 V and 1.9 V. If the VDD drops below 1.8 V, the |
mcm | 1:54da1ce19764 | 176 | device will no longer operate correctly. |
mcm | 1:54da1ce19764 | 177 | */ |
mcm | 1:54da1ce19764 | 178 | typedef enum { |
mcm | 1:54da1ce19764 | 179 | SI7021_VDDS_STATUS_MASK = 0x40, /*!< SI7021 VDD mask. */ |
mcm | 1:54da1ce19764 | 180 | SI7021_VDDS_STATUS_VDD_OK = ( 0 << 6 ), /*!< VDD OK. */ |
mcm | 1:54da1ce19764 | 181 | SI7021_VDDS_STATUS_VDD_LOW = ( 1 << 6 ) /*!< VDD Low. */ |
mcm | 1:54da1ce19764 | 182 | } SI7021_vdds_status_t; |
mcm | 1:54da1ce19764 | 183 | |
mcm | 1:54da1ce19764 | 184 | |
mcm | 1:54da1ce19764 | 185 | |
mcm | 1:54da1ce19764 | 186 | /** |
mcm | 1:54da1ce19764 | 187 | * @brief HTRE |
mcm | 1:54da1ce19764 | 188 | */ |
mcm | 1:54da1ce19764 | 189 | typedef enum { |
mcm | 1:54da1ce19764 | 190 | SI7021_HTRE_MASK = 0x03, /*!< SI7021 HTRE Mask */ |
mcm | 1:54da1ce19764 | 191 | SI7021_HTRE_ENABLED = ( 1 << 2 ), /*!< SI7021 On-chip Heater Enable */ |
mcm | 1:54da1ce19764 | 192 | SI7021_HTRE_DISABLED = ( 0 << 2 ) /*!< SI7021 On-chip Heater Disable */ |
mcm | 1:54da1ce19764 | 193 | } SI7021_heater_t; |
mcm | 1:54da1ce19764 | 194 | |
mcm | 1:54da1ce19764 | 195 | |
mcm | 1:54da1ce19764 | 196 | |
mcm | 1:54da1ce19764 | 197 | |
mcm | 1:54da1ce19764 | 198 | |
mcm | 1:54da1ce19764 | 199 | |
mcm | 1:54da1ce19764 | 200 | #ifndef SI7021_VECTOR_STRUCT_H |
mcm | 1:54da1ce19764 | 201 | #define SI7021_VECTOR_STRUCT_H |
mcm | 1:54da1ce19764 | 202 | typedef struct { |
mcm | 1:54da1ce19764 | 203 | float RelativeHumidity; |
mcm | 1:54da1ce19764 | 204 | float Temperature; |
mcm | 1:54da1ce19764 | 205 | |
mcm | 1:54da1ce19764 | 206 | uint32_t ElectronicSerialNumber_LSB; |
mcm | 1:54da1ce19764 | 207 | uint32_t ElectronicSerialNumber_MSB; |
mcm | 1:54da1ce19764 | 208 | |
mcm | 1:54da1ce19764 | 209 | uint8_t FirmwareRevision; |
mcm | 1:54da1ce19764 | 210 | SI7021_vdds_status_t BatteryStatus; |
mcm | 1:54da1ce19764 | 211 | } SI7021_vector_data_t; |
mcm | 1:54da1ce19764 | 212 | #endif |
mcm | 1:54da1ce19764 | 213 | |
mcm | 1:54da1ce19764 | 214 | |
mcm | 1:54da1ce19764 | 215 | |
mcm | 1:54da1ce19764 | 216 | /** |
mcm | 1:54da1ce19764 | 217 | * @brief INTERNAL CONSTANTS |
mcm | 1:54da1ce19764 | 218 | */ |
mcm | 1:54da1ce19764 | 219 | typedef enum { |
mcm | 1:54da1ce19764 | 220 | SI7021_SUCCESS = 0, |
mcm | 1:54da1ce19764 | 221 | SI7021_FAILURE = 1, |
mcm | 1:54da1ce19764 | 222 | I2C_SUCCESS = 0 /*!< I2C communication was fine */ |
mcm | 1:54da1ce19764 | 223 | } SI7021_status_t; |
mcm | 1:54da1ce19764 | 224 | |
mcm | 1:54da1ce19764 | 225 | |
mcm | 1:54da1ce19764 | 226 | |
mcm | 1:54da1ce19764 | 227 | |
mcm | 1:54da1ce19764 | 228 | /** Create an SI7021 object connected to the specified I2C pins. |
mcm | 1:54da1ce19764 | 229 | * |
mcm | 1:54da1ce19764 | 230 | * @param sda I2C data pin |
mcm | 1:54da1ce19764 | 231 | * @param scl I2C clock pin |
mcm | 1:54da1ce19764 | 232 | * @param addr I2C slave address |
mcm | 1:54da1ce19764 | 233 | * @param freq I2C frequency in Hz. |
mcm | 1:54da1ce19764 | 234 | */ |
mcm | 1:54da1ce19764 | 235 | SI7021 ( PinName sda, PinName scl, uint32_t addr, uint32_t freq ); |
mcm | 1:54da1ce19764 | 236 | |
mcm | 1:54da1ce19764 | 237 | /** Delete SI7021 object. |
mcm | 1:54da1ce19764 | 238 | */ |
mcm | 1:54da1ce19764 | 239 | ~SI7021(); |
mcm | 1:54da1ce19764 | 240 | |
mcm | 1:54da1ce19764 | 241 | /** It configures the device: resolution and heater. |
mcm | 1:54da1ce19764 | 242 | */ |
mcm | 1:54da1ce19764 | 243 | SI7021_status_t SI7021_Conf ( SI7021_measurement_resolution_t myResolution, SI7021_heater_t myHeater ); |
mcm | 1:54da1ce19764 | 244 | |
mcm | 1:54da1ce19764 | 245 | /** It performs a software reset. |
mcm | 1:54da1ce19764 | 246 | */ |
mcm | 1:54da1ce19764 | 247 | SI7021_status_t SI7021_SoftReset ( void ); |
mcm | 1:54da1ce19764 | 248 | |
mcm | 1:54da1ce19764 | 249 | /** It gets the electronic serial number. |
mcm | 1:54da1ce19764 | 250 | */ |
mcm | 1:54da1ce19764 | 251 | SI7021_status_t SI7021_GetElectronicSerialNumber ( SI7021_vector_data_t* mySerialNumber ); |
mcm | 1:54da1ce19764 | 252 | |
mcm | 1:54da1ce19764 | 253 | /** It gets the firmware revision. |
mcm | 1:54da1ce19764 | 254 | */ |
mcm | 1:54da1ce19764 | 255 | SI7021_status_t SI7021_GetFirmwareRevision ( SI7021_vector_data_t* myFirmwareRevision ); |
mcm | 1:54da1ce19764 | 256 | |
mcm | 1:54da1ce19764 | 257 | /** It sets the heater current. |
mcm | 1:54da1ce19764 | 258 | */ |
mcm | 1:54da1ce19764 | 259 | SI7021_status_t SI7021_SetHeaterCurrent ( char myHeaterCurrent ); |
mcm | 1:54da1ce19764 | 260 | |
mcm | 1:54da1ce19764 | 261 | /** It performs a new temperature measurement. |
mcm | 1:54da1ce19764 | 262 | */ |
mcm | 1:54da1ce19764 | 263 | SI7021_status_t SI7021_TriggerTemperature ( SI7021_master_mode_t myMode ); |
mcm | 1:54da1ce19764 | 264 | |
mcm | 1:54da1ce19764 | 265 | /** It read the temperature. |
mcm | 1:54da1ce19764 | 266 | */ |
mcm | 1:54da1ce19764 | 267 | SI7021_status_t SI7021_ReadTemperature ( SI7021_vector_data_t* myTemperature ); |
mcm | 1:54da1ce19764 | 268 | |
mcm | 1:54da1ce19764 | 269 | /** It reads the raw data from temperature. |
mcm | 1:54da1ce19764 | 270 | */ |
mcm | 1:54da1ce19764 | 271 | SI7021_status_t SI7021_ReadRawTemperature ( SI7021_vector_data_t* myTemperature ); |
mcm | 1:54da1ce19764 | 272 | |
mcm | 1:54da1ce19764 | 273 | /** It reads the raw temperature data after a relative humidity measurement was done. |
mcm | 1:54da1ce19764 | 274 | */ |
mcm | 1:54da1ce19764 | 275 | SI7021_status_t SI7021_ReadRawTemperatureFromRH ( SI7021_vector_data_t* myTemperature ); |
mcm | 1:54da1ce19764 | 276 | |
mcm | 1:54da1ce19764 | 277 | /** It reads the temperature after a relative humidity measurement was done. |
mcm | 1:54da1ce19764 | 278 | */ |
mcm | 1:54da1ce19764 | 279 | SI7021_status_t SI7021_ReadTemperatureFromRH ( SI7021_vector_data_t* myTemperature ); |
mcm | 1:54da1ce19764 | 280 | |
mcm | 1:54da1ce19764 | 281 | /** It performs a new relative humidity measurement. |
mcm | 1:54da1ce19764 | 282 | */ |
mcm | 1:54da1ce19764 | 283 | SI7021_status_t SI7021_TriggerHumidity ( SI7021_master_mode_t myMode ); |
mcm | 1:54da1ce19764 | 284 | |
mcm | 1:54da1ce19764 | 285 | /** It reads the relative humidity. |
mcm | 1:54da1ce19764 | 286 | */ |
mcm | 1:54da1ce19764 | 287 | SI7021_status_t SI7021_ReadHumidity ( SI7021_vector_data_t* myHumidity ); |
mcm | 1:54da1ce19764 | 288 | |
mcm | 1:54da1ce19764 | 289 | /** It reads the raw data from relative humidity. |
mcm | 1:54da1ce19764 | 290 | */ |
mcm | 1:54da1ce19764 | 291 | SI7021_status_t SI7021_ReadRawHumidity ( SI7021_vector_data_t* myHumidity ); |
mcm | 1:54da1ce19764 | 292 | |
mcm | 1:54da1ce19764 | 293 | /** It gets the battery status. |
mcm | 1:54da1ce19764 | 294 | */ |
mcm | 1:54da1ce19764 | 295 | SI7021_status_t SI7021_GetBatteryStatus ( SI7021_vector_data_t* myBatteryStatus ); |
mcm | 1:54da1ce19764 | 296 | |
mcm | 1:54da1ce19764 | 297 | |
mcm | 1:54da1ce19764 | 298 | |
mcm | 1:54da1ce19764 | 299 | |
mcm | 1:54da1ce19764 | 300 | private: |
mcm | 1:54da1ce19764 | 301 | I2C _i2c; |
mcm | 1:54da1ce19764 | 302 | uint32_t _SI7021_Addr; |
mcm | 1:54da1ce19764 | 303 | }; |
mcm | 1:54da1ce19764 | 304 | |
mcm | 1:54da1ce19764 | 305 | #endif |