si70xx.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2016 Bas Stottelaar <basstottelaar@gmail.com>
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser
5  * General Public License v2.1. See the file LICENSE in the top level
6  * directory for more details.
7  */
8 
33 #ifndef SI70XX_H
34 #define SI70XX_H
35 
36 #include "periph/i2c.h"
37 
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41 
45 #if MODULE_SI7050 || MODULE_SI7051 || MODULE_SI7053 || MODULE_SI7054 || \
46  MODULE_SI7055
47 /* Si705x sensors don't have a humidity sensor hardware, only temperature. */
48 #define SI70XX_HAS_HUMIDITY_SENSOR 0
49 #else
50 #define SI70XX_HAS_HUMIDITY_SENSOR 1
51 #endif
52 
56 enum {
60 };
61 
65 typedef struct {
67  uint8_t address;
69 
73 typedef struct {
75 } si70xx_t;
76 
88 int si70xx_init(si70xx_t *dev, const si70xx_params_t *params);
89 
90 #if SI70XX_HAS_HUMIDITY_SENSOR || DOXYGEN
100 #endif /* SI70XX_HAS_HUMIDITY_SENSOR || DOXYGEN */
101 
109 int16_t si70xx_get_temperature(const si70xx_t *dev);
110 
111 #if SI70XX_HAS_HUMIDITY_SENSOR || DOXYGEN
122 void si70xx_get_both(const si70xx_t *dev, uint16_t *humidity, int16_t *temperature);
123 #endif /* SI70XX_HAS_HUMIDITY_SENSOR || DOXYGEN */
124 
131 uint64_t si70xx_get_serial(const si70xx_t *dev);
132 
139 uint8_t si70xx_get_id(const si70xx_t *dev);
140 
147 uint8_t si70xx_get_revision(const si70xx_t *dev);
148 
149 #ifdef __cplusplus
150 }
151 #endif
152 
153 #endif /* SI70XX_H */
uint_fast8_t i2c_t
Default i2c_t type definition.
Definition: i2c.h:145
uint8_t si70xx_get_revision(const si70xx_t *dev)
Read the firmware revision of the sensor.
void si70xx_get_both(const si70xx_t *dev, uint16_t *humidity, int16_t *temperature)
Read the relative humidity and temperature from the sensor.
int16_t si70xx_get_temperature(const si70xx_t *dev)
Read the current temperature from the sensor.
int si70xx_init(si70xx_t *dev, const si70xx_params_t *params)
Initialize and reset the sensor.
uint8_t si70xx_get_id(const si70xx_t *dev)
Read the sensor id, to identifier the sensor variant.
uint16_t si70xx_get_relative_humidity(const si70xx_t *dev)
Read the relative humidity from the sensor.
uint64_t si70xx_get_serial(const si70xx_t *dev)
Read the sensor serial number.
@ SI70XX_ERR_NODEV
No valid device found on I2C bus.
Definition: si70xx.h:58
@ SI70XX_ERR_I2C
An error occurred when reading/writing on I2C bus.
Definition: si70xx.h:59
@ SI70XX_OK
All OK.
Definition: si70xx.h:57
Low-level I2C peripheral driver interface definition.
Device initialization parameters.
Definition: si70xx.h:65
i2c_t i2c_dev
I2C bus the sensor is connected to.
Definition: si70xx.h:66
uint8_t address
sensor address
Definition: si70xx.h:67
Si70xx device descriptor.
Definition: si70xx.h:73
si70xx_params_t params
Device parameters.
Definition: si70xx.h:74