commit e5122884518c3372a2da8dce19bdd05129250c6b Author: Bryan Date: Fri Apr 23 22:51:21 2021 -0600 initial commit diff --git a/homie-dht11.ino b/homie-dht11.ino new file mode 100644 index 0000000..83fa6d7 --- /dev/null +++ b/homie-dht11.ino @@ -0,0 +1,62 @@ +#include +#include + +const int DHT_PIN = 2; +const int READ_INTERVAL = 3000; +unsigned long lastReadingSent = 0; + + +DHTesp dht; +HomieNode temperatureNode("temperature", "Temperature", "temperature"); +HomieNode humidityNode("humidity", "Humidity", "humidity"); +HomieNode comfort("comfort", "Comfort", "comfort"); + +void loopHandler() { + if (millis() - lastReadingSent >= READ_INTERVAL) { + float humidity = dht.getHumidity(); + float temperature = dht.getTemperature(); + float dewPoint = dht.computeDewPoint(temperature, humidity); + float absHumidity = dht.computeAbsoluteHumidity(temperature, humidity); + + Homie.getLogger() << "Temperature: " << temperature << " °C" << endl; + Homie.getLogger() << "Relative Humidity: " << humidity << "%" << endl; + Homie.getLogger() << "Dew Point: " << dewPoint << " °C" << endl; + Homie.getLogger() << "Absolute Humidity: " << absHumidity << "g/m³" << endl; + + temperatureNode.setProperty("temp").send(String(temperature)); + humidityNode.setProperty("rh").send(String(humidity)); + humidityNode.setProperty("dewpoint").send(String(dewPoint)); + humidityNode.setProperty("abshumidity").send(String(absHumidity)); + + lastReadingSent = millis(); + } +} + +void setup() { + Serial.begin(115200); + Serial << endl << endl; + Homie_setFirmware("awesome-dht11", "1.0.0"); + Homie.setLoopFunction(loopHandler); + + temperatureNode.advertise("temp").setName("Temperature") + .setDatatype("float") + .setUnit("ºC"); + + humidityNode.advertise("rh").setName("Relative Humidity") + .setDatatype("float") + .setUnit("%"); + + humidityNode.advertise("dewpoint").setName("Dew Point") + .setDatatype("float") + .setUnit("ºC"); + + humidityNode.advertise("abshumidity").setName("Absolute") + .setDatatype("float") + .setUnit("g/m³"); + Homie.setup(); + dht.setup(DHT_PIN, DHTesp::DHT11); +} + +void loop() { + Homie.loop(); +}