From dbe39193a7597ee3741acabe907c488ddf4840bb Mon Sep 17 00:00:00 2001 From: Piotr Dobrowolski Date: Sun, 2 Sep 2018 18:32:13 +0200 Subject: [PATCH] Update to Sming 0b646a58 to fix DHT library --- spejsiot/endpoints/DHTEndpoint.cpp | 17 +++++++---------- spejsiot/endpoints/DHTEndpoint.h | 11 +++++++---- temperature/app/application.cpp | 5 +++-- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/spejsiot/endpoints/DHTEndpoint.cpp b/spejsiot/endpoints/DHTEndpoint.cpp index e5856e5..319eedc 100644 --- a/spejsiot/endpoints/DHTEndpoint.cpp +++ b/spejsiot/endpoints/DHTEndpoint.cpp @@ -3,19 +3,16 @@ void DHTEndpoint::bind(String _name, SpejsNode* _parent) { Endpoint::bind(_name, _parent); - sensor.begin(); + sensor.setup(pin, sensor_type); samplingTimer.initializeMs(samplingRate, TimerDelegate(&DHTEndpoint::sample, this)).start(); } void DHTEndpoint::sample() { - TempAndHumidity th; - if(sensor.readTempAndHumidity(th)) - { - notify("degree", String(th.temp)); - notify("humidity", String(th.humid)); - } - else - { - debugf("Failed to read from DHT: %d", sensor.getLastError()); + TempAndHumidity th = sensor.getTempAndHumidity(); + if(sensor.getStatus() == DHTesp::ERROR_NONE) { + notify("degree", String(th.temperature)); + notify("humidity", String(th.humidity)); + } else { + debugf("Failed to read from DHT: %d", sensor.getStatus()); } } diff --git a/spejsiot/endpoints/DHTEndpoint.h b/spejsiot/endpoints/DHTEndpoint.h index 03bae83..d37b6b4 100644 --- a/spejsiot/endpoints/DHTEndpoint.h +++ b/spejsiot/endpoints/DHTEndpoint.h @@ -2,11 +2,14 @@ #define DHTENDPOINT_H #include -#include +#include class DHTEndpoint : public ValueEndpoint { private: - DHT sensor; + DHTesp sensor; + DHTesp::DHT_MODEL_t sensor_type; + uint8_t pin; + Timer samplingTimer; int samplingRate; @@ -14,8 +17,8 @@ protected: void sample(); public: - DHTEndpoint(int _pin, int _samplingRate = 10000, int _sensor_type=DHT11) : - ValueEndpoint("dht"), sensor(_pin, _sensor_type), + DHTEndpoint(int _pin, int _samplingRate = 10000, DHTesp::DHT_MODEL_t _sensor_type=DHTesp::DHT11) : + ValueEndpoint("dht"), pin(_pin), sensor_type(_sensor_type), samplingRate(_samplingRate) {} void bind(String name, SpejsNode* _parent); diff --git a/temperature/app/application.cpp b/temperature/app/application.cpp index 9229630..d969d28 100644 --- a/temperature/app/application.cpp +++ b/temperature/app/application.cpp @@ -4,6 +4,7 @@ SpejsNode node("ambient"); void init() { - node.init(); - node.registerEndpoint("environment", new DHTEndpoint(2, 10000, DHT22)); + node.statusLED.config(2, LOW); + node.init(true); + node.registerEndpoint("environment", new DHTEndpoint(2, 2000, DHTesp::DHT22)); }