From 77198d84ebbca4919f19b24d949b7d0c74774ae2 Mon Sep 17 00:00:00 2001 From: Emmanuel Lacour Date: Sat, 23 Jan 2021 15:57:06 +0100 Subject: [PATCH] Use Adafruit dht library instead of SimpleDHT everywhere --- garage/garage.ino | 38 ++++++++++++++++++++++++++++---------- palier/palier.ino | 38 ++++++++++++++++++++++++++++---------- salon/salon.ino | 38 ++++++++++++++++++++++++++++---------- 3 files changed, 84 insertions(+), 30 deletions(-) diff --git a/garage/garage.ino b/garage/garage.ino index 0c11eaa..67576eb 100644 --- a/garage/garage.ino +++ b/garage/garage.ino @@ -1,7 +1,9 @@ #include #include #include -#include +#include +#include +#include #include "garage-config.h" @@ -18,8 +20,10 @@ String city = CITY; String location = LOCATION; WiFiUDP Udp; -int pinDHT22 = 13; -SimpleDHT22 dht22(pinDHT22); +// Temp +#define DHTPIN 13 +#define DHTTYPE DHT22 +DHT_Unified dht(DHTPIN, DHTTYPE); TeleInfo teleinfo(&Serial); @@ -32,15 +36,30 @@ void setup() { while (WiFi.status() != WL_CONNECTED) { delay(500); } + + dht.begin(); + sensor_t sensor; + dht.temperature().getSensor(&sensor); + dht.humidity().getSensor(&sensor); + } void loop() { - float temperature = 0; - float humidity = 0; - int err = SimpleDHTErrSuccess; - if ((err = dht22.read2(&temperature, &humidity, NULL)) == SimpleDHTErrSuccess) { - sendToInfluxDB("temperature,city="+city+",location="+location, "value", String(temperature)); - sendToInfluxDB("humidity,city="+city+",location="+location, "value", String(humidity)); + delay(POLL_INT); + + sensors_event_t event; + + dht.temperature().getEvent(&event); + if (isnan(event.temperature)) { + // Error + } else { + sendToInfluxDB("temperature,city="+city+",location="+location, "value", String(event.temperature)); + } + dht.humidity().getEvent(&event); + if (isnan(event.relative_humidity)) { + // Error + } else { + sendToInfluxDB("humidity,city="+city+",location="+location, "value", String(event.relative_humidity)); } teleinfo.process(); @@ -57,7 +76,6 @@ void loop() { sendToInfluxDB("teleinfo,city="+city, "BASE", String(BASE)); teleinfo.resetAvailable(); } - delay(POLL_INT); } void sendToInfluxDB(String measure, String key, String value) { diff --git a/palier/palier.ino b/palier/palier.ino index 33ba10d..7cf3a33 100644 --- a/palier/palier.ino +++ b/palier/palier.ino @@ -1,6 +1,8 @@ #include #include -#include +#include +#include +#include #include "palier-config.h" @@ -17,8 +19,10 @@ String city = CITY; String location = LOCATION; WiFiUDP Udp; -int pinDHT22 = 13; -SimpleDHT22 dht22(pinDHT22); +// Temp +#define DHTPIN 13 +#define DHTTYPE DHT22 +DHT_Unified dht(DHTPIN, DHTTYPE); void setup() { @@ -29,18 +33,32 @@ void setup() { while (WiFi.status() != WL_CONNECTED) { delay(500); } + + dht.begin(); + sensor_t sensor; + dht.temperature().getSensor(&sensor); + dht.humidity().getSensor(&sensor); + } void loop() { - float temperature = 0; - float humidity = 0; - int err = SimpleDHTErrSuccess; - if ((err = dht22.read2(&temperature, &humidity, NULL)) == SimpleDHTErrSuccess) { - sendToInfluxDB("temperature,city="+city+",location="+location, "value", String(temperature)); - sendToInfluxDB("humidity,city="+city+",location="+location, "value", String(humidity)); + delay(POLL_INT); + + sensors_event_t event; + + dht.temperature().getEvent(&event); + if (isnan(event.temperature)) { + // Error + } else { + sendToInfluxDB("temperature,city="+city+",location="+location, "value", String(event.temperature)); + } + dht.humidity().getEvent(&event); + if (isnan(event.relative_humidity)) { + // Error + } else { + sendToInfluxDB("humidity,city="+city+",location="+location, "value", String(event.relative_humidity)); } - delay(POLL_INT); } void sendToInfluxDB(String measure, String key, String value) { diff --git a/salon/salon.ino b/salon/salon.ino index fb7d51f..5bcbc38 100644 --- a/salon/salon.ino +++ b/salon/salon.ino @@ -1,6 +1,8 @@ #include #include -#include +#include +#include +#include #include "salon-config.h" @@ -17,8 +19,10 @@ String city = CITY; String location = LOCATION; WiFiUDP Udp; -int pinDHT22 = 13; -SimpleDHT22 dht22(pinDHT22); +// Temp +#define DHTPIN 13 +#define DHTTYPE DHT22 +DHT_Unified dht(DHTPIN, DHTTYPE); void setup() { @@ -29,18 +33,32 @@ void setup() { while (WiFi.status() != WL_CONNECTED) { delay(500); } + + dht.begin(); + sensor_t sensor; + dht.temperature().getSensor(&sensor); + dht.humidity().getSensor(&sensor); + } void loop() { - float temperature = 0; - float humidity = 0; - int err = SimpleDHTErrSuccess; - if ((err = dht22.read2(&temperature, &humidity, NULL)) == SimpleDHTErrSuccess) { - sendToInfluxDB("temperature,city="+city+",location="+location, "value", String(temperature)); - sendToInfluxDB("humidity,city="+city+",location="+location, "value", String(humidity)); + delay(POLL_INT); + + sensors_event_t event; + + dht.temperature().getEvent(&event); + if (isnan(event.temperature)) { + // Error + } else { + sendToInfluxDB("temperature,city="+city+",location="+location, "value", String(event.temperature)); + } + dht.humidity().getEvent(&event); + if (isnan(event.relative_humidity)) { + // Error + } else { + sendToInfluxDB("humidity,city="+city+",location="+location, "value", String(event.relative_humidity)); } - delay(POLL_INT); } void sendToInfluxDB(String measure, String key, String value) { -- 2.11.0