Add DHT sensor

This commit is contained in:
Dmitry Borisenko
2020-09-04 15:35:35 +03:00
parent 26b5c173a2
commit a258c8c1b6
23 changed files with 402 additions and 311 deletions

View File

@@ -20,6 +20,7 @@ class LineParsing {
String _inv;
String _state;
String _db;
String _type;
public:
LineParsing() :
@@ -35,7 +36,8 @@ class LineParsing {
_c{""},
_inv{""},
_state{""},
_db{""}
_db{""},
_type{""}
{};
@@ -71,6 +73,9 @@ class LineParsing {
if (arg.indexOf("c[") != -1) {
_c = extractInner(arg);
}
if (arg.indexOf("type[") != -1) {
_type = extractInner(arg);
}
}
}
@@ -113,6 +118,9 @@ class LineParsing {
String gc() {
return _c;
}
String gtype() {
return _type;
}
void clear() {
_key = "";
@@ -127,6 +135,7 @@ class LineParsing {
_inv = "";
_state = "";
_db = "";
_type = "";
}
String extractInnerDigit(String str) {

View File

@@ -32,15 +32,15 @@ extern void bme280P_reading();
extern void bme280H_reading();
extern void bme280A_reading();
extern void dhtT();
extern void dhtH();
extern void dhtP();
extern void dhtC();
extern void dhtD();
extern void dhtH_reading();
extern void dhtP_reading();
extern void dhtC_reading();
extern void dhtD_reading();
//extern void dhtT();
//extern void dhtH();
//extern void dhtP();
//extern void dhtC();
//extern void dhtD();
//extern void dhtH_reading();
//extern void dhtP_reading();
//extern void dhtC_reading();
//extern void dhtD_reading();
extern void handle_time_init();
extern void stepper();

View File

@@ -30,7 +30,7 @@
//#define WEBSOCKET_ENABLED
//#define LAYOUT_IN_RAM
//#define UDP_ENABLED
//#define SSDP
#define SSDP
/*
* Sensor

View File

@@ -1,43 +1,75 @@
#pragma once
#include <Arduino.h>
#include "Class/LineParsing.h"
#include "Global.h"
#include "items/SensorConvertingClass.h"
DHTesp dht;
class SensorDhtClass : public SensorConvertingClass {
public:
SensorDhtClass() : SensorConvertingClass(){};
void SensorDhtInit() {
//oneWire = new OneWire((uint8_t)_pin.toInt());
//sensors.setOneWire(oneWire);
//sensors.begin();
//sensors.setResolution(48);
if (_type == "dht11") {
dht.setup(_pin.toInt(), DHTesp::DHT11);
}
if (_type == "dht22") {
dht.setup(_pin.toInt(), DHTesp::DHT22);
}
sensorReadingMap += _key + ",";
//dhtEnterCounter++;
//to do если надо будет читать несколько dht
//dhtEnterCounter++;
//jsonWriteInt(configOptionJson, _key + "_num", dhtEnterCounter);
jsonWriteStr(configOptionJson, _key + "_map", _map);
jsonWriteStr(configOptionJson, _key + "_с", _c);
}
void SensorDhtRead(String key) {
void SensorDhtReadTemp(String key) {
//to do если надо будет читать несколько dht
//int cnt = jsonReadInt(configOptionJson, key + "_num");
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);
static int counter;
if (dht.getStatus() != 0 && counter < 5) {
counter++;
//return;
} else {
counter = 0;
value = dht.getTemperature();
if (String(value) != "nan") {
//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));
} else {
Serial.println("[E] sensor '" + key);
}
}
}
void SensorDhtReadHum(String key) {
//to do если надо будет читать несколько dht
//int cnt = jsonReadInt(configOptionJson, key + "_num");
float value;
static int counter;
if (dht.getStatus() != 0 && counter < 5) {
counter++;
//return;
} else {
counter = 0;
value = dht.getHumidity();
if (String(value) != "nan") {
//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));
} else {
Serial.println("[E] sensor '" + key);
}
}
}

View File

@@ -25,4 +25,9 @@ extern void ultrasonicCm();
extern void ultrasonicReading();
extern void dallasTemp();
extern void dallasReading();
extern void dallasReading();
extern void dhtTemp();
extern void dhtReadingTemp();
extern void dhtHum();
extern void dhtReadingHum();