1 
2 /*
3  * Copyright (C) 2015-2020 Alibaba Group Holding Limited
4  */
5 
6 #include "aos/hal/i2c.h"
7 #include <math.h>
8 #include <stdbool.h>
9 
10 #ifndef SI7006_h
11 #define SI7006_h
12 
13 #define SI7006_ADDRESS 0x40
14 #define SI7006_TAG     0x06
15 
16 #define SI7006_MEAS_REL_HUMIDITY_MASTER_MODE    0xE5
17 #define SI7006_MEAS_REL_HUMIDITY_NO_MASTER_MODE 0xF5
18 #define SI7006_MEAS_TEMP_MASTER_MODE            0xE3
19 #define SI7006_MEAS_TEMP_NO_MASTER_MODE         0xF3
20 #define SI7006_READ_OLD_TEMP                    0xE0
21 #define SI7006_RESET                            0xFE
22 #define SI7006_READ_ID_LOW_0                    0xFA
23 #define SI7006_READ_ID_LOW_1                    0x0F
24 #define SI7006_READ_ID_HIGH_0                   0xFC
25 #define SI7006_READ_ID_HIGH_1                   0xC9
26 #define SI7006_READ_Firmware_Revision_0         0x84
27 #define SI7006_READ_Firmware_Revision_1         0xB8
28 
29 extern void si7006_init(void);
30 extern uint8_t si7006_getVer(void);
31 extern void si7006_getID(uint8_t *id_buf);
32 extern bool si7006_getTemperature(float *temperature);
33 extern bool si7006_getHumidity(float *humidity);
34 extern void si7006_getTempHumidity(float *humidity, float *temperature);
35 extern void si7006_deinit(void);
36 #endif
37