diff --git a/include/items/SensorDallasClass.h b/include/items/SensorDallasClass.h index b9f537f4..fa31cf0a 100644 --- a/include/items/SensorDallasClass.h +++ b/include/items/SensorDallasClass.h @@ -1,6 +1,5 @@ #pragma once #include - #include "Class/LineParsing.h" #include "Global.h" #include "items/SensorConvertingClass.h" diff --git a/include/items/SensorDhtClass.h b/include/items/SensorDhtClass.h new file mode 100644 index 00000000..516b88da --- /dev/null +++ b/include/items/SensorDhtClass.h @@ -0,0 +1,45 @@ +#pragma once +#include +#include "Class/LineParsing.h" +#include "Global.h" +#include "items/SensorConvertingClass.h" + +class SensorDhtClass : public SensorConvertingClass { + public: + SensorDhtClass() : SensorConvertingClass(){}; + + void SensorDhtInit() { + //oneWire = new OneWire((uint8_t)_pin.toInt()); + //sensors.setOneWire(oneWire); + //sensors.begin(); + //sensors.setResolution(48); + + sensorReadingMap += _key + ","; + //dhtEnterCounter++; + + //jsonWriteInt(configOptionJson, _key + "_num", dhtEnterCounter); + jsonWriteStr(configOptionJson, _key + "_map", _map); + jsonWriteStr(configOptionJson, _key + "_с", _c); + } + + void SensorDhtRead(String key) { + float value; + byte num = sensors.getDS18Count(); + sensors.requestTemperatures(); + + int cnt = jsonReadInt(configOptionJson, key + "_num"); + + for (byte i = 0; i < num; i++) { + if (i == cnt) { + value = sensors.getTempCByIndex(i); + //value = this->mapping(key, value); + float valueFl = this->correction(key, value); + eventGen(key, ""); + jsonWriteStr(configLiveJson, key, String(valueFl)); + MqttClient::publishStatus(key, String(valueFl)); + Serial.println("[I] sensor '" + key + "' data: " + String(valueFl)); + } + } + } +}; +extern SensorDhtClass mySensorDht; \ No newline at end of file diff --git a/src/Sensors.cpp b/src/Sensors.cpp index ae6da4c0..4d6a73ef 100644 --- a/src/Sensors.cpp +++ b/src/Sensors.cpp @@ -20,7 +20,7 @@ void bmp280T_reading(); void sensorsInit() { ts.add( - SENSORS, 15000, [&](void *) { + SENSORS, 10000, [&](void *) { String buf = sensorReadingMap; while (buf.length()) { String tmp = selectToMarker(buf, ","); diff --git a/src/items/SensorDhtClass.cpp b/src/items/SensorDhtClass.cpp new file mode 100644 index 00000000..29b36690 --- /dev/null +++ b/src/items/SensorDhtClass.cpp @@ -0,0 +1,20 @@ +#include "items/ItemsGlobal.h" +#include "items/SensorDhtClass.h" +//#ifdef SensorDhtEnabled +//=========================================Модуль ультрозвукового дальномера================================================================== +//dht-temp;id;anydata;Сенсоры;Температура;order;pin;c[1] +//========================================================================================================================================= +SensorDhtClass mySensorDht; +void DhtTemp() { + mySensorDht.update(); + String key = mySensorDht.gkey(); + sCmd.addCommand(key.c_str(), dhtReading); + mySensorDht.SensorDhtInit(); + mySensorDht.clear(); +} + +void dhtReading() { + String key = sCmd.order(); + mySensorDht.SensorDhtRead(key); +} +//#endif \ No newline at end of file