mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
45 lines
1.4 KiB
C
45 lines
1.4 KiB
C
|
|
#pragma once
|
|||
|
|
#include <Arduino.h>
|
|||
|
|
#include "Class/LineParsing.h"
|
|||
|
|
#include "Global.h"
|
|||
|
|
#include "items/SensorConvertingClass.h"
|
|||
|
|
|
|||
|
|
class SensorDallasClass : public SensorConvertingClass {
|
|||
|
|
public:
|
|||
|
|
SensorDallasClass() : SensorConvertingClass(){};
|
|||
|
|
|
|||
|
|
void SensorDallasInit() {
|
|||
|
|
oneWire = new OneWire((uint8_t)_pin.toInt());
|
|||
|
|
sensors.setOneWire(oneWire);
|
|||
|
|
sensors.begin();
|
|||
|
|
sensors.setResolution(48);
|
|||
|
|
|
|||
|
|
sensorReadingMap += _key + ",";
|
|||
|
|
dallasEnterCounter++;
|
|||
|
|
|
|||
|
|
jsonWriteInt(configOptionJson, _key + "_num", dallasEnterCounter);
|
|||
|
|
jsonWriteStr(configOptionJson, _key + "_map", _map);
|
|||
|
|
jsonWriteStr(configOptionJson, _key + "_с", _c);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void SensorDallasRead(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 SensorDallasClass mySensorDallas;
|