dht пока без коробки

This commit is contained in:
Dmitry Borisenko
2020-12-24 01:05:54 +01:00
parent 5c664594af
commit 5955743426
2 changed files with 42 additions and 55 deletions

View File

@@ -13,7 +13,6 @@ typedef std::vector<SensorDht> MySensorDhtVector;
struct params {
String type;
String value;
String key;
unsigned long interval;
unsigned int pin;
@@ -31,8 +30,9 @@ class SensorDht {
private:
params _paramsTmp;
params _paramsHum;
unsigned long currentMillis;
unsigned int interval;
unsigned long prevMillis;
unsigned long difference;
};

View File

@@ -18,91 +18,78 @@ SensorDht::SensorDht(const params& paramsTmp, const params& paramsHum) {
dht->setup(_paramsTmp.pin, DHTesp::DHT11);
//dht->getMinimumSamplingPeriod()
interval = _paramsTmp.interval < _paramsHum.interval ? _paramsTmp.interval : _paramsHum.interval;
interval = interval + dht->getMinimumSamplingPeriod();
}
SensorDht::~SensorDht() {}
void SensorDht::loop() {
//currentMillis = millis();
//difference = currentMillis - prevMillis;
//if (difference >= _myParams.interval) {
// prevMillis = millis();
// readTmpHum();
//}
difference = millis() - prevMillis;
if (difference >= interval) {
prevMillis = millis();
readTmpHum();
}
}
void SensorDht::readTmpHum() {
//float tmp;
//float hum;
//tmp = dht->getTemperature();
//hum = dht->getHumidity();
//
//if (String(tmp) != "nan" && String(hum) != "nan") {
// if (_myParams.type == "tmp") {
// }
//
// if (_myParams.type == "hum") {
// }
//
// tmp = tmp * _tmpSet.c;
// hum = hum * _humSet.c;
//
// if (_tmpSet.interval > 0) {
// eventGen2(_tmpSet.key, String(tmp));
// jsonWriteStr(configLiveJson, _tmpSet.key, String(tmp));
// publishStatus(_tmpSet.key, String(tmp));
// SerialPrint("I", "Sensor", "'" + _tmpSet.key + "' data: " + String(tmp));
// }
//
// if (_humSet.interval > 0) {
// eventGen2(_humSet.key, String(hum));
// jsonWriteStr(configLiveJson, _humSet.key, String(hum));
// publishStatus(_humSet.key, String(hum));
// SerialPrint("I", "Sensor", "'" + _humSet.key + "' data: " + String(hum));
// }
//
//} else {
// SerialPrint("E", "Sensor DHT", "Error");
//}
}
float tmp;
float hum;
//if (dht->getStatus() != 0 && counter < 5) {
// counter++;
// SerialPrint("E", "Sensor", "Disconnected " + String(counter) + " " + dht->getStatusString());
//} else {
tmp = dht->getTemperature();
hum = dht->getHumidity();
if (String(tmp) != "nan" && String(hum) != "nan") {
tmp = tmp * _paramsTmp.c;
hum = hum * _paramsHum.c;
eventGen2(_paramsTmp.key, String(tmp));
jsonWriteStr(configLiveJson, _paramsTmp.key, String(tmp));
publishStatus(_paramsTmp.key, String(tmp));
SerialPrint("I", "Sensor", "'" + _paramsTmp.key + "' data: " + String(tmp));
eventGen2(_paramsHum.key, String(hum));
jsonWriteStr(configLiveJson, _paramsHum.key, String(hum));
publishStatus(_paramsHum.key, String(hum));
SerialPrint("I", "Sensor", "'" + _paramsHum.key + "' data: " + String(hum));
} else {
SerialPrint("E", "Sensor DHT", "Error");
}
}
MySensorDhtVector* mySensorDht = nullptr;
void dhtSensor() {
myLineParsing.update();
String type = myLineParsing.gtype();
String value = myLineParsing.gval();
String interval = myLineParsing.gint();
String pin = myLineParsing.gpin();
String key = myLineParsing.gkey();
String c = myLineParsing.gc();
myLineParsing.clear();
static int enterCnt = -1;
enterCnt++;
static params paramsTmp;
static params paramsHum;
if (value = "tmp") {
if (enterCnt == 0) {
paramsTmp.type = type;
paramsTmp.value = value;
paramsTmp.key = key;
paramsTmp.interval = interval.toInt() * 1000;
paramsTmp.pin = pin.toInt();
paramsTmp.c = c.toFloat();
}
if (value = "hum") {
if (enterCnt == 1) {
paramsHum.type = type;
paramsHum.value = value;
paramsHum.key = key;
paramsHum.interval = interval.toInt() * 1000;
paramsHum.pin = pin.toInt();
paramsHum.c = c.toFloat();
}
dht_EnterCounter++;
if (dht_EnterCounter == 2) {
static bool firstTime = true;
if (firstTime) mySensorDht = new MySensorDhtVector();
firstTime = false;