-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathSensor_DS18B20.h
57 lines (32 loc) · 1023 Bytes
/
Sensor_DS18B20.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
57
#include <DallasTemperature.h>
#ifndef _Sensor_DS18B20_H_
#define _Sensor_DS18B20_H_
// The sensor reading states.
void beginReadingOneWireSensors();
void waitForOneWireSensors();
void finishReadingOneWireSensors();
void (*currentOneWireSensorFunction)(void) = beginReadingOneWireSensors;
unsigned long nextOneWireTime = 0;
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature oneWireSensors(&oneWire);
void initDS18B20() {
oneWireSensors.begin();
currentOneWireSensorFunction = beginReadingOneWireSensors;
}
void DS18B20SensorTask() {
currentOneWireSensorFunction();
}
double getRootZoneTemperature() {
return oneWireSensors.getTempCByIndex(0);
}
void beginReadingOneWireSensors() {
oneWireSensors.requestTemperatures();
nextOneWireTime = millis() + 10000;
currentOneWireSensorFunction = beginReadingOneWireSensors;
}
void waitForOneWireSensors() {
if( millis() > nextOneWireTime ) {
currentOneWireSensorFunction = beginReadingOneWireSensors;
}
}
#endif