initial commit

master
Bryan 2021-04-23 22:52:55 -06:00
commit 17f7f28bf9
1 changed files with 61 additions and 0 deletions

61
homie-ds18b20.ino Normal file
View File

@ -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();
}