initial commit
commit
17f7f28bf9
|
|
@ -0,0 +1,61 @@
|
|||
#include <Homie.h>
|
||||
#include <OneWire.h>
|
||||
#include <DallasTemperature.h>
|
||||
|
||||
#define ONE_WIRE_BUS 2
|
||||
|
||||
const int READ_INTERVAL = 10000;
|
||||
unsigned long lastReadingSent = 0;
|
||||
|
||||
OneWire oneWire(ONE_WIRE_BUS);
|
||||
DallasTemperature sensors(&oneWire);
|
||||
|
||||
int millisToWait = sensors.millisToWaitForConversion(12);
|
||||
bool waitingForConversion = false;
|
||||
unsigned long millisAtStartConversion = 0;
|
||||
|
||||
HomieNode temperatureNode("temperature", "Temperature", "temperature");
|
||||
|
||||
|
||||
void loopHandler() {
|
||||
|
||||
if (millis() - lastReadingSent >= READ_INTERVAL) {
|
||||
if (waitingForConversion == false) {
|
||||
sensors.requestTemperatures();
|
||||
waitingForConversion = true;
|
||||
millisAtStartConversion = millis();
|
||||
}
|
||||
|
||||
if ((waitingForConversion == true) && (millis() - millisAtStartConversion >= millisToWait)) {
|
||||
|
||||
float temperature = sensors.getTempCByIndex(0);
|
||||
|
||||
Homie.getLogger() << "Temperature: " << temperature << " °C" << endl;
|
||||
temperatureNode.setProperty("temperature").send(String(temperature));
|
||||
|
||||
waitingForConversion = false;
|
||||
lastReadingSent = millis();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
Serial << endl << endl;
|
||||
Homie_setFirmware("awesome-ds18b20", "1.0.0");
|
||||
Homie.setLoopFunction(loopHandler);
|
||||
|
||||
temperatureNode.advertise("temperature").setName("Temperature")
|
||||
.setDatatype("float")
|
||||
.setUnit("ºC");
|
||||
|
||||
sensors.begin();
|
||||
sensors.setResolution(12);
|
||||
sensors.setWaitForConversion(false);
|
||||
Homie.setup();
|
||||
|
||||
}
|
||||
|
||||
void loop() {
|
||||
Homie.loop();
|
||||
}
|
||||
Loading…
Reference in New Issue