mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-31 12:29:14 +03:00
SSDP added
This commit is contained in:
@@ -1 +1 @@
|
|||||||
analog-adc;id;anydata;Сенсоры;Аналоговый;order;pin-adc;map[1,100,1,100];c[0]
|
analog-adc;id;anydata;Сенсоры;Аналоговый;order;pin-adc;map[1,1024,1,1024];c[1]
|
||||||
@@ -1,7 +1,5 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
|
|
||||||
#include "Class/LineParsing.h"
|
#include "Class/LineParsing.h"
|
||||||
#include "Class/SensorConverting.h"
|
#include "Class/SensorConverting.h"
|
||||||
#include "Global.h"
|
#include "Global.h"
|
||||||
@@ -23,16 +21,14 @@ class SensorAnalog : public SensorConverting {
|
|||||||
pinInt = pinInt;
|
pinInt = pinInt;
|
||||||
value = analogRead(A0);
|
value = analogRead(A0);
|
||||||
#endif
|
#endif
|
||||||
//float valueFl = this->mapping(value);
|
|
||||||
// valueFl = this->correction(valueFl);
|
|
||||||
|
|
||||||
value = this->mapping(key, value);
|
value = this->mapping(key, value);
|
||||||
|
float valueFl = this->correction(key, value);
|
||||||
|
|
||||||
eventGen(key, "");
|
eventGen(key, "");
|
||||||
jsonWriteFloat(configLiveJson, key, value);
|
jsonWriteStr(configLiveJson, key, String(valueFl));
|
||||||
MqttClient::publishStatus(key, String(value));
|
MqttClient::publishStatus(key, String(valueFl));
|
||||||
|
|
||||||
Serial.println("[I] sensor '" + key + "' data: " + String(value));
|
Serial.println("[I] sensor '" + key + "' data: " + String(valueFl));
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -12,8 +12,6 @@ class SensorConverting : public LineParsing {
|
|||||||
int mapping(String key, int input) {
|
int mapping(String key, int input) {
|
||||||
String map_ = jsonReadStr(configOptionJson, key + "_map");
|
String map_ = jsonReadStr(configOptionJson, key + "_map");
|
||||||
if (map_ != "") {
|
if (map_ != "") {
|
||||||
map_.replace("map[", "");
|
|
||||||
map_.replace("]", "");
|
|
||||||
input = map(input,
|
input = map(input,
|
||||||
selectFromMarkerToMarker(map_, ",", 0).toInt(),
|
selectFromMarkerToMarker(map_, ",", 0).toInt(),
|
||||||
selectFromMarkerToMarker(map_, ",", 1).toInt(),
|
selectFromMarkerToMarker(map_, ",", 1).toInt(),
|
||||||
@@ -24,11 +22,11 @@ class SensorConverting : public LineParsing {
|
|||||||
}
|
}
|
||||||
|
|
||||||
float correction(String key, float input) {
|
float correction(String key, float input) {
|
||||||
_c.replace("c[", "");
|
String corr = jsonReadStr(configOptionJson, key + "_с");
|
||||||
_c.replace("]", "");
|
if (corr != "") {
|
||||||
float coef = _c.toFloat();
|
float coef = corr.toFloat();
|
||||||
input = input * coef;
|
input = input * coef;
|
||||||
|
}
|
||||||
return input;
|
return input;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
//extern SensorConverting* mySensorConverting;
|
|
||||||
@@ -24,6 +24,9 @@ extern void textOutSet();
|
|||||||
extern void analogAdc();
|
extern void analogAdc();
|
||||||
extern void analogReading();
|
extern void analogReading();
|
||||||
|
|
||||||
|
extern void ultrasonicCm();
|
||||||
|
extern void ultrasonicReading();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -38,6 +38,7 @@
|
|||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <ArduinoOTA.h>
|
#include <ArduinoOTA.h>
|
||||||
|
|
||||||
|
|
||||||
#ifdef WEBSOCKET_ENABLED
|
#ifdef WEBSOCKET_ENABLED
|
||||||
extern AsyncWebSocket ws;
|
extern AsyncWebSocket ws;
|
||||||
//extern AsyncEventSource events;
|
//extern AsyncEventSource events;
|
||||||
|
|||||||
5
include/SSDP.h
Normal file
5
include/SSDP.h
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
extern void SsdpInit();
|
||||||
|
extern String xmlNode(String tags, String data);
|
||||||
|
extern String decToHex(uint32_t decValue, byte desiredStringLength);
|
||||||
50
src/SSDP.cpp
Normal file
50
src/SSDP.cpp
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
#include <ESP8266SSDP.h>
|
||||||
|
#include <SSDP.h>
|
||||||
|
|
||||||
|
#include "Global.h"
|
||||||
|
|
||||||
|
void SsdpInit() {
|
||||||
|
server.on("/description.xml", HTTP_GET, [](AsyncWebServerRequest* request) {
|
||||||
|
String ssdpSend = "<root xmlns=\"urn:schemas-upnp-org:device-1-0\">";
|
||||||
|
String ssdpHeder = xmlNode("major", "1");
|
||||||
|
ssdpHeder += xmlNode("minor", "0");
|
||||||
|
ssdpHeder = xmlNode("specVersion", ssdpHeder);
|
||||||
|
ssdpHeder += xmlNode("URLBase", "http://" + WiFi.localIP().toString());
|
||||||
|
String ssdpDescription = xmlNode("deviceType", "upnp:rootdevice");
|
||||||
|
ssdpDescription += xmlNode("friendlyName", jsonReadStr(configSetupJson, "name"));
|
||||||
|
ssdpDescription += xmlNode("presentationURL", "/");
|
||||||
|
ssdpDescription += xmlNode("serialNumber", getChipId());
|
||||||
|
#ifdef ESP8266
|
||||||
|
ssdpDescription += xmlNode("modelName", "ESP8266");
|
||||||
|
#endif
|
||||||
|
#ifdef ESP32
|
||||||
|
ssdpDescription += xmlNode("modelName", "ESP32");
|
||||||
|
#endif
|
||||||
|
ssdpDescription += xmlNode("modelNumber", getChipId());
|
||||||
|
ssdpDescription += xmlNode("modelURL", "https://github.com/IoTManagerProject/IoTManager/wiki");
|
||||||
|
ssdpDescription += xmlNode("manufacturer", "Borisenko Dmitry");
|
||||||
|
ssdpDescription += xmlNode("manufacturerURL", "https://github.com/IoTManagerProject/IoTManager");
|
||||||
|
ssdpDescription += xmlNode("UDN", "uuid:38323636-4558-4dda-9188-cda0e6" + decToHex(ESP.getChipId(), 6));
|
||||||
|
ssdpDescription = xmlNode("device", ssdpDescription);
|
||||||
|
ssdpHeder += ssdpDescription;
|
||||||
|
ssdpSend += ssdpHeder;
|
||||||
|
ssdpSend += "</root>";
|
||||||
|
Serial.println("->!!!SSDP Get request received");
|
||||||
|
request->send(200, "text/xml", ssdpSend);
|
||||||
|
});
|
||||||
|
//Если версия 2.0.0 закаментируйте следующую строчку
|
||||||
|
SSDP.setDeviceType("upnp:rootdevice");
|
||||||
|
SSDP.setSchemaURL("description.xml");
|
||||||
|
SSDP.begin();
|
||||||
|
}
|
||||||
|
|
||||||
|
String xmlNode(String tags, String data) {
|
||||||
|
String temp = "<" + tags + ">" + data + "</" + tags + ">";
|
||||||
|
return temp;
|
||||||
|
}
|
||||||
|
|
||||||
|
String decToHex(uint32_t decValue, byte desiredStringLength) {
|
||||||
|
String hexString = String(decValue, HEX);
|
||||||
|
while (hexString.length() < desiredStringLength) hexString = "0" + hexString;
|
||||||
|
return hexString;
|
||||||
|
}
|
||||||
284
src/Sensors.cpp
284
src/Sensors.cpp
@@ -21,7 +21,7 @@ void bmp280T_reading();
|
|||||||
|
|
||||||
void sensorsInit() {
|
void sensorsInit() {
|
||||||
ts.add(
|
ts.add(
|
||||||
SENSORS, 10000, [&](void *) {
|
SENSORS, 15000, [&](void *) {
|
||||||
String buf = sensorReadingMap;
|
String buf = sensorReadingMap;
|
||||||
while (buf.length()) {
|
while (buf.length()) {
|
||||||
String tmp = selectToMarker(buf, ",");
|
String tmp = selectToMarker(buf, ",");
|
||||||
@@ -32,65 +32,10 @@ void sensorsInit() {
|
|||||||
nullptr, true);
|
nullptr, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// static int counter;
|
|
||||||
// counter++;
|
|
||||||
//
|
|
||||||
//#ifdef LEVEL_ENABLED
|
|
||||||
// if (sensors_reading_map[0] == 1)
|
|
||||||
// ultrasonic_reading();
|
|
||||||
//#endif
|
|
||||||
//
|
|
||||||
// if (counter > 10) {
|
|
||||||
// counter = 0;
|
|
||||||
//
|
|
||||||
//#ifdef ANALOG_ENABLED
|
|
||||||
// if (sensors_reading_map[1] == 1)
|
|
||||||
// //analog_reading1();
|
|
||||||
// if (sensors_reading_map[2] == 1)
|
|
||||||
// //analog_reading2();
|
|
||||||
//#endif
|
|
||||||
//
|
|
||||||
//#ifdef DALLAS_ENABLED
|
|
||||||
// if (sensors_reading_map[3] == 1)
|
|
||||||
// dallas_reading();
|
|
||||||
//#endif
|
|
||||||
//
|
|
||||||
//#ifdef DHT_ENABLED
|
|
||||||
// if (sensors_reading_map[4] == 1)
|
|
||||||
// dhtT_reading();
|
|
||||||
// if (sensors_reading_map[5] == 1)
|
|
||||||
// dhtH_reading();
|
|
||||||
// if (sensors_reading_map[6] == 1)
|
|
||||||
// dhtP_reading();
|
|
||||||
// if (sensors_reading_map[7] == 1)
|
|
||||||
// dhtC_reading();
|
|
||||||
// if (sensors_reading_map[8] == 1)
|
|
||||||
// dhtD_reading();
|
|
||||||
//#endif
|
|
||||||
//
|
|
||||||
//#ifdef BMP_ENABLED
|
|
||||||
// if (sensors_reading_map[9] == 1)
|
|
||||||
// bmp280T_reading();
|
|
||||||
// if (sensors_reading_map[10] == 1)
|
|
||||||
// bmp280P_reading();
|
|
||||||
//#endif
|
|
||||||
//
|
|
||||||
//#ifdef BME_ENABLED
|
|
||||||
// if (sensors_reading_map[11] == 1)
|
|
||||||
// bme280T_reading();
|
|
||||||
// if (sensors_reading_map[12] == 1)
|
|
||||||
// bme280P_reading();
|
|
||||||
// if (sensors_reading_map[13] == 1)
|
|
||||||
// bme280H_reading();
|
|
||||||
// if (sensors_reading_map[14] == 1)
|
|
||||||
// bme280A_reading();
|
|
||||||
//#endif
|
|
||||||
// }
|
|
||||||
|
|
||||||
//==============================================Модуль аналогового сенсора===========================================================================================
|
|
||||||
//analog-adc;id;anydata;Сенсоры;Аналоговый;order;pin[0];map[1,100,1,100];c[0]
|
|
||||||
//===================================================================================================================================================================
|
|
||||||
#ifdef ANALOG_ENABLED
|
#ifdef ANALOG_ENABLED
|
||||||
|
//==============================================Модуль аналогового сенсора===========================================================================================
|
||||||
|
//analog-adc;id;anydata;Сенсоры;Аналоговый;order;pin-adc;map[1,1024,1,100];c[1]
|
||||||
|
//===================================================================================================================================================================
|
||||||
void analogAdc() {
|
void analogAdc() {
|
||||||
mySensorAnalog = new SensorAnalog();
|
mySensorAnalog = new SensorAnalog();
|
||||||
mySensorAnalog->update();
|
mySensorAnalog->update();
|
||||||
@@ -100,162 +45,107 @@ void analogAdc() {
|
|||||||
sensorReadingMap += key + ",";
|
sensorReadingMap += key + ",";
|
||||||
jsonWriteStr(configOptionJson, key + "_pin", pin);
|
jsonWriteStr(configOptionJson, key + "_pin", pin);
|
||||||
jsonWriteStr(configOptionJson, key + "_map", mySensorAnalog->gmap());
|
jsonWriteStr(configOptionJson, key + "_map", mySensorAnalog->gmap());
|
||||||
|
jsonWriteStr(configOptionJson, key + "_с", mySensorAnalog->gc());
|
||||||
mySensorAnalog->clear();
|
mySensorAnalog->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void analogReading() {
|
void analogReading() {
|
||||||
String key = sCmd.order();
|
String key = sCmd.order();
|
||||||
String pin = jsonReadStr(configOptionJson, key + "_pin");
|
String pin = jsonReadStr(configOptionJson, key + "_pin");
|
||||||
|
|
||||||
mySensorAnalog->SensorAnalogRead(key, pin);
|
mySensorAnalog->SensorAnalogRead(key, pin);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
//analog adc 0 Аналоговый#вход,#% Датчики any-data 1 1023 1 100 1
|
#ifdef LEVEL_ENABLED
|
||||||
//void analog() {
|
//=========================================Модуль ультрозвукового дальномера==================================================================
|
||||||
|
//ultrasonic-cm;id;anydata;Сенсоры;Расстояние;order;pin;map[1,100,1,100];c[1]
|
||||||
|
//=========================================================================================================================================
|
||||||
|
void ultrasonicCm() {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void ultrasonicReading() {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void levelPr() {
|
||||||
// String value_name = sCmd.next();
|
// String value_name = sCmd.next();
|
||||||
// String pin = sCmd.next();
|
// String trig = sCmd.next();
|
||||||
|
// String echo = sCmd.next();
|
||||||
// String widget_name = sCmd.next();
|
// String widget_name = sCmd.next();
|
||||||
// String page_name = sCmd.next();
|
// String page_name = sCmd.next();
|
||||||
// String type = sCmd.next();
|
// String type = sCmd.next();
|
||||||
// String analog_start = sCmd.next();
|
// String empty_level = sCmd.next();
|
||||||
// String analog_end = sCmd.next();
|
// String full_level = sCmd.next();
|
||||||
// String analog_start_out = sCmd.next();
|
|
||||||
// String analog_end_out = sCmd.next();
|
|
||||||
// String page_number = sCmd.next();
|
// String page_number = sCmd.next();
|
||||||
// analog_value_names_list += value_name + ",";
|
// levelPr_value_name = value_name;
|
||||||
// enter_to_analog_counter++;
|
// jsonWriteStr(configOptionJson, "e_lev", empty_level);
|
||||||
// jsonWriteStr(configOptionJson, value_name + "_st", analog_start);
|
// jsonWriteStr(configOptionJson, "f_lev", full_level);
|
||||||
// jsonWriteStr(configOptionJson, value_name + "_end", analog_end);
|
// jsonWriteStr(configOptionJson, "trig", trig);
|
||||||
// jsonWriteStr(configOptionJson, value_name + "_st_out", analog_start_out);
|
// jsonWriteStr(configOptionJson, "echo", echo);
|
||||||
// jsonWriteStr(configOptionJson, value_name + "_end_out", analog_end_out);
|
// pinMode(trig.toInt(), OUTPUT);
|
||||||
|
// pinMode(echo.toInt(), INPUT);
|
||||||
// createWidgetByType(widget_name, page_name, page_number, type, value_name);
|
// createWidgetByType(widget_name, page_name, page_number, type, value_name);
|
||||||
// if (enter_to_analog_counter == 1) {
|
// sensors_reading_map[0] = 1;
|
||||||
// sensors_reading_map[1] = 1;
|
}
|
||||||
// }
|
////ultrasonicCm cm 14 12 Дистанция,#см Датчики fillgauge 1
|
||||||
// if (enter_to_analog_counter == 2) {
|
//void ultrasonicCm() {
|
||||||
// sensors_reading_map[2] = 1;
|
// String value_name = sCmd.next();
|
||||||
// }
|
// String trig = sCmd.next();
|
||||||
|
// String echo = sCmd.next();
|
||||||
|
// String widget_name = sCmd.next();
|
||||||
|
// String page_name = sCmd.next();
|
||||||
|
// String type = sCmd.next();
|
||||||
|
// String empty_level = sCmd.next();
|
||||||
|
// String full_level = sCmd.next();
|
||||||
|
// String page_number = sCmd.next();
|
||||||
|
// ultrasonicCm_value_name = value_name;
|
||||||
|
// jsonWriteStr(configOptionJson, "trig", trig);
|
||||||
|
// jsonWriteStr(configOptionJson, "echo", echo);
|
||||||
|
// pinMode(trig.toInt(), OUTPUT);
|
||||||
|
// pinMode(echo.toInt(), INPUT);
|
||||||
|
// createWidgetByType(widget_name, page_name, page_number, type, value_name);
|
||||||
|
// sensors_reading_map[0] = 1;
|
||||||
//}
|
//}
|
||||||
//
|
//
|
||||||
//void analog_reading1() {
|
|
||||||
// String value_name = selectFromMarkerToMarker(analog_value_names_list, ",", 0);
|
|
||||||
//#ifdef ESP32
|
|
||||||
// int analog_in = analogRead(34);
|
|
||||||
//#endif
|
|
||||||
//#ifdef ESP8266
|
|
||||||
// int analog_in = analogRead(A0);
|
|
||||||
//#endif
|
|
||||||
// int analog = map(analog_in,
|
|
||||||
// jsonReadInt(configOptionJson, value_name + "_st"),
|
|
||||||
// jsonReadInt(configOptionJson, value_name + "_end"),
|
|
||||||
// jsonReadInt(configOptionJson, value_name + "_st_out"),
|
|
||||||
// jsonReadInt(configOptionJson, value_name + "_end_out"));
|
|
||||||
// jsonWriteInt(configLiveJson, value_name, analog);
|
|
||||||
// eventGen(value_name, "");
|
|
||||||
// MqttClient::publishStatus(value_name, String(analog));
|
|
||||||
// Serial.println("[I] sensor '" + value_name + "' data: " + String(analog));
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//void analog_reading2() {
|
|
||||||
// String value_name = selectFromMarkerToMarker(analog_value_names_list, ",", 1);
|
|
||||||
//#ifdef ESP32
|
|
||||||
// int analog_in = analogRead(35);
|
|
||||||
//#endif
|
|
||||||
//#ifdef ESP8266
|
|
||||||
// int analog_in = analogRead(A0);
|
|
||||||
//#endif
|
|
||||||
// int analog = map(analog_in,
|
|
||||||
// jsonReadInt(configOptionJson, value_name + "_st"),
|
|
||||||
// jsonReadInt(configOptionJson, value_name + "_end"),
|
|
||||||
// jsonReadInt(configOptionJson, value_name + "_st_out"),
|
|
||||||
// jsonReadInt(configOptionJson, value_name + "_end_out"));
|
|
||||||
// jsonWriteInt(configLiveJson, value_name, analog);
|
|
||||||
// eventGen(value_name, "");
|
|
||||||
// MqttClient::publishStatus(value_name, String(analog));
|
|
||||||
// Serial.println("[I] sensor '" + value_name + "' data: " + String(analog));
|
|
||||||
//}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//=========================================================================================================================================
|
|
||||||
//=========================================Модуль измерения уровня в баке==================================================================
|
|
||||||
#ifdef LEVEL_ENABLED
|
|
||||||
//levelPr p 14 12 Вода#в#баке,#% Датчики fillgauge 125 20 1
|
|
||||||
void levelPr() {
|
|
||||||
String value_name = sCmd.next();
|
|
||||||
String trig = sCmd.next();
|
|
||||||
String echo = sCmd.next();
|
|
||||||
String widget_name = sCmd.next();
|
|
||||||
String page_name = sCmd.next();
|
|
||||||
String type = sCmd.next();
|
|
||||||
String empty_level = sCmd.next();
|
|
||||||
String full_level = sCmd.next();
|
|
||||||
String page_number = sCmd.next();
|
|
||||||
levelPr_value_name = value_name;
|
|
||||||
jsonWriteStr(configOptionJson, "e_lev", empty_level);
|
|
||||||
jsonWriteStr(configOptionJson, "f_lev", full_level);
|
|
||||||
jsonWriteStr(configOptionJson, "trig", trig);
|
|
||||||
jsonWriteStr(configOptionJson, "echo", echo);
|
|
||||||
pinMode(trig.toInt(), OUTPUT);
|
|
||||||
pinMode(echo.toInt(), INPUT);
|
|
||||||
createWidgetByType(widget_name, page_name, page_number, type, value_name);
|
|
||||||
sensors_reading_map[0] = 1;
|
|
||||||
}
|
|
||||||
//ultrasonicCm cm 14 12 Дистанция,#см Датчики fillgauge 1
|
|
||||||
void ultrasonicCm() {
|
|
||||||
String value_name = sCmd.next();
|
|
||||||
String trig = sCmd.next();
|
|
||||||
String echo = sCmd.next();
|
|
||||||
String widget_name = sCmd.next();
|
|
||||||
String page_name = sCmd.next();
|
|
||||||
String type = sCmd.next();
|
|
||||||
String empty_level = sCmd.next();
|
|
||||||
String full_level = sCmd.next();
|
|
||||||
String page_number = sCmd.next();
|
|
||||||
ultrasonicCm_value_name = value_name;
|
|
||||||
jsonWriteStr(configOptionJson, "trig", trig);
|
|
||||||
jsonWriteStr(configOptionJson, "echo", echo);
|
|
||||||
pinMode(trig.toInt(), OUTPUT);
|
|
||||||
pinMode(echo.toInt(), INPUT);
|
|
||||||
createWidgetByType(widget_name, page_name, page_number, type, value_name);
|
|
||||||
sensors_reading_map[0] = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ultrasonic_reading() {
|
void ultrasonic_reading() {
|
||||||
long duration_;
|
// long duration_;
|
||||||
int distance_cm;
|
// int distance_cm;
|
||||||
int level;
|
// int level;
|
||||||
static int counter;
|
// static int counter;
|
||||||
int trig = jsonReadInt(configOptionJson, "trig");
|
// int trig = jsonReadInt(configOptionJson, "trig");
|
||||||
int echo = jsonReadInt(configOptionJson, "echo");
|
// int echo = jsonReadInt(configOptionJson, "echo");
|
||||||
digitalWrite(trig, LOW);
|
// digitalWrite(trig, LOW);
|
||||||
delayMicroseconds(2);
|
// delayMicroseconds(2);
|
||||||
digitalWrite(trig, HIGH);
|
// digitalWrite(trig, HIGH);
|
||||||
delayMicroseconds(10);
|
// delayMicroseconds(10);
|
||||||
digitalWrite(trig, LOW);
|
// digitalWrite(trig, LOW);
|
||||||
duration_ = pulseIn(echo, HIGH, 30000); // 3000 µs = 50cm // 30000 µs = 5 m
|
// duration_ = pulseIn(echo, HIGH, 30000); // 3000 µs = 50cm // 30000 µs = 5 m
|
||||||
distance_cm = duration_ / 29 / 2;
|
// distance_cm = duration_ / 29 / 2;
|
||||||
distance_cm = medianFilter.filtered(distance_cm); //отсечение промахов медианным фильтром
|
// distance_cm = medianFilter.filtered(distance_cm); //отсечение промахов медианным фильтром
|
||||||
counter++;
|
// counter++;
|
||||||
if (counter > TANK_LEVEL_SAMPLES) {
|
// if (counter > TANK_LEVEL_SAMPLES) {
|
||||||
counter = 0;
|
// counter = 0;
|
||||||
level = map(distance_cm,
|
// level = map(distance_cm,
|
||||||
jsonReadInt(configOptionJson, "e_lev"),
|
// jsonReadInt(configOptionJson, "e_lev"),
|
||||||
jsonReadInt(configOptionJson, "f_lev"), 0, 100);
|
// jsonReadInt(configOptionJson, "f_lev"), 0, 100);
|
||||||
|
//
|
||||||
jsonWriteInt(configLiveJson, levelPr_value_name, level);
|
// jsonWriteInt(configLiveJson, levelPr_value_name, level);
|
||||||
eventGen(levelPr_value_name, "");
|
// eventGen(levelPr_value_name, "");
|
||||||
|
//
|
||||||
MqttClient::publishStatus(levelPr_value_name, String(level));
|
// MqttClient::publishStatus(levelPr_value_name, String(level));
|
||||||
|
//
|
||||||
Serial.println("[I] sensor '" + levelPr_value_name + "' data: " + String(level));
|
// Serial.println("[I] sensor '" + levelPr_value_name + "' data: " + String(level));
|
||||||
|
//
|
||||||
jsonWriteInt(configLiveJson, ultrasonicCm_value_name, distance_cm);
|
// jsonWriteInt(configLiveJson, ultrasonicCm_value_name, distance_cm);
|
||||||
eventGen(ultrasonicCm_value_name, "");
|
// eventGen(ultrasonicCm_value_name, "");
|
||||||
|
//
|
||||||
MqttClient::publishStatus(ultrasonicCm_value_name, String(distance_cm));
|
// MqttClient::publishStatus(ultrasonicCm_value_name, String(distance_cm));
|
||||||
|
//
|
||||||
Serial.println("[I] sensor '" + ultrasonicCm_value_name + "' data: " + String(distance_cm));
|
// Serial.println("[I] sensor '" + ultrasonicCm_value_name + "' data: " + String(distance_cm));
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
//=========================================================================================================================================
|
//=========================================================================================================================================
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
#include "Utils\WebUtils.h"
|
#include "Utils\WebUtils.h"
|
||||||
#include "Init.h"
|
#include "Init.h"
|
||||||
#include "Utils/Timings.h"
|
#include "Utils/Timings.h"
|
||||||
|
#include <SSDP.h>
|
||||||
|
|
||||||
void not_async_actions();
|
void not_async_actions();
|
||||||
|
|
||||||
@@ -70,6 +71,9 @@ void setup() {
|
|||||||
udpInit();
|
udpInit();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
pm.info("Ssdp Init");
|
||||||
|
SsdpInit();
|
||||||
|
|
||||||
ts.add(
|
ts.add(
|
||||||
TEST, 1000 * 60, [&](void*) {
|
TEST, 1000 * 60, [&](void*) {
|
||||||
pm.info(printMemoryStatus());
|
pm.info(printMemoryStatus());
|
||||||
|
|||||||
Reference in New Issue
Block a user