-
Notifications
You must be signed in to change notification settings - Fork 0
/
NodeMCU_SHT31.h
57 lines (47 loc) · 1.68 KB
/
NodeMCU_SHT31.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/***************************************************
This is a library for the SHT31 Digital Humidity & Temp Sensor
Designed specifically to work with the SHT31 Digital sensor from Adafruit
----> https://www.adafruit.com/products/2857
These displays use I2C to communicate, 2 pins are required to
interface
Adafruit invests time and resources providing this open source code,
please support Adafruit and open-source hardware by purchasing
products from Adafruit!
Written by Limor Fried/Ladyada for Adafruit Industries.
BSD license, all text above must be included in any redistribution
****************************************************/
#if (ARDUINO >= 100)
#include "Arduino.h"
#else
#include "WProgram.h"
#endif
#include "Wire.h"
#define SHT31_DEFAULT_ADDR 0x44
#define SHT31_MEAS_HIGHREP_STRETCH 0x2C06
#define SHT31_MEAS_MEDREP_STRETCH 0x2C0D
#define SHT31_MEAS_LOWREP_STRETCH 0x2C10
#define SHT31_MEAS_HIGHREP 0x2400
#define SHT31_MEAS_MEDREP 0x240B
#define SHT31_MEAS_LOWREP 0x2416
#define SHT31_READSTATUS 0xF32D
#define SHT31_CLEARSTATUS 0x3041
#define SHT31_SOFTRESET 0x30A2
#define SHT31_HEATEREN 0x306D
#define SHT31_HEATERDIS 0x3066
class NodeMCU_SHT31 {
public:
NodeMCU_SHT31();
boolean begin(int sda, int scl, uint8_t i2caddr = SHT31_DEFAULT_ADDR);
float readTemperature(void);
float readHumidity(void);
uint16_t readStatus(void);
void reset(void);
void heater(boolean);
uint8_t crc8(const uint8_t *data, int len);
private:
boolean readTempHum(void);
void writeCommand(uint16_t cmd);
uint8_t _i2caddr;
boolean readData(void);
float humidity, temp;
};