mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
dht пока без коробки
This commit is contained in:
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user