Files
IoTManager/src/modules/Sht20.cpp

53 lines
1.1 KiB
C++
Raw Normal View History

2022-02-01 14:48:52 +03:00
#include "Global.h"
#include "Classes/IoTItem.h"
2022-02-01 14:48:52 +03:00
#include "Wire.h"
#include "SHT2x.h"
SHT2x* sht = nullptr;
class Sht20t : public IoTItem {
2022-02-01 14:48:52 +03:00
public:
Sht20t(String parameters): IoTItem(parameters) { }
2022-02-01 14:48:52 +03:00
void doByInterval() {
sht->read();
float value = sht->getTemperature();
if (value > -46.85F) regEvent(value, "Sht20t");
else SerialPrint("E", "Sensor Sht20t", "Error");
2022-02-01 14:48:52 +03:00
}
~Sht20t();
};
class Sht20h : public IoTItem {
2022-02-01 14:48:52 +03:00
public:
Sht20h(String parameters): IoTItem(parameters) { }
2022-02-01 14:48:52 +03:00
void doByInterval() {
sht->read();
2022-02-01 14:48:52 +03:00
float value = sht->getHumidity();
if (value != -6) regEvent(value, "Sht20h");
else SerialPrint("E", "Sensor Sht20h", "Error");
}
2022-02-01 14:48:52 +03:00
~Sht20h();
};
void* getAPI_Sht20(String subtype, String param) {
if (!sht) {
sht = new SHT2x;
if (sht) sht->begin();
}
if (subtype == F("Sht20t")) {
return new Sht20t(param);
} else if (subtype == F("Sht20h")) {
return new Sht20h(param);
} else {
return nullptr;
}
}