/
SHT31_rawValues.ino
84 lines (65 loc) · 1.69 KB
/
SHT31_rawValues.ino
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
//
// FILE: SHT31_async.ino
// AUTHOR: Rob Tillaart
// PURPOSE: demo async interface
// URL: https://github.com/RobTillaart/SHT31
#include "Wire.h"
#include "SHT31.h"
#define SHT31_ADDRESS 0x44
uint32_t start;
uint32_t stop;
uint32_t cnt;
SHT31 sht(SHT31_ADDRESS); // uses explicit address
void setup()
{
Serial.begin(115200);
Serial.println(__FILE__);
Serial.print("SHT31_LIB_VERSION: \t");
Serial.println(SHT31_LIB_VERSION);
Wire.begin();
Wire.setClock(100000);
sht.begin();
uint16_t stat = sht.readStatus();
Serial.print(stat, HEX);
Serial.println();
sht.requestData();
cnt = 0;
}
void loop()
{
uint16_t rawTemperature;
uint16_t rawHumidity;
if (sht.dataReady())
{
start = micros();
bool success = sht.readData(); // default = true = fast
stop = micros();
sht.requestData(); // request for next sample
Serial.print("\t");
Serial.print(stop - start);
Serial.print("\t");
if (success == false)
{
Serial.println("Failed read");
}
else
{
rawTemperature = sht.getRawTemperature();
rawHumidity = sht.getRawHumidity();
Serial.print(rawTemperature, HEX);
Serial.print(" = ");
// This formula comes from page 14 of the SHT31 datasheet
Serial.print(rawTemperature * (175.0 / 65535) - 45, 1);
Serial.print("°C\t");
Serial.print(sht.getRawHumidity(), HEX);
Serial.print(" = ");
// This formula comes from page 14 of the SHT31 datasheet
Serial.print(rawHumidity * (100.0 / 65535), 1);
Serial.print("%\t");
Serial.println(cnt);
cnt = 0;
}
}
cnt++; // simulate other activity
}
// -- END OF FILE --