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 { struct params {
String type; String type;
String value;
String key; String key;
unsigned long interval; unsigned long interval;
unsigned int pin; unsigned int pin;
@@ -32,7 +31,8 @@ class SensorDht {
params _paramsTmp; params _paramsTmp;
params _paramsHum; params _paramsHum;
unsigned long currentMillis; unsigned int interval;
unsigned long prevMillis; unsigned long prevMillis;
unsigned long difference; unsigned long difference;
}; };

View File

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