From be6944d831e039397b9f42c4d84c29d28c2432c9 Mon Sep 17 00:00:00 2001 From: Ronald Schaten Date: Tue, 23 Feb 2016 23:31:29 +0100 Subject: [PATCH] function to compare floats, should fix #3 --- things.ino | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/things.ino b/things.ino index 69322aa..6056553 100644 --- a/things.ino +++ b/things.ino @@ -52,6 +52,10 @@ void configModeCallback (WiFiManager *myWiFiManager) { ticker.attach(0.1, toggle_led); } +bool isEqual(float a, float b, float epsilon=0.001) { + return fabs(a - b) <= epsilon * fabs(a); +} + void read_sensor() { // wait at least 2 seconds seconds between measurements unsigned long currentMillis = millis(); @@ -78,13 +82,13 @@ void read_sensor() { dtostrf(temperature, 1, 2, str_temperature); dtostrf(heatindex, 1, 2, str_heatindex); - if (humidity != previousHumidity) { + if (!isEqual(humidity, previousHumidity)) { client.publish("nodemcu/humidity", str_humidity); } - if (temperature != previousTemperature) { + if (!isEqual(temperature, previousTemperature)) { client.publish("nodemcu/temperature", str_temperature); } - if (heatindex != previousHeatindex) { + if (!isEqual(heatindex, previousHeatindex)) { client.publish("nodemcu/heatindex", str_heatindex); }