mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
some changes
This commit is contained in:
30
Cmd.ino
30
Cmd.ino
@@ -133,7 +133,7 @@ void buttonSet() {
|
|||||||
|
|
||||||
String button_number = sCmd.next();
|
String button_number = sCmd.next();
|
||||||
String button_state = sCmd.next();
|
String button_state = sCmd.next();
|
||||||
String button_param = jsonRead(optionJson, "button_param" + button_number);
|
String button_param = jsonReadStr(optionJson, "button_param" + button_number);
|
||||||
|
|
||||||
if (button_param != "na" || button_param != "scenario" || button_param.indexOf("line") != -1) {
|
if (button_param != "na" || button_param != "scenario" || button_param.indexOf("line") != -1) {
|
||||||
digitalWrite(button_param.toInt(), button_state.toInt());
|
digitalWrite(button_param.toInt(), button_state.toInt());
|
||||||
@@ -167,7 +167,7 @@ void buttonSet() {
|
|||||||
|
|
||||||
void buttonChange() {
|
void buttonChange() {
|
||||||
String button_number = sCmd.next();
|
String button_number = sCmd.next();
|
||||||
String current_state = jsonRead(configJson, "button" + button_number);
|
String current_state = jsonReadStr(configJson, "button" + button_number);
|
||||||
if (current_state == "1") {
|
if (current_state == "1") {
|
||||||
current_state = "0";
|
current_state = "0";
|
||||||
} else if (current_state == "0") {
|
} else if (current_state == "0") {
|
||||||
@@ -220,7 +220,7 @@ void pwmSet() {
|
|||||||
String pwm_state = sCmd.next();
|
String pwm_state = sCmd.next();
|
||||||
int pwm_state_int = pwm_state.toInt();
|
int pwm_state_int = pwm_state.toInt();
|
||||||
|
|
||||||
int pin = jsonReadtoInt(optionJson, "pwm_pin" + pwm_number);
|
int pin = jsonReadInt(optionJson, "pwm_pin" + pwm_number);
|
||||||
analogWrite(pin, pwm_state_int);
|
analogWrite(pin, pwm_state_int);
|
||||||
|
|
||||||
eventGen ("pwm", pwm_number);
|
eventGen ("pwm", pwm_number);
|
||||||
@@ -367,18 +367,18 @@ void stepperSet() {
|
|||||||
String steps = sCmd.next();
|
String steps = sCmd.next();
|
||||||
jsonWriteStr(optionJson, "steps" + stepper_number, steps);
|
jsonWriteStr(optionJson, "steps" + stepper_number, steps);
|
||||||
String stepper_speed = sCmd.next();
|
String stepper_speed = sCmd.next();
|
||||||
String pin_step = selectToMarker (jsonRead(optionJson, "stepper" + stepper_number), " ");
|
String pin_step = selectToMarker (jsonReadStr(optionJson, "stepper" + stepper_number), " ");
|
||||||
String pin_dir = deleteBeforeDelimiter (jsonRead(optionJson, "stepper" + stepper_number), " ");
|
String pin_dir = deleteBeforeDelimiter (jsonReadStr(optionJson, "stepper" + stepper_number), " ");
|
||||||
Serial.println(pin_step);
|
Serial.println(pin_step);
|
||||||
Serial.println(pin_dir);
|
Serial.println(pin_dir);
|
||||||
if (steps.toInt() > 0) digitalWrite(pin_dir.toInt(), HIGH);
|
if (steps.toInt() > 0) digitalWrite(pin_dir.toInt(), HIGH);
|
||||||
if (steps.toInt() < 0) digitalWrite(pin_dir.toInt(), LOW);
|
if (steps.toInt() < 0) digitalWrite(pin_dir.toInt(), LOW);
|
||||||
if (stepper_number == "1") {
|
if (stepper_number == "1") {
|
||||||
ts.add(STEPPER1, stepper_speed.toInt(), [&](void*) {
|
ts.add(STEPPER1, stepper_speed.toInt(), [&](void*) {
|
||||||
int steps_int = abs(jsonReadtoInt(optionJson, "steps1") * 2);
|
int steps_int = abs(jsonReadInt(optionJson, "steps1") * 2);
|
||||||
static int count;
|
static int count;
|
||||||
count++;
|
count++;
|
||||||
String pin_step = selectToMarker (jsonRead(optionJson, "stepper1"), " ");
|
String pin_step = selectToMarker (jsonReadStr(optionJson, "stepper1"), " ");
|
||||||
digitalWrite(pin_step.toInt(), !digitalRead(pin_step.toInt()));
|
digitalWrite(pin_step.toInt(), !digitalRead(pin_step.toInt()));
|
||||||
yield();
|
yield();
|
||||||
if (count > steps_int) {
|
if (count > steps_int) {
|
||||||
@@ -390,10 +390,10 @@ void stepperSet() {
|
|||||||
}
|
}
|
||||||
if (stepper_number == "2") {
|
if (stepper_number == "2") {
|
||||||
ts.add(STEPPER2, stepper_speed.toInt(), [&](void*) {
|
ts.add(STEPPER2, stepper_speed.toInt(), [&](void*) {
|
||||||
int steps_int = abs(jsonReadtoInt(optionJson, "steps2") * 2);
|
int steps_int = abs(jsonReadInt(optionJson, "steps2") * 2);
|
||||||
static int count;
|
static int count;
|
||||||
count++;
|
count++;
|
||||||
String pin_step = selectToMarker (jsonRead(optionJson, "stepper2"), " ");
|
String pin_step = selectToMarker (jsonReadStr(optionJson, "stepper2"), " ");
|
||||||
digitalWrite(pin_step.toInt(), !digitalRead(pin_step.toInt()));
|
digitalWrite(pin_step.toInt(), !digitalRead(pin_step.toInt()));
|
||||||
yield();
|
yield();
|
||||||
if (count > steps_int) {
|
if (count > steps_int) {
|
||||||
@@ -465,13 +465,13 @@ void servoSet() {
|
|||||||
String servo_state = sCmd.next();
|
String servo_state = sCmd.next();
|
||||||
int servo_state_int = servo_state.toInt();
|
int servo_state_int = servo_state.toInt();
|
||||||
|
|
||||||
int pin = jsonReadtoInt(optionJson, "servo_pin" + servo_number);
|
int pin = jsonReadInt(optionJson, "servo_pin" + servo_number);
|
||||||
|
|
||||||
servo_state_int = map(servo_state_int,
|
servo_state_int = map(servo_state_int,
|
||||||
jsonReadtoInt(optionJson, "s_min_val" + servo_number),
|
jsonReadInt(optionJson, "s_min_val" + servo_number),
|
||||||
jsonReadtoInt(optionJson, "s_max_val" + servo_number),
|
jsonReadInt(optionJson, "s_max_val" + servo_number),
|
||||||
jsonReadtoInt(optionJson, "s_min_deg" + servo_number),
|
jsonReadInt(optionJson, "s_min_deg" + servo_number),
|
||||||
jsonReadtoInt(optionJson, "s_max_deg" + servo_number));
|
jsonReadInt(optionJson, "s_max_deg" + servo_number));
|
||||||
|
|
||||||
if (servo_number == "1") {
|
if (servo_number == "1") {
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
@@ -523,7 +523,7 @@ void mqttOrderSend() {
|
|||||||
String id = sCmd.next();
|
String id = sCmd.next();
|
||||||
String order = sCmd.next();
|
String order = sCmd.next();
|
||||||
|
|
||||||
String all_line = jsonRead(configSetup, "mqttPrefix") + "/" + id + "/order";
|
String all_line = jsonReadStr(configSetup, "mqttPrefix") + "/" + id + "/order";
|
||||||
//Serial.print(all_line);
|
//Serial.print(all_line);
|
||||||
//Serial.print("->");
|
//Serial.print("->");
|
||||||
//Serial.println(order);
|
//Serial.println(order);
|
||||||
|
|||||||
6
FS.ino
6
FS.ino
@@ -9,8 +9,8 @@ void File_system_init() {
|
|||||||
configSetup.replace(" ", "");
|
configSetup.replace(" ", "");
|
||||||
configSetup.replace("\r\n", "");
|
configSetup.replace("\r\n", "");
|
||||||
Serial.println(configSetup);
|
Serial.println(configSetup);
|
||||||
jsonWriteStr(configJson, "name", jsonRead(configSetup, "name"));
|
jsonWriteStr(configJson, "name", jsonReadStr(configSetup, "name"));
|
||||||
jsonWriteStr(configJson, "lang", jsonRead(configSetup, "lang"));
|
jsonWriteStr(configJson, "lang", jsonReadStr(configSetup, "lang"));
|
||||||
|
|
||||||
|
|
||||||
#ifdef ESP32
|
#ifdef ESP32
|
||||||
@@ -27,7 +27,7 @@ void File_system_init() {
|
|||||||
|
|
||||||
jsonWriteStr(configSetup, "firmware_version", firmware_version);
|
jsonWriteStr(configSetup, "firmware_version", firmware_version);
|
||||||
|
|
||||||
prex = jsonRead(configSetup, "mqttPrefix") + "/" + chipID;
|
prex = jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID;
|
||||||
Serial.println(chipID);
|
Serial.println(chipID);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
4
Init.ino
4
Init.ino
@@ -86,7 +86,7 @@ void Device_init() {
|
|||||||
//-------------------------------сценарии-----------------------------------------------------
|
//-------------------------------сценарии-----------------------------------------------------
|
||||||
|
|
||||||
void Scenario_init() {
|
void Scenario_init() {
|
||||||
if (jsonRead(configSetup, "scenario") == "1") {
|
if (jsonReadStr(configSetup, "scenario") == "1") {
|
||||||
scenario = readFile("firmware.s.txt", 2048);
|
scenario = readFile("firmware.s.txt", 2048);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -238,7 +238,7 @@ void statistics() {
|
|||||||
#endif
|
#endif
|
||||||
urls += "&";
|
urls += "&";
|
||||||
//-----------------------------------------------------------------
|
//-----------------------------------------------------------------
|
||||||
urls += "ver: " + firmware_version; // + " " + DATE_COMPILING + " " + TIME_COMPILING;
|
urls += "ver: " + firmware_version;
|
||||||
//-----------------------------------------------------------------
|
//-----------------------------------------------------------------
|
||||||
String stat = getURL(urls);
|
String stat = getURL(urls);
|
||||||
//Serial.println(stat);
|
//Serial.println(stat);
|
||||||
|
|||||||
10
Logging.ino
10
Logging.ino
@@ -16,35 +16,35 @@ void logging() {
|
|||||||
if (enter_to_logging_counter == LOG1) {
|
if (enter_to_logging_counter == LOG1) {
|
||||||
ts.add(LOG1, period_min.toInt() * 1000 * 60, [&](void*) {
|
ts.add(LOG1, period_min.toInt() * 1000 * 60, [&](void*) {
|
||||||
String tmp_buf_1 = selectFromMarkerToMarker(logging_value_names_list, ",", 0);
|
String tmp_buf_1 = selectFromMarkerToMarker(logging_value_names_list, ",", 0);
|
||||||
deleteOldDate("log." + tmp_buf_1 + ".txt", jsonReadtoInt(optionJson, tmp_buf_1 + "_c"), jsonRead(configJson, tmp_buf_1));
|
deleteOldDate("log." + tmp_buf_1 + ".txt", jsonReadInt(optionJson, tmp_buf_1 + "_c"), jsonReadStr(configJson, tmp_buf_1));
|
||||||
Serial.println("[i] LOGGING for sensor '" + tmp_buf_1 + "' done");
|
Serial.println("[i] LOGGING for sensor '" + tmp_buf_1 + "' done");
|
||||||
}, nullptr, false);
|
}, nullptr, false);
|
||||||
}
|
}
|
||||||
if (enter_to_logging_counter == LOG2) {
|
if (enter_to_logging_counter == LOG2) {
|
||||||
ts.add(LOG2, period_min.toInt() * 1000 * 60, [&](void*) {
|
ts.add(LOG2, period_min.toInt() * 1000 * 60, [&](void*) {
|
||||||
String tmp_buf_2 = selectFromMarkerToMarker(logging_value_names_list, ",", 1);
|
String tmp_buf_2 = selectFromMarkerToMarker(logging_value_names_list, ",", 1);
|
||||||
deleteOldDate("log." + tmp_buf_2 + ".txt", jsonReadtoInt(optionJson, tmp_buf_2 + "_c"), jsonRead(configJson, tmp_buf_2));
|
deleteOldDate("log." + tmp_buf_2 + ".txt", jsonReadInt(optionJson, tmp_buf_2 + "_c"), jsonReadStr(configJson, tmp_buf_2));
|
||||||
Serial.println("[i] LOGGING for sensor '" + tmp_buf_2 + "' done");
|
Serial.println("[i] LOGGING for sensor '" + tmp_buf_2 + "' done");
|
||||||
}, nullptr, false);
|
}, nullptr, false);
|
||||||
}
|
}
|
||||||
if (enter_to_logging_counter == LOG3) {
|
if (enter_to_logging_counter == LOG3) {
|
||||||
ts.add(LOG3, period_min.toInt() * 1000 * 60, [&](void*) {
|
ts.add(LOG3, period_min.toInt() * 1000 * 60, [&](void*) {
|
||||||
String tmp_buf_3 = selectFromMarkerToMarker(logging_value_names_list, ",", 2);
|
String tmp_buf_3 = selectFromMarkerToMarker(logging_value_names_list, ",", 2);
|
||||||
deleteOldDate("log." + tmp_buf_3 + ".txt", jsonReadtoInt(optionJson, tmp_buf_3 + "_c"), jsonRead(configJson, tmp_buf_3));
|
deleteOldDate("log." + tmp_buf_3 + ".txt", jsonReadInt(optionJson, tmp_buf_3 + "_c"), jsonReadStr(configJson, tmp_buf_3));
|
||||||
Serial.println("[i] LOGGING for sensor '" + tmp_buf_3 + "' done");
|
Serial.println("[i] LOGGING for sensor '" + tmp_buf_3 + "' done");
|
||||||
}, nullptr, false);
|
}, nullptr, false);
|
||||||
}
|
}
|
||||||
if (enter_to_logging_counter == LOG4) {
|
if (enter_to_logging_counter == LOG4) {
|
||||||
ts.add(LOG4, period_min.toInt() * 1000 * 60, [&](void*) {
|
ts.add(LOG4, period_min.toInt() * 1000 * 60, [&](void*) {
|
||||||
String tmp_buf_4 = selectFromMarkerToMarker(logging_value_names_list, ",", 3);
|
String tmp_buf_4 = selectFromMarkerToMarker(logging_value_names_list, ",", 3);
|
||||||
deleteOldDate("log." + tmp_buf_4 + ".txt", jsonReadtoInt(optionJson, tmp_buf_4 + "_c"), jsonRead(configJson, tmp_buf_4));
|
deleteOldDate("log." + tmp_buf_4 + ".txt", jsonReadInt(optionJson, tmp_buf_4 + "_c"), jsonReadStr(configJson, tmp_buf_4));
|
||||||
Serial.println("[i] LOGGING for sensor '" + tmp_buf_4 + "' done");
|
Serial.println("[i] LOGGING for sensor '" + tmp_buf_4 + "' done");
|
||||||
}, nullptr, false);
|
}, nullptr, false);
|
||||||
}
|
}
|
||||||
if (enter_to_logging_counter == LOG5) {
|
if (enter_to_logging_counter == LOG5) {
|
||||||
ts.add(LOG5, period_min.toInt() * 1000 * 60, [&](void*) {
|
ts.add(LOG5, period_min.toInt() * 1000 * 60, [&](void*) {
|
||||||
String tmp_buf_5 = selectFromMarkerToMarker(logging_value_names_list, ",", 4);
|
String tmp_buf_5 = selectFromMarkerToMarker(logging_value_names_list, ",", 4);
|
||||||
deleteOldDate("log." + tmp_buf_5 + ".txt", jsonReadtoInt(optionJson, tmp_buf_5 + "_c"), jsonRead(configJson, tmp_buf_5));
|
deleteOldDate("log." + tmp_buf_5 + ".txt", jsonReadInt(optionJson, tmp_buf_5 + "_c"), jsonReadStr(configJson, tmp_buf_5));
|
||||||
Serial.println("[i] LOGGING for sensor '" + tmp_buf_5 + "' done");
|
Serial.println("[i] LOGGING for sensor '" + tmp_buf_5 + "' done");
|
||||||
}, nullptr, false);
|
}, nullptr, false);
|
||||||
}
|
}
|
||||||
|
|||||||
28
Scenario.ino
28
Scenario.ino
@@ -1,7 +1,7 @@
|
|||||||
void handleScenario() {
|
void handleScenario() {
|
||||||
|
|
||||||
if (jsonRead(configSetup, "scenario") == "1") {
|
if (jsonReadStr(configSetup, "scenario") == "1") {
|
||||||
if ((jsonRead(optionJson, "scenario_status") != "")) {
|
if ((jsonReadStr(optionJson, "scenario_status") != "")) {
|
||||||
int i = 0;
|
int i = 0;
|
||||||
String str = scenario; //читаем переменную с сценариями (то что из файла на странице)
|
String str = scenario; //читаем переменную с сценариями (то что из файла на странице)
|
||||||
str += "\n";
|
str += "\n";
|
||||||
@@ -17,7 +17,7 @@ void handleScenario() {
|
|||||||
//Serial.println(i);
|
//Serial.println(i);
|
||||||
String condition = selectToMarker (tmp, "\n"); //выделяем первую строку самого сценария button1 = 1 (условие)
|
String condition = selectToMarker (tmp, "\n"); //выделяем первую строку самого сценария button1 = 1 (условие)
|
||||||
String param_name = selectFromMarkerToMarker(condition, " " , 0);
|
String param_name = selectFromMarkerToMarker(condition, " " , 0);
|
||||||
String order = jsonRead(optionJson, "scenario_status"); //читаем весь файл событий
|
String order = jsonReadStr(optionJson, "scenario_status"); //читаем весь файл событий
|
||||||
String param = selectToMarker (order, ","); //читаем первое событие из файла событий
|
String param = selectToMarker (order, ","); //читаем первое событие из файла событий
|
||||||
if (param_name == param) { //если поступившее событие равно событию заданному buttonSet1 в файле начинаем его обработку
|
if (param_name == param) { //если поступившее событие равно событию заданному buttonSet1 в файле начинаем его обработку
|
||||||
|
|
||||||
@@ -25,30 +25,30 @@ void handleScenario() {
|
|||||||
String value = selectFromMarkerToMarker(condition, " " , 2); //читаем значение (1)
|
String value = selectFromMarkerToMarker(condition, " " , 2); //читаем значение (1)
|
||||||
if (value.indexOf("digit") != -1) {
|
if (value.indexOf("digit") != -1) {
|
||||||
// value = add_set(value);
|
// value = add_set(value);
|
||||||
value = jsonRead(configJson, value);
|
value = jsonReadStr(configJson, value);
|
||||||
}
|
}
|
||||||
if (value.indexOf("time") != -1) {
|
if (value.indexOf("time") != -1) {
|
||||||
// value = add_set(value);
|
// value = add_set(value);
|
||||||
value = jsonRead(configJson, value);
|
value = jsonReadStr(configJson, value);
|
||||||
}
|
}
|
||||||
boolean flag = false; //если одно из значений совпало то только тогда начинаем выполнять комнады
|
boolean flag = false; //если одно из значений совпало то только тогда начинаем выполнять комнады
|
||||||
if (sign == "=") {
|
if (sign == "=") {
|
||||||
if (jsonRead(configJson, param_name) == value) flag = true;
|
if (jsonReadStr(configJson, param_name) == value) flag = true;
|
||||||
}
|
}
|
||||||
if (sign == "!=") {
|
if (sign == "!=") {
|
||||||
if (jsonRead(configJson, param_name) != value) flag = true;
|
if (jsonReadStr(configJson, param_name) != value) flag = true;
|
||||||
}
|
}
|
||||||
if (sign == "<") {
|
if (sign == "<") {
|
||||||
if (jsonRead(configJson, param_name).toInt() < value.toInt()) flag = true;
|
if (jsonReadStr(configJson, param_name).toInt() < value.toInt()) flag = true;
|
||||||
}
|
}
|
||||||
if (sign == ">") {
|
if (sign == ">") {
|
||||||
if (jsonRead(configJson, param_name).toInt() > value.toInt()) flag = true;
|
if (jsonReadStr(configJson, param_name).toInt() > value.toInt()) flag = true;
|
||||||
}
|
}
|
||||||
if (sign == ">=") {
|
if (sign == ">=") {
|
||||||
if (jsonRead(configJson, param_name).toInt() >= value.toInt()) flag = true;
|
if (jsonReadStr(configJson, param_name).toInt() >= value.toInt()) flag = true;
|
||||||
}
|
}
|
||||||
if (sign == "<=") {
|
if (sign == "<=") {
|
||||||
if (jsonRead(configJson, param_name).toInt() <= value.toInt()) flag = true;
|
if (jsonReadStr(configJson, param_name).toInt() <= value.toInt()) flag = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flag) {
|
if (flag) {
|
||||||
@@ -63,7 +63,7 @@ void handleScenario() {
|
|||||||
str = deleteBeforeDelimiter(str, "end\n"); //удаляем первый сценарий
|
str = deleteBeforeDelimiter(str, "end\n"); //удаляем первый сценарий
|
||||||
//-----------------------------------------------------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------------------------------------------------
|
||||||
}
|
}
|
||||||
String tmp2 = jsonRead(optionJson, "scenario_status"); //читаем файл событий
|
String tmp2 = jsonReadStr(optionJson, "scenario_status"); //читаем файл событий
|
||||||
tmp2 = deleteBeforeDelimiter(tmp2, ","); //удаляем выполненное событие
|
tmp2 = deleteBeforeDelimiter(tmp2, ","); //удаляем выполненное событие
|
||||||
jsonWriteStr(optionJson, "scenario_status", tmp2); //записываем обновленный файл событий
|
jsonWriteStr(optionJson, "scenario_status", tmp2); //записываем обновленный файл событий
|
||||||
i = 0;
|
i = 0;
|
||||||
@@ -73,8 +73,8 @@ void handleScenario() {
|
|||||||
|
|
||||||
void eventGen (String event_name, String number) { //событие выглядит как имя плюс set плюс номер: button+Set+1
|
void eventGen (String event_name, String number) { //событие выглядит как имя плюс set плюс номер: button+Set+1
|
||||||
|
|
||||||
if (jsonRead(configSetup, "scenario") == "1") {
|
if (jsonReadStr(configSetup, "scenario") == "1") {
|
||||||
String tmp = jsonRead(optionJson, "scenario_status") ; //генерирование события
|
String tmp = jsonReadStr(optionJson, "scenario_status") ; //генерирование события
|
||||||
//Serial.println(event_name);
|
//Serial.println(event_name);
|
||||||
jsonWriteStr(optionJson, "scenario_status", tmp + event_name + number + ",");
|
jsonWriteStr(optionJson, "scenario_status", tmp + event_name + number + ",");
|
||||||
}
|
}
|
||||||
|
|||||||
30
Sensors.ino
30
Sensors.ino
@@ -72,8 +72,8 @@ void level_reading() {
|
|||||||
int distance_cm;
|
int distance_cm;
|
||||||
int level;
|
int level;
|
||||||
static int counter;
|
static int counter;
|
||||||
int trig = jsonReadtoInt(optionJson, "trig");
|
int trig = jsonReadInt(optionJson, "trig");
|
||||||
int echo = jsonReadtoInt(optionJson, "echo");
|
int echo = jsonReadInt(optionJson, "echo");
|
||||||
digitalWrite(trig, LOW);
|
digitalWrite(trig, LOW);
|
||||||
delayMicroseconds(2);
|
delayMicroseconds(2);
|
||||||
digitalWrite(trig, HIGH);
|
digitalWrite(trig, HIGH);
|
||||||
@@ -86,8 +86,8 @@ void level_reading() {
|
|||||||
if (counter > tank_level_times_to_send) {
|
if (counter > tank_level_times_to_send) {
|
||||||
counter = 0;
|
counter = 0;
|
||||||
level = map(distance_cm,
|
level = map(distance_cm,
|
||||||
jsonReadtoInt(optionJson, "e_lev"),
|
jsonReadInt(optionJson, "e_lev"),
|
||||||
jsonReadtoInt(optionJson, "f_lev"), 0, 100);
|
jsonReadInt(optionJson, "f_lev"), 0, 100);
|
||||||
jsonWriteInt(configJson, level_value_name, level);
|
jsonWriteInt(configJson, level_value_name, level);
|
||||||
eventGen (level_value_name, "");
|
eventGen (level_value_name, "");
|
||||||
sendSTATUS(level_value_name, String(level));
|
sendSTATUS(level_value_name, String(level));
|
||||||
@@ -134,10 +134,10 @@ void analog_reading1() {
|
|||||||
int analog_in = analogRead(A0);
|
int analog_in = analogRead(A0);
|
||||||
#endif
|
#endif
|
||||||
int analog = map(analog_in,
|
int analog = map(analog_in,
|
||||||
jsonReadtoInt(optionJson, value_name + "_st") ,
|
jsonReadInt(optionJson, value_name + "_st") ,
|
||||||
jsonReadtoInt(optionJson, value_name + "_end"),
|
jsonReadInt(optionJson, value_name + "_end"),
|
||||||
jsonReadtoInt(optionJson, value_name + "_st_out"),
|
jsonReadInt(optionJson, value_name + "_st_out"),
|
||||||
jsonReadtoInt(optionJson, value_name + "_end_out"));
|
jsonReadInt(optionJson, value_name + "_end_out"));
|
||||||
jsonWriteInt(configJson, value_name, analog);
|
jsonWriteInt(configJson, value_name, analog);
|
||||||
eventGen (value_name, "");
|
eventGen (value_name, "");
|
||||||
sendSTATUS(value_name, String(analog));
|
sendSTATUS(value_name, String(analog));
|
||||||
@@ -153,10 +153,10 @@ void analog_reading2() {
|
|||||||
int analog_in = analogRead(A0);
|
int analog_in = analogRead(A0);
|
||||||
#endif
|
#endif
|
||||||
int analog = map(analog_in,
|
int analog = map(analog_in,
|
||||||
jsonReadtoInt(optionJson, value_name + "_st") ,
|
jsonReadInt(optionJson, value_name + "_st") ,
|
||||||
jsonReadtoInt(optionJson, value_name + "_end"),
|
jsonReadInt(optionJson, value_name + "_end"),
|
||||||
jsonReadtoInt(optionJson, value_name + "_st_out"),
|
jsonReadInt(optionJson, value_name + "_st_out"),
|
||||||
jsonReadtoInt(optionJson, value_name + "_end_out"));
|
jsonReadInt(optionJson, value_name + "_end_out"));
|
||||||
jsonWriteInt(configJson, value_name, analog);
|
jsonWriteInt(configJson, value_name, analog);
|
||||||
eventGen (value_name, "");
|
eventGen (value_name, "");
|
||||||
sendSTATUS(value_name, String(analog));
|
sendSTATUS(value_name, String(analog));
|
||||||
@@ -285,7 +285,7 @@ void dhtP_reading() {
|
|||||||
if (dht.getStatus() != 0) {
|
if (dht.getStatus() != 0) {
|
||||||
sendSTATUS("dhtPerception", String(dht.getStatusString()));
|
sendSTATUS("dhtPerception", String(dht.getStatusString()));
|
||||||
} else {
|
} else {
|
||||||
value = dht.computePerception(jsonRead(configJson, dhtT_value_name).toFloat(), jsonRead(configJson, dhtH_value_name).toFloat(), false);
|
value = dht.computePerception(jsonReadStr(configJson, dhtT_value_name).toFloat(), jsonReadStr(configJson, dhtH_value_name).toFloat(), false);
|
||||||
String final_line = perception(value);
|
String final_line = perception(value);
|
||||||
jsonWriteStr(configJson, "dhtPerception", final_line);
|
jsonWriteStr(configJson, "dhtPerception", final_line);
|
||||||
eventGen ("dhtPerception", "");
|
eventGen ("dhtPerception", "");
|
||||||
@@ -322,7 +322,7 @@ void dhtC_reading() {
|
|||||||
if (dht.getStatus() != 0) {
|
if (dht.getStatus() != 0) {
|
||||||
sendSTATUS("dhtComfort", String(dht.getStatusString()));
|
sendSTATUS("dhtComfort", String(dht.getStatusString()));
|
||||||
} else {
|
} else {
|
||||||
value = dht.getComfortRatio(cf, jsonRead(configJson, dhtT_value_name).toFloat(), jsonRead(configJson, dhtH_value_name).toFloat(), false);
|
value = dht.getComfortRatio(cf, jsonReadStr(configJson, dhtT_value_name).toFloat(), jsonReadStr(configJson, dhtH_value_name).toFloat(), false);
|
||||||
String final_line = get_comfort_status(cf);
|
String final_line = get_comfort_status(cf);
|
||||||
jsonWriteStr(configJson, "dhtComfort", final_line);
|
jsonWriteStr(configJson, "dhtComfort", final_line);
|
||||||
eventGen ("dhtComfort", "");
|
eventGen ("dhtComfort", "");
|
||||||
@@ -383,7 +383,7 @@ void dhtD_reading() {
|
|||||||
if (dht.getStatus() != 0) {
|
if (dht.getStatus() != 0) {
|
||||||
sendSTATUS("dhtDewpoint", String(dht.getStatusString()));
|
sendSTATUS("dhtDewpoint", String(dht.getStatusString()));
|
||||||
} else {
|
} else {
|
||||||
value = dht.computeDewPoint(jsonRead(configJson, dhtT_value_name).toFloat(), jsonRead(configJson, dhtH_value_name).toFloat(), false);
|
value = dht.computeDewPoint(jsonReadStr(configJson, dhtT_value_name).toFloat(), jsonReadStr(configJson, dhtH_value_name).toFloat(), false);
|
||||||
jsonWriteInt(configJson, "dhtDewpoint", value);
|
jsonWriteInt(configJson, "dhtDewpoint", value);
|
||||||
eventGen ("dhtDewpoint", "");
|
eventGen ("dhtDewpoint", "");
|
||||||
sendSTATUS("dhtDewpoint", String(value));
|
sendSTATUS("dhtDewpoint", String(value));
|
||||||
|
|||||||
8
Time.ino
8
Time.ino
@@ -25,7 +25,7 @@ void time_check() {
|
|||||||
|
|
||||||
void reconfigTime() {
|
void reconfigTime() {
|
||||||
if (WiFi.status() == WL_CONNECTED) {
|
if (WiFi.status() == WL_CONNECTED) {
|
||||||
String ntp = jsonRead(configSetup, "ntp");
|
String ntp = jsonReadStr(configSetup, "ntp");
|
||||||
configTime(0, 0, ntp.c_str());
|
configTime(0, 0, ntp.c_str());
|
||||||
int i = 0;
|
int i = 0;
|
||||||
Serial.println("[i] Awaiting for time ");
|
Serial.println("[i] Awaiting for time ");
|
||||||
@@ -69,7 +69,7 @@ String GetTimeUnix() {
|
|||||||
// Получение текущего времени
|
// Получение текущего времени
|
||||||
String GetTime() {
|
String GetTime() {
|
||||||
time_t now = time(nullptr); // получаем время с помощью библиотеки time.h
|
time_t now = time(nullptr); // получаем время с помощью библиотеки time.h
|
||||||
int zone = 3600 * jsonRead(configSetup, "timezone").toInt();
|
int zone = 3600 * jsonReadStr(configSetup, "timezone").toInt();
|
||||||
now = now + zone;
|
now = now + zone;
|
||||||
String Time = ""; // Строка для результатов времени
|
String Time = ""; // Строка для результатов времени
|
||||||
Time += ctime(&now); // Преобразуем время в строку формата Thu Jan 19 00:55:35 2017
|
Time += ctime(&now); // Преобразуем время в строку формата Thu Jan 19 00:55:35 2017
|
||||||
@@ -80,7 +80,7 @@ String GetTime() {
|
|||||||
|
|
||||||
String GetTimeWOsec() {
|
String GetTimeWOsec() {
|
||||||
time_t now = time(nullptr); // получаем время с помощью библиотеки time.h
|
time_t now = time(nullptr); // получаем время с помощью библиотеки time.h
|
||||||
int zone = 3600 * jsonRead(configSetup, "timezone").toInt();
|
int zone = 3600 * jsonReadStr(configSetup, "timezone").toInt();
|
||||||
now = now + zone;
|
now = now + zone;
|
||||||
String Time = ""; // Строка для результатов времени
|
String Time = ""; // Строка для результатов времени
|
||||||
Time += ctime(&now); // Преобразуем время в строку формата Thu Jan 19 00:55:35 2017
|
Time += ctime(&now); // Преобразуем время в строку формата Thu Jan 19 00:55:35 2017
|
||||||
@@ -92,7 +92,7 @@ String GetTimeWOsec() {
|
|||||||
// Получение даты
|
// Получение даты
|
||||||
String GetDate() {
|
String GetDate() {
|
||||||
time_t now = time(nullptr); // получаем время с помощью библиотеки time.h
|
time_t now = time(nullptr); // получаем время с помощью библиотеки time.h
|
||||||
int zone = 3600 * jsonRead(configSetup, "timezone").toInt();
|
int zone = 3600 * jsonReadStr(configSetup, "timezone").toInt();
|
||||||
now = now + zone;
|
now = now + zone;
|
||||||
String Data = ""; // Строка для результатов времени
|
String Data = ""; // Строка для результатов времени
|
||||||
Data += ctime(&now); // Преобразуем время в строку формата Thu Jan 19 00:55:35 2017
|
Data += ctime(&now); // Преобразуем время в строку формата Thu Jan 19 00:55:35 2017
|
||||||
|
|||||||
10
Timers.ino
10
Timers.ino
@@ -4,7 +4,7 @@ void Timer_countdown_init() {
|
|||||||
|
|
||||||
ts.add(TIMER_COUNTDOWN, 1000, [&](void*) {
|
ts.add(TIMER_COUNTDOWN, 1000, [&](void*) {
|
||||||
|
|
||||||
String old_line = jsonRead(optionJson, "timers");
|
String old_line = jsonReadStr(optionJson, "timers");
|
||||||
if (old_line != "") {
|
if (old_line != "") {
|
||||||
//Serial.println(old_line);
|
//Serial.println(old_line);
|
||||||
int i = 0;
|
int i = 0;
|
||||||
@@ -35,7 +35,7 @@ void timerStart() {
|
|||||||
String type = sCmd.next();
|
String type = sCmd.next();
|
||||||
if (period_of_time.indexOf("digit") != -1) {
|
if (period_of_time.indexOf("digit") != -1) {
|
||||||
//period_of_time = add_set(period_of_time);
|
//period_of_time = add_set(period_of_time);
|
||||||
period_of_time = jsonRead(configJson, period_of_time);
|
period_of_time = jsonReadStr(configJson, period_of_time);
|
||||||
}
|
}
|
||||||
if (type == "sec") period_of_time = period_of_time;
|
if (type == "sec") period_of_time = period_of_time;
|
||||||
if (type == "min") period_of_time = String(period_of_time.toInt() * 60);
|
if (type == "min") period_of_time = String(period_of_time.toInt() * 60);
|
||||||
@@ -44,7 +44,7 @@ void timerStart() {
|
|||||||
jsonWriteStr(configJson, "timer" + number, "1");
|
jsonWriteStr(configJson, "timer" + number, "1");
|
||||||
}
|
}
|
||||||
void addTimer(String number, String time) {
|
void addTimer(String number, String time) {
|
||||||
String tmp = jsonRead(optionJson, "timers"); //1:60,2:120,
|
String tmp = jsonReadStr(optionJson, "timers"); //1:60,2:120,
|
||||||
String new_timer = number + ":" + time;
|
String new_timer = number + ":" + time;
|
||||||
int psn1 = tmp.indexOf(number + ":"); //0 ищем позицию таймера который надо заменить
|
int psn1 = tmp.indexOf(number + ":"); //0 ищем позицию таймера который надо заменить
|
||||||
if (psn1 != -1) { //если он есть
|
if (psn1 != -1) { //если он есть
|
||||||
@@ -66,7 +66,7 @@ void timerStop() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void delTimer (String number) {
|
void delTimer (String number) {
|
||||||
String tmp = jsonRead(optionJson, "timers"); //1:60,2:120,
|
String tmp = jsonReadStr(optionJson, "timers"); //1:60,2:120,
|
||||||
int psn1 = tmp.indexOf(number + ":"); //0 ищем позицию таймера который надо удалить
|
int psn1 = tmp.indexOf(number + ":"); //0 ищем позицию таймера который надо удалить
|
||||||
if (psn1 != -1) { //если он есть
|
if (psn1 != -1) { //если он есть
|
||||||
int psn2 = tmp.indexOf(",", psn1); //4 от этой позиции находим позицию запятой
|
int psn2 = tmp.indexOf(",", psn1); //4 от этой позиции находим позицию запятой
|
||||||
@@ -77,7 +77,7 @@ void delTimer (String number) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int readTimer(int number) {
|
int readTimer(int number) {
|
||||||
String tmp = jsonRead(optionJson, "timers"); //1:60,2:120,
|
String tmp = jsonReadStr(optionJson, "timers"); //1:60,2:120,
|
||||||
int psn1 = tmp.indexOf(String(number) + ":"); //0 ищем позицию таймера который надо прочитать
|
int psn1 = tmp.indexOf(String(number) + ":"); //0 ищем позицию таймера который надо прочитать
|
||||||
String timer;
|
String timer;
|
||||||
if (psn1 != -1) { //если он есть
|
if (psn1 != -1) { //если он есть
|
||||||
|
|||||||
@@ -1,22 +1,19 @@
|
|||||||
void Web_server_init() {
|
void Web_server_init() {
|
||||||
|
/*********************************************************************************
|
||||||
//========================================OTA============================================
|
***************************************OTA****************************************
|
||||||
|
*********************************************************************************/
|
||||||
#ifdef OTA_enable
|
#ifdef OTA_enable
|
||||||
//Send OTA events to the browser
|
|
||||||
ArduinoOTA.onStart([]() {
|
ArduinoOTA.onStart([]() {
|
||||||
events.send("Update Start", "ota");
|
events.send("Update Start", "ota");
|
||||||
});
|
});
|
||||||
|
|
||||||
ArduinoOTA.onEnd([]() {
|
ArduinoOTA.onEnd([]() {
|
||||||
events.send("Update End", "ota");
|
events.send("Update End", "ota");
|
||||||
});
|
});
|
||||||
|
|
||||||
ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
|
ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
|
||||||
char p[32];
|
char p[32];
|
||||||
sprintf(p, "Progress: %u%%\n", (progress / (total / 100)));
|
sprintf(p, "Progress: %u%%\n", (progress / (total / 100)));
|
||||||
events.send(p, "ota");
|
events.send(p, "ota");
|
||||||
});
|
});
|
||||||
|
|
||||||
ArduinoOTA.onError([](ota_error_t error) {
|
ArduinoOTA.onError([](ota_error_t error) {
|
||||||
if (error == OTA_AUTH_ERROR) events.send("Auth Failed", "ota");
|
if (error == OTA_AUTH_ERROR) events.send("Auth Failed", "ota");
|
||||||
else if (error == OTA_BEGIN_ERROR) events.send("Begin Failed", "ota");
|
else if (error == OTA_BEGIN_ERROR) events.send("Begin Failed", "ota");
|
||||||
@@ -25,17 +22,18 @@ void Web_server_init() {
|
|||||||
else if (error == OTA_END_ERROR) events.send("End Failed", "ota");
|
else if (error == OTA_END_ERROR) events.send("End Failed", "ota");
|
||||||
});
|
});
|
||||||
ArduinoOTA.setHostname(hostName);
|
ArduinoOTA.setHostname(hostName);
|
||||||
|
|
||||||
ArduinoOTA.begin();
|
ArduinoOTA.begin();
|
||||||
#endif
|
#endif
|
||||||
//========================================MDNS============================================
|
/*********************************************************************************
|
||||||
|
**************************************MDNS****************************************
|
||||||
|
*********************************************************************************/
|
||||||
#ifdef MDNS_enable
|
#ifdef MDNS_enable
|
||||||
MDNS.addService("http", "tcp", 80);
|
MDNS.addService("http", "tcp", 80);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//SPIFFS.begin();
|
//SPIFFS.begin();
|
||||||
|
/*********************************************************************************
|
||||||
//========================================WS============================================
|
**************************************WS******************************************
|
||||||
|
*********************************************************************************/
|
||||||
#ifdef WS_enable
|
#ifdef WS_enable
|
||||||
ws.onEvent(onWsEvent);
|
ws.onEvent(onWsEvent);
|
||||||
server.addHandler(&ws);
|
server.addHandler(&ws);
|
||||||
@@ -46,26 +44,25 @@ void Web_server_init() {
|
|||||||
|
|
||||||
server.addHandler(&events);
|
server.addHandler(&events);
|
||||||
#endif
|
#endif
|
||||||
//======================================================================================
|
/*********************************************************************************
|
||||||
|
**************************************WEB****************************************
|
||||||
|
*********************************************************************************/
|
||||||
#ifdef ESP32
|
#ifdef ESP32
|
||||||
server.addHandler(new SPIFFSEditor(SPIFFS, jsonRead(configSetup, "web_login").c_str(), jsonRead(configSetup, "web_pass").c_str()));
|
server.addHandler(new SPIFFSEditor(SPIFFS, jsonReadStr(configSetup, "web_login").c_str(), jsonReadStr(configSetup, "web_pass").c_str()));
|
||||||
#elif defined(ESP8266)
|
#elif defined(ESP8266)
|
||||||
server.addHandler(new SPIFFSEditor(jsonRead(configSetup, "web_login").c_str(), jsonRead(configSetup, "web_pass").c_str()));
|
server.addHandler(new SPIFFSEditor(jsonReadStr(configSetup, "web_login").c_str(), jsonReadStr(configSetup, "web_pass").c_str()));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
server.on("/heap", HTTP_GET, [](AsyncWebServerRequest * request) {
|
/* server.on("/heap", HTTP_GET, [](AsyncWebServerRequest * request) {
|
||||||
request->send(200, "text/plain", String(ESP.getFreeHeap()));
|
request->send(200, "text/plain", String(ESP.getFreeHeap()));
|
||||||
});
|
});*/
|
||||||
|
|
||||||
|
|
||||||
server.serveStatic("/css/", SPIFFS, "/css/").setCacheControl("max-age=31536000");
|
server.serveStatic("/css/", SPIFFS, "/css/").setCacheControl("max-age=31536000");
|
||||||
server.serveStatic("/js/", SPIFFS, "/js/").setCacheControl("max-age=31536000");
|
server.serveStatic("/js/", SPIFFS, "/js/").setCacheControl("max-age=31536000");
|
||||||
server.serveStatic("/", SPIFFS, "/favicon.ico").setCacheControl("max-age=31536000");
|
server.serveStatic("/favicon.ico", SPIFFS, "/favicon.ico").setCacheControl("max-age=31536000");
|
||||||
|
|
||||||
server.serveStatic("/", SPIFFS, "/").setDefaultFile("index.htm")
|
server.serveStatic("/", SPIFFS, "/").setDefaultFile("index.htm")
|
||||||
.setAuthentication(jsonRead(configSetup, "web_login").c_str(), jsonRead(configSetup, "web_pass").c_str());
|
.setAuthentication(jsonReadStr(configSetup, "web_login").c_str(), jsonReadStr(configSetup, "web_pass").c_str());
|
||||||
|
|
||||||
|
|
||||||
server.onNotFound([](AsyncWebServerRequest * request) {
|
server.onNotFound([](AsyncWebServerRequest * request) {
|
||||||
Serial.printf("NOT_FOUND: ");
|
Serial.printf("NOT_FOUND: ");
|
||||||
@@ -113,7 +110,8 @@ void Web_server_init() {
|
|||||||
|
|
||||||
request->send(404);
|
request->send(404);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
server.onFileUpload([](AsyncWebServerRequest * request, const String & filename, size_t index, uint8_t *data, size_t len, bool final) {
|
server.onFileUpload([](AsyncWebServerRequest * request, const String & filename, size_t index, uint8_t *data, size_t len, bool final) {
|
||||||
if (!index)
|
if (!index)
|
||||||
Serial.printf("UploadStart: %s\n", filename.c_str());
|
Serial.printf("UploadStart: %s\n", filename.c_str());
|
||||||
@@ -121,7 +119,8 @@ void Web_server_init() {
|
|||||||
if (final)
|
if (final)
|
||||||
Serial.printf("UploadEnd: %s (%u)\n", filename.c_str(), index + len);
|
Serial.printf("UploadEnd: %s (%u)\n", filename.c_str(), index + len);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
server.onRequestBody([](AsyncWebServerRequest * request, uint8_t *data, size_t len, size_t index, size_t total) {
|
server.onRequestBody([](AsyncWebServerRequest * request, uint8_t *data, size_t len, size_t index, size_t total) {
|
||||||
if (!index)
|
if (!index)
|
||||||
Serial.printf("BodyStart: %u\n", total);
|
Serial.printf("BodyStart: %u\n", total);
|
||||||
@@ -132,8 +131,6 @@ void Web_server_init() {
|
|||||||
|
|
||||||
server.begin();
|
server.begin();
|
||||||
|
|
||||||
//=============================Устанавливаем реакции на запросы к серверу============================
|
|
||||||
|
|
||||||
// --------------------Выдаем данные configJson //config.live.json - динамические данные
|
// --------------------Выдаем данные configJson //config.live.json - динамические данные
|
||||||
server.on("/config.live.json", HTTP_GET, [](AsyncWebServerRequest * request) {
|
server.on("/config.live.json", HTTP_GET, [](AsyncWebServerRequest * request) {
|
||||||
request->send(200, "application/json", configJson);
|
request->send(200, "application/json", configJson);
|
||||||
@@ -148,14 +145,17 @@ void Web_server_init() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// ------------------Выполнение команды из запроса
|
// ------------------Выполнение команды из запроса
|
||||||
server.on("/cmd", HTTP_GET, [](AsyncWebServerRequest * request) { //http://192.168.88.45/cmd?command=rel%201%201
|
//http://192.168.88.45/cmd?command=rel%201%201
|
||||||
|
server.on("/cmd", HTTP_GET, [](AsyncWebServerRequest * request) {
|
||||||
String com = request->getParam("command")->value();
|
String com = request->getParam("command")->value();
|
||||||
Serial.println(com);
|
Serial.println(com);
|
||||||
order_loop += com + ",";
|
order_loop += com + ",";
|
||||||
request->send(200, "text/text", "OK"); // отправляем ответ о выполнении
|
request->send(200, "text/text", "OK"); // отправляем ответ о выполнении
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
//========================================WS=========================================================================================
|
/*********************************************************************************************************************************
|
||||||
|
*********************************************************WS**********************************************************************
|
||||||
|
********************************************************************************************************************************/
|
||||||
#ifdef WS_enable
|
#ifdef WS_enable
|
||||||
void onWsEvent(AsyncWebSocket * server, AsyncWebSocketClient * client, AwsEventType type, void * arg, uint8_t *data, size_t len) {
|
void onWsEvent(AsyncWebSocket * server, AsyncWebSocketClient * client, AwsEventType type, void * arg, uint8_t *data, size_t len) {
|
||||||
if (type == WS_EVT_CONNECT) {
|
if (type == WS_EVT_CONNECT) {
|
||||||
|
|||||||
14
WiFi.ino
14
WiFi.ino
@@ -52,8 +52,8 @@ void ROUTER_Connecting() {
|
|||||||
WiFi.mode(WIFI_STA);
|
WiFi.mode(WIFI_STA);
|
||||||
|
|
||||||
byte tries = 20;
|
byte tries = 20;
|
||||||
String _ssid = jsonRead(configSetup, "ssid");
|
String _ssid = jsonReadStr(configSetup, "ssid");
|
||||||
String _password = jsonRead(configSetup, "password");
|
String _password = jsonReadStr(configSetup, "password");
|
||||||
//WiFi.persistent(false);
|
//WiFi.persistent(false);
|
||||||
|
|
||||||
if (_ssid == "" && _password == "") {
|
if (_ssid == "" && _password == "") {
|
||||||
@@ -108,8 +108,8 @@ bool StartAPMode() {
|
|||||||
|
|
||||||
WiFi.mode(WIFI_AP);
|
WiFi.mode(WIFI_AP);
|
||||||
|
|
||||||
String _ssidAP = jsonRead(configSetup, "ssidAP");
|
String _ssidAP = jsonReadStr(configSetup, "ssidAP");
|
||||||
String _passwordAP = jsonRead(configSetup, "passwordAP");
|
String _passwordAP = jsonReadStr(configSetup, "passwordAP");
|
||||||
WiFi.softAP(_ssidAP.c_str(), _passwordAP.c_str());
|
WiFi.softAP(_ssidAP.c_str(), _passwordAP.c_str());
|
||||||
IPAddress myIP = WiFi.softAPIP();
|
IPAddress myIP = WiFi.softAPIP();
|
||||||
led_blink("on");
|
led_blink("on");
|
||||||
@@ -117,10 +117,10 @@ bool StartAPMode() {
|
|||||||
Serial.println(myIP);
|
Serial.println(myIP);
|
||||||
jsonWriteStr(configJson, "ip", myIP.toString());
|
jsonWriteStr(configJson, "ip", myIP.toString());
|
||||||
|
|
||||||
if (jsonReadtoInt(optionJson, "pass_status") != 1) {
|
if (jsonReadInt(optionJson, "pass_status") != 1) {
|
||||||
ts.add(ROUTER_SEARCHING, 10 * 1000, [&](void*) {
|
ts.add(ROUTER_SEARCHING, 10 * 1000, [&](void*) {
|
||||||
Serial.println("->try find router");
|
Serial.println("->try find router");
|
||||||
if (RouterFind(jsonRead(configSetup, "ssid"))) {
|
if (RouterFind(jsonReadStr(configSetup, "ssid"))) {
|
||||||
ts.remove(ROUTER_SEARCHING);
|
ts.remove(ROUTER_SEARCHING);
|
||||||
WiFi.scanDelete();
|
WiFi.scanDelete();
|
||||||
ROUTER_Connecting();
|
ROUTER_Connecting();
|
||||||
@@ -186,7 +186,7 @@ boolean RouterFind(String ssid) {
|
|||||||
data["pass"] = (WiFi.encryptionType(i) == ENC_TYPE_NONE) ? "" : "*";
|
data["pass"] = (WiFi.encryptionType(i) == ENC_TYPE_NONE) ? "" : "*";
|
||||||
int8_t dbm = WiFi.RSSI(i);
|
int8_t dbm = WiFi.RSSI(i);
|
||||||
data["dbm"] = dbm;
|
data["dbm"] = dbm;
|
||||||
if (ssidMy == jsonRead(configSetup, "ssid")) {
|
if (ssidMy == jsonReadStr(configSetup, "ssid")) {
|
||||||
jsonWriteStr(configJson, "dbm", dbm);
|
jsonWriteStr(configJson, "dbm", dbm);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,72 +0,0 @@
|
|||||||
/*
|
|
||||||
const char* local_root_ca1 = \
|
|
||||||
"-----BEGIN CERTIFICATE-----\n" \
|
|
||||||
"MIIFdDCCBFygAwIBAgIQJ2buVutJ846r13Ci/ITeIjANBgkqhkiG9w0BAQwFADBv\n" \
|
|
||||||
"MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk\n" \
|
|
||||||
"ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF\n" \
|
|
||||||
"eHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFow\n" \
|
|
||||||
"gYUxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO\n" \
|
|
||||||
"BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMSswKQYD\n" \
|
|
||||||
"VQQDEyJDT01PRE8gUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkq\n" \
|
|
||||||
"hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkehUktIKVrGsDSTdxc9EZ3SZKzejfSNw\n" \
|
|
||||||
"AHG8U9/E+ioSj0t/EFa9n3Byt2F/yUsPF6c947AEYe7/EZfH9IY+Cvo+XPmT5jR6\n" \
|
|
||||||
"2RRr55yzhaCCenavcZDX7P0N+pxs+t+wgvQUfvm+xKYvT3+Zf7X8Z0NyvQwA1onr\n" \
|
|
||||||
"ayzT7Y+YHBSrfuXjbvzYqOSSJNpDa2K4Vf3qwbxstovzDo2a5JtsaZn4eEgwRdWt\n" \
|
|
||||||
"4Q08RWD8MpZRJ7xnw8outmvqRsfHIKCxH2XeSAi6pE6p8oNGN4Tr6MyBSENnTnIq\n" \
|
|
||||||
"m1y9TBsoilwie7SrmNnu4FGDwwlGTm0+mfqVF9p8M1dBPI1R7Qu2XK8sYxrfV8g/\n" \
|
|
||||||
"vOldxJuvRZnio1oktLqpVj3Pb6r/SVi+8Kj/9Lit6Tf7urj0Czr56ENCHonYhMsT\n" \
|
|
||||||
"8dm74YlguIwoVqwUHZwK53Hrzw7dPamWoUi9PPevtQ0iTMARgexWO/bTouJbt7IE\n" \
|
|
||||||
"IlKVgJNp6I5MZfGRAy1wdALqi2cVKWlSArvX31BqVUa/oKMoYX9w0MOiqiwhqkfO\n" \
|
|
||||||
"KJwGRXa/ghgntNWutMtQ5mv0TIZxMOmm3xaG4Nj/QN370EKIf6MzOi5cHkERgWPO\n" \
|
|
||||||
"GHFrK+ymircxXDpqR+DDeVnWIBqv8mqYqnK8V0rSS527EPywTEHl7R09XiidnMy/\n" \
|
|
||||||
"s1Hap0flhFMCAwEAAaOB9DCB8TAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTvA73g\n" \
|
|
||||||
"JMtUGjAdBgNVHQ4EFgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQD\n" \
|
|
||||||
"AgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1UdHwQ9\n" \
|
|
||||||
"MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4dGVy\n" \
|
|
||||||
"bmFsQ0FSb290LmNybDA1BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0dHA6\n" \
|
|
||||||
"Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEMBQADggEBAGS/g/FfmoXQ\n" \
|
|
||||||
"zbihKVcN6Fr30ek+8nYEbvFScLsePP9NDXRqzIGCJdPDoCpdTPW6i6FtxFQJdcfj\n" \
|
|
||||||
"Jw5dhHk3QBN39bSsHNA7qxcS1u80GH4r6XnTq1dFDK8o+tDb5VCViLvfhVdpfZLY\n" \
|
|
||||||
"Uspzgb8c8+a4bmYRBbMelC1/kZWSWfFMzqORcUx8Rww7Cxn2obFshj5cqsQugsv5\n" \
|
|
||||||
"B5a6SE2Q8pTIqXOi6wZ7I53eovNNVZ96YUWYGGjHXkBrI/V5eu+MtWuLt29G9Hvx\n" \
|
|
||||||
"PUsE2JOAWVrgQSQdso8VYFhH2+9uRv0V9dlfmrPb2LjkQLPNlzmuhbsdjrzch5vR\n" \
|
|
||||||
"pu/xO28QOG8=\n" \
|
|
||||||
"-----END CERTIFICATE-----\n";
|
|
||||||
|
|
||||||
const char* local_root_ca2 = \
|
|
||||||
"-----BEGIN CERTIFICATE-----\n" \
|
|
||||||
"MIIGCDCCA/CgAwIBAgIQKy5u6tl1NmwUim7bo3yMBzANBgkqhkiG9w0BAQwFADCB\n" \
|
|
||||||
"hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G\n" \
|
|
||||||
"A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV\n" \
|
|
||||||
"BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMjEy\n" \
|
|
||||||
"MDAwMDAwWhcNMjkwMjExMjM1OTU5WjCBkDELMAkGA1UEBhMCR0IxGzAZBgNVBAgT\n" \
|
|
||||||
"EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR\n" \
|
|
||||||
"Q09NT0RPIENBIExpbWl0ZWQxNjA0BgNVBAMTLUNPTU9ETyBSU0EgRG9tYWluIFZh\n" \
|
|
||||||
"bGlkYXRpb24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP\n" \
|
|
||||||
"ADCCAQoCggEBAI7CAhnhoFmk6zg1jSz9AdDTScBkxwtiBUUWOqigwAwCfx3M28Sh\n" \
|
|
||||||
"bXcDow+G+eMGnD4LgYqbSRutA776S9uMIO3Vzl5ljj4Nr0zCsLdFXlIvNN5IJGS0\n" \
|
|
||||||
"Qa4Al/e+Z96e0HqnU4A7fK31llVvl0cKfIWLIpeNs4TgllfQcBhglo/uLQeTnaG6\n" \
|
|
||||||
"ytHNe+nEKpooIZFNb5JPJaXyejXdJtxGpdCsWTWM/06RQ1A/WZMebFEh7lgUq/51\n" \
|
|
||||||
"UHg+TLAchhP6a5i84DuUHoVS3AOTJBhuyydRReZw3iVDpA3hSqXttn7IzW3uLh0n\n" \
|
|
||||||
"c13cRTCAquOyQQuvvUSH2rnlG51/ruWFgqUCAwEAAaOCAWUwggFhMB8GA1UdIwQY\n" \
|
|
||||||
"MBaAFLuvfgI9+qbxPISOre44mOzZMjLUMB0GA1UdDgQWBBSQr2o6lFoL2JDqElZz\n" \
|
|
||||||
"30O0Oija5zAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNV\n" \
|
|
||||||
"HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwGwYDVR0gBBQwEjAGBgRVHSAAMAgG\n" \
|
|
||||||
"BmeBDAECATBMBgNVHR8ERTBDMEGgP6A9hjtodHRwOi8vY3JsLmNvbW9kb2NhLmNv\n" \
|
|
||||||
"bS9DT01PRE9SU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDBxBggrBgEFBQcB\n" \
|
|
||||||
"AQRlMGMwOwYIKwYBBQUHMAKGL2h0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9E\n" \
|
|
||||||
"T1JTQUFkZFRydXN0Q0EuY3J0MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21v\n" \
|
|
||||||
"ZG9jYS5jb20wDQYJKoZIhvcNAQEMBQADggIBAE4rdk+SHGI2ibp3wScF9BzWRJ2p\n" \
|
|
||||||
"mj6q1WZmAT7qSeaiNbz69t2Vjpk1mA42GHWx3d1Qcnyu3HeIzg/3kCDKo2cuH1Z/\n" \
|
|
||||||
"e+FE6kKVxF0NAVBGFfKBiVlsit2M8RKhjTpCipj4SzR7JzsItG8kO3KdY3RYPBps\n" \
|
|
||||||
"P0/HEZrIqPW1N+8QRcZs2eBelSaz662jue5/DJpmNXMyYE7l3YphLG5SEXdoltMY\n" \
|
|
||||||
"dVEVABt0iN3hxzgEQyjpFv3ZBdRdRydg1vs4O2xyopT4Qhrf7W8GjEXCBgCq5Ojc\n" \
|
|
||||||
"2bXhc3js9iPc0d1sjhqPpepUfJa3w/5Vjo1JXvxku88+vZbrac2/4EjxYoIQ5QxG\n" \
|
|
||||||
"V/Iz2tDIY+3GH5QFlkoakdH368+PUq4NCNk+qKBR6cGHdNXJ93SrLlP7u3r7l+L4\n" \
|
|
||||||
"HyaPs9Kg4DdbKDsx5Q5XLVq4rXmsXiBmGqW5prU5wfWYQ//u+aen/e7KJD2AFsQX\n" \
|
|
||||||
"j4rBYKEMrltDR5FL1ZoXX/nUh8HCjLfn4g8wGTeGrODcQgPmlKidrv0PJFGUzpII\n" \
|
|
||||||
"0fxQ8ANAe4hZ7Q7drNJ3gjTcBpUC2JD5Leo31Rpg0Gcg19hCC0Wvgmje3WYkN5Ap\n" \
|
|
||||||
"lBlGGSW4gNfL1IYoakRwJiNiqZ+Gb7+6kHDSVneFeO/qJakXzlByjAA6quPbYzSf\n" \
|
|
||||||
"+AZxAeKCINT+b72x\n" \
|
|
||||||
"-----END CERTIFICATE-----\n";
|
|
||||||
*/
|
|
||||||
223
main.ino
223
main.ino
@@ -1,17 +1,49 @@
|
|||||||
|
//============================================================================================================
|
||||||
//=============================================JSON===========================================================
|
//=============================================JSON===========================================================
|
||||||
// ------------- Чтение значения json
|
// ------------- Чтение значения json ------------------------------------------------------------------------
|
||||||
String jsonRead(String &json, String name) {
|
String jsonReadStr(String &json, String name) {
|
||||||
DynamicJsonBuffer jsonBuffer;
|
DynamicJsonBuffer jsonBuffer;
|
||||||
JsonObject& root = jsonBuffer.parseObject(json);
|
JsonObject& root = jsonBuffer.parseObject(json);
|
||||||
return root[name].as<String>();
|
return root[name].as<String>();
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------- Чтение значения json
|
// ------------- Чтение значения json ------------------------------------------------------------------------
|
||||||
int jsonReadtoInt(String &json, String name) {
|
int jsonReadInt(String &json, String name) {
|
||||||
DynamicJsonBuffer jsonBuffer;
|
DynamicJsonBuffer jsonBuffer;
|
||||||
JsonObject& root = jsonBuffer.parseObject(json);
|
JsonObject& root = jsonBuffer.parseObject(json);
|
||||||
return root[name];
|
return root[name];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ------------- Запись значения json String -----------------------------------------------------------------
|
||||||
|
String jsonWriteStr(String &json, String name, String volume) {
|
||||||
|
DynamicJsonBuffer jsonBuffer;
|
||||||
|
JsonObject& root = jsonBuffer.parseObject(json);
|
||||||
|
root[name] = volume;
|
||||||
|
json = "";
|
||||||
|
root.printTo(json);
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ------------- Запись значения json int ---------------------------------------------------------------------
|
||||||
|
String jsonWriteInt(String &json, String name, int volume) {
|
||||||
|
DynamicJsonBuffer jsonBuffer;
|
||||||
|
JsonObject& root = jsonBuffer.parseObject(json);
|
||||||
|
root[name] = volume;
|
||||||
|
json = "";
|
||||||
|
root.printTo(json);
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ------------- Запись значения json float -------------------------------------------------------------------
|
||||||
|
String jsonWriteFloat(String &json, String name, float volume) {
|
||||||
|
DynamicJsonBuffer jsonBuffer;
|
||||||
|
JsonObject& root = jsonBuffer.parseObject(json);
|
||||||
|
root[name] = volume;
|
||||||
|
json = "";
|
||||||
|
root.printTo(json);
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
DynamicJsonBuffer jsonBuffer;
|
DynamicJsonBuffer jsonBuffer;
|
||||||
JsonObject& root = jsonBuffer.parseObject(json);
|
JsonObject& root = jsonBuffer.parseObject(json);
|
||||||
@@ -27,60 +59,43 @@ int jsonReadtoInt(String &json, String name) {
|
|||||||
serializeJson(jsonBuffer,json);
|
serializeJson(jsonBuffer,json);
|
||||||
return json;
|
return json;
|
||||||
*/
|
*/
|
||||||
// ------------- Запись значения json String
|
|
||||||
String jsonWriteStr(String &json, String name, String volume) {
|
|
||||||
DynamicJsonBuffer jsonBuffer;
|
|
||||||
JsonObject& root = jsonBuffer.parseObject(json);
|
|
||||||
root[name] = volume;
|
|
||||||
json = "";
|
|
||||||
root.printTo(json);
|
|
||||||
return json;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ------------- Запись значения json int
|
|
||||||
String jsonWriteInt(String &json, String name, int volume) {
|
|
||||||
DynamicJsonBuffer jsonBuffer;
|
|
||||||
JsonObject& root = jsonBuffer.parseObject(json);
|
|
||||||
root[name] = volume;
|
|
||||||
json = "";
|
|
||||||
root.printTo(json);
|
|
||||||
return json;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ------------- Запись значения json float
|
|
||||||
String jsonWriteFloat(String &json, String name, float volume) {
|
|
||||||
DynamicJsonBuffer jsonBuffer;
|
|
||||||
JsonObject& root = jsonBuffer.parseObject(json);
|
|
||||||
root[name] = volume;
|
|
||||||
json = "";
|
|
||||||
root.printTo(json);
|
|
||||||
return json;
|
|
||||||
}
|
|
||||||
/*
|
/*
|
||||||
String jsonWriteArray(String &json, String value1, String value2, String value3) {
|
String jsonWriteArray(String &json, String value1, String value2, String value3) {
|
||||||
|
|
||||||
const int capacity = JSON_ARRAY_SIZE(1) + 3 * JSON_OBJECT_SIZE(3);
|
const int capacity = JSON_ARRAY_SIZE(1) + 3 * JSON_OBJECT_SIZE(3);
|
||||||
|
|
||||||
StaticJsonBuffer<capacity> jb;
|
StaticJsonBuffer<capacity> jb;
|
||||||
JsonArray& arr = jb.createArray();
|
JsonArray& arr = jb.createArray();
|
||||||
JsonObject& obj1 = jb.createObject();
|
JsonObject& obj1 = jb.createObject();
|
||||||
|
|
||||||
obj1[value1] = 1;
|
obj1[value1] = 1;
|
||||||
obj1[value2] = 2;
|
obj1[value2] = 2;
|
||||||
obj1[value3] = 3;
|
obj1[value3] = 3;
|
||||||
|
|
||||||
arr.add(obj1);
|
arr.add(obj1);
|
||||||
|
|
||||||
arr.printTo(json);
|
arr.printTo(json);
|
||||||
|
|
||||||
return json;
|
return json;
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
//============================================================================================================
|
||||||
|
//=============================================BIT AND BYTE===================================================
|
||||||
|
uint8_t hexStringToUint8(String hex) {
|
||||||
|
uint8_t tmp = strtol(hex.c_str(), NULL, 0);
|
||||||
|
if (tmp >= 0x00 && tmp <= 0xFF) {
|
||||||
|
return tmp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
uint16_t hexStringToUint16(String hex) {
|
||||||
|
uint16_t tmp = strtol(hex.c_str(), NULL, 0);
|
||||||
|
if (tmp >= 0x0000 && tmp <= 0xFFFF) {
|
||||||
|
return tmp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//==============================================================================================================
|
||||||
//=============================================CONFIG===========================================================
|
//=============================================CONFIG===========================================================
|
||||||
void saveConfig () {
|
void saveConfig () {
|
||||||
writeFile("config.json", configSetup);
|
writeFile("config.json", configSetup);
|
||||||
}
|
}
|
||||||
//=============================================ТЕКСТ============================================================
|
//==============================================================================================================
|
||||||
|
//=============================================STRING===========================================================
|
||||||
// --------Выделяем строку от конца строки до маркера-----------------------------------------------------------
|
// --------Выделяем строку от конца строки до маркера-----------------------------------------------------------
|
||||||
String selectToMarkerLast (String str, String found) {
|
String selectToMarkerLast (String str, String found) {
|
||||||
int p = str.lastIndexOf(found);
|
int p = str.lastIndexOf(found);
|
||||||
@@ -114,11 +129,12 @@ String deleteToMarkerLast (String str, String found) {
|
|||||||
int p = str.lastIndexOf(found);
|
int p = str.lastIndexOf(found);
|
||||||
return str.substring(0, p);
|
return str.substring(0, p);
|
||||||
}
|
}
|
||||||
|
// -------------------Выделяем строку от конца строки до маркера + ----------------------------------------------
|
||||||
String selectToMarkerPlus (String str, String found, int plus) {
|
String selectToMarkerPlus (String str, String found, int plus) {
|
||||||
int p = str.indexOf(found);
|
int p = str.indexOf(found);
|
||||||
return str.substring(0, p + plus);
|
return str.substring(0, p + plus);
|
||||||
}
|
}
|
||||||
//--------------------Выделяем строку от маркера до маркера
|
//--------------------Выделяем строку от маркера до маркера -----------------------------------------------------
|
||||||
String selectFromMarkerToMarker(String str, String found, int number) {
|
String selectFromMarkerToMarker(String str, String found, int number) {
|
||||||
if (str.indexOf(found) == -1) return "not found"; // если строки поиск нет сразу выход
|
if (str.indexOf(found) == -1) return "not found"; // если строки поиск нет сразу выход
|
||||||
str += found; // добавим для корректного поиска
|
str += found; // добавим для корректного поиска
|
||||||
@@ -130,7 +146,7 @@ String selectFromMarkerToMarker(String str, String found, int number) {
|
|||||||
} while (str.length() != 0); // повторим пока строка не пустая
|
} while (str.length() != 0); // повторим пока строка не пустая
|
||||||
return "not found"; // Достигли пустой строки и ничего не нашли
|
return "not found"; // Достигли пустой строки и ничего не нашли
|
||||||
}
|
}
|
||||||
//--------------------Посчитать
|
//--------------------Посчитать -----------------------------------------------------------------------------------
|
||||||
int count(String str, String found) {
|
int count(String str, String found) {
|
||||||
if (str.indexOf(found) == -1) return 0; // если строки поиск нет сразу выход
|
if (str.indexOf(found) == -1) return 0; // если строки поиск нет сразу выход
|
||||||
str += found; // добавим для корректного поиска
|
str += found; // добавим для корректного поиска
|
||||||
@@ -142,6 +158,7 @@ int count(String str, String found) {
|
|||||||
return i; // Достигли пустой строки и ничего не нашли
|
return i; // Достигли пустой строки и ничего не нашли
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------проверка на цифры ---------------------------------------------------------------------------
|
||||||
boolean isDigitStr (String str) {
|
boolean isDigitStr (String str) {
|
||||||
if (str.length() == 1) {
|
if (str.length() == 1) {
|
||||||
return Digit (str);
|
return Digit (str);
|
||||||
@@ -153,7 +170,6 @@ boolean isDigitStr (String str) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean Digit (String str) {
|
boolean Digit (String str) {
|
||||||
if (str == "0" || str == "1" || str == "2" || str == "3" || str == "4" || str == "5" || str == "6" || str == "7" || str == "8" || str == "9") {
|
if (str == "0" || str == "1" || str == "2" || str == "3" || str == "4" || str == "5" || str == "6" || str == "7" || str == "8" || str == "9") {
|
||||||
return true;
|
return true;
|
||||||
@@ -161,6 +177,7 @@ boolean Digit (String str) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//==================================================================================================================
|
||||||
//============================================URL===================================================================
|
//============================================URL===================================================================
|
||||||
// ----------------------Запрос на удаленный URL
|
// ----------------------Запрос на удаленный URL
|
||||||
String getURL(String urls) {
|
String getURL(String urls) {
|
||||||
@@ -177,11 +194,10 @@ String getURL(String urls) {
|
|||||||
http.end();
|
http.end();
|
||||||
return answer;
|
return answer;
|
||||||
}
|
}
|
||||||
|
//===================================================================================================================
|
||||||
//===========================================FILES===================================================================
|
//===========================================FILES===================================================================
|
||||||
|
// ------------- Добавление файла -----------------------------------------------------------------------------------
|
||||||
String safeDataToFile(String data, String Folder)
|
String safeDataToFile(String data, String Folder) {
|
||||||
{
|
|
||||||
//String fileName = GetDate();
|
//String fileName = GetDate();
|
||||||
String fileName;
|
String fileName;
|
||||||
fileName.toLowerCase();
|
fileName.toLowerCase();
|
||||||
@@ -189,13 +205,11 @@ String safeDataToFile(String data, String Folder)
|
|||||||
fileName.replace(" ", ".");
|
fileName.replace(" ", ".");
|
||||||
fileName.replace("..", ".");
|
fileName.replace("..", ".");
|
||||||
fileName = Folder + "/" + fileName + ".txt";
|
fileName = Folder + "/" + fileName + ".txt";
|
||||||
|
|
||||||
// addFile(fileName, GetTime() + "/" + data);
|
// addFile(fileName, GetTime() + "/" + data);
|
||||||
|
|
||||||
Serial.println(fileName);
|
Serial.println(fileName);
|
||||||
jsonWriteStr(configJson, "test", fileName);
|
jsonWriteStr(configJson, "test", fileName);
|
||||||
}
|
}
|
||||||
// ------------- Чтение файла в строку
|
// ------------- Чтение файла в строку -------------------------------------------------------------------------------
|
||||||
String readFile(String fileName, size_t len ) {
|
String readFile(String fileName, size_t len ) {
|
||||||
File configFile = SPIFFS.open("/" + fileName, "r");
|
File configFile = SPIFFS.open("/" + fileName, "r");
|
||||||
if (!configFile) {
|
if (!configFile) {
|
||||||
@@ -210,7 +224,7 @@ String readFile(String fileName, size_t len ) {
|
|||||||
configFile.close();
|
configFile.close();
|
||||||
return temp;
|
return temp;
|
||||||
}
|
}
|
||||||
|
// ------------- Размер файла ----------------------------------------------------------------------------------------
|
||||||
String sizeFile(String fileName) {
|
String sizeFile(String fileName) {
|
||||||
File configFile = SPIFFS.open("/" + fileName, "r");
|
File configFile = SPIFFS.open("/" + fileName, "r");
|
||||||
if (!configFile) {
|
if (!configFile) {
|
||||||
@@ -220,8 +234,7 @@ String sizeFile(String fileName) {
|
|||||||
configFile.close();
|
configFile.close();
|
||||||
return String(size);
|
return String(size);
|
||||||
}
|
}
|
||||||
|
// ------------- Запись строки в файл ---------------------------------------------------------------------------------
|
||||||
// ------------- Запись строки в файл
|
|
||||||
String writeFile(String fileName, String strings ) {
|
String writeFile(String fileName, String strings ) {
|
||||||
File configFile = SPIFFS.open("/" + fileName, "w");
|
File configFile = SPIFFS.open("/" + fileName, "w");
|
||||||
if (!configFile) {
|
if (!configFile) {
|
||||||
@@ -232,8 +245,7 @@ String writeFile(String fileName, String strings ) {
|
|||||||
configFile.close();
|
configFile.close();
|
||||||
return "Write sucsses";
|
return "Write sucsses";
|
||||||
}
|
}
|
||||||
|
// ------------- Добовление строки в файл ------------------------------------------------------------------------------
|
||||||
// ------------- Добовление строки в файл
|
|
||||||
String addFile(String fileName, String strings ) {
|
String addFile(String fileName, String strings ) {
|
||||||
File configFile = SPIFFS.open("/" + fileName, "a");
|
File configFile = SPIFFS.open("/" + fileName, "a");
|
||||||
if (!configFile) {
|
if (!configFile) {
|
||||||
@@ -243,8 +255,7 @@ String addFile(String fileName, String strings ) {
|
|||||||
configFile.close();
|
configFile.close();
|
||||||
return "Write sucsses";
|
return "Write sucsses";
|
||||||
}
|
}
|
||||||
|
// ------------- Чтение строки из файла ---------------------------------------------------------------------------------
|
||||||
// ------------- Чтение строки из файла
|
|
||||||
//возвращает стоку из файла в которой есть искомое слово found
|
//возвращает стоку из файла в которой есть искомое слово found
|
||||||
String readFileString(String fileName, String found) {
|
String readFileString(String fileName, String found) {
|
||||||
File configFile = SPIFFS.open("/" + fileName, "r");
|
File configFile = SPIFFS.open("/" + fileName, "r");
|
||||||
@@ -256,63 +267,11 @@ String readFileString(String fileName, String found) {
|
|||||||
}
|
}
|
||||||
configFile.close();
|
configFile.close();
|
||||||
}
|
}
|
||||||
|
//=========================================================================================================================
|
||||||
// Запись данных в файл с частотой 1 секунда и более. Максимальное количество данных в суточном файле 1440 значений
|
//=======================================УПРАВЛЕНИЕ ВИДЖЕТАМИ MQTT=========================================================
|
||||||
void safeDataToFile(int inter, String par, uint16_t data) {
|
|
||||||
yield();
|
|
||||||
// Формируем зоголовок (префикс) Интервал, Параметр, размер_параметра
|
|
||||||
uint16_t dataSize = sizeof(data);
|
|
||||||
String prifexFile;
|
|
||||||
prifexFile += inter;
|
|
||||||
prifexFile += "," + par;
|
|
||||||
prifexFile += ",";
|
|
||||||
prifexFile += dataSize;
|
|
||||||
prifexFile += ":";
|
|
||||||
uint16_t prifexLen = prifexFile.length(); //Размер префикса
|
|
||||||
|
|
||||||
// Сделаем имя файла
|
|
||||||
String fileName = GetDate();
|
|
||||||
fileName = deleteBeforeDelimiter(fileName, " "); // удалим день недели
|
|
||||||
fileName.replace(" ", ".");
|
|
||||||
fileName.replace("..", "."); // Заменяем пробелы точками
|
|
||||||
fileName = par + "/" + fileName + ".txt"; // Имя файла параметр в виде директории и дата
|
|
||||||
fileName.toLowerCase(); //fileName = "san aug 31 2018"; Имя файла строчными буквами
|
|
||||||
Serial.println(fileName);
|
|
||||||
File configFile = SPIFFS.open("/" + fileName, "a"); // Открываем файл на добавление
|
|
||||||
size_t size = configFile.size();
|
|
||||||
yield();
|
|
||||||
if (size == 0) {
|
|
||||||
configFile.print(prifexFile);
|
|
||||||
}
|
|
||||||
size = configFile.size();
|
|
||||||
// Получим время и определим позицию в файле
|
|
||||||
String time = GetTime();
|
|
||||||
//time = "00:15:00";
|
|
||||||
int timeM = timeToMin(time); // Здесь количество минут с начала суток
|
|
||||||
timeM = timeM / inter;
|
|
||||||
int poz = timeM * dataSize + prifexLen + 1; // позиция в которую нужно записать.
|
|
||||||
int endF = (size - prifexLen) * dataSize + prifexLen + 1; // позиция конца файла
|
|
||||||
if (poz >= endF) { // если файл имел пропуски в записи данных
|
|
||||||
int i = (poz - endF) / dataSize;
|
|
||||||
for (int j = 0; j < i; j++) { // Заполним недостающие данные
|
|
||||||
for (int d = 0; d < dataSize; d++) {
|
|
||||||
yield();
|
|
||||||
configFile.write(0); // нулями
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
yield();
|
|
||||||
configFile.write(data >> 8); // добавим текущие
|
|
||||||
configFile.write(data); // данные
|
|
||||||
configFile.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
//=======================================УПРАВЛЕНИЕ ВИДЖЕТАМИ MQTT======================================================================
|
|
||||||
|
|
||||||
|
|
||||||
void sendCONFIG(String topik, String widgetConfig, String key, String date) {
|
void sendCONFIG(String topik, String widgetConfig, String key, String date) {
|
||||||
yield();
|
yield();
|
||||||
topik = jsonRead(configSetup, "mqttPrefix") + "/" + chipID + "/" + topik + "/status";
|
topik = jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/" + topik + "/status";
|
||||||
String outer = "{\"widgetConfig\":";
|
String outer = "{\"widgetConfig\":";
|
||||||
String inner = "{\"";
|
String inner = "{\"";
|
||||||
inner = inner + key;
|
inner = inner + key;
|
||||||
@@ -325,24 +284,11 @@ void sendCONFIG(String topik, String widgetConfig, String key, String date) {
|
|||||||
//client_mqtt.publish(MQTT::Publish(topik, t).set_qos(1));
|
//client_mqtt.publish(MQTT::Publish(topik, t).set_qos(1));
|
||||||
yield();
|
yield();
|
||||||
}
|
}
|
||||||
|
//=========================================================================================================================
|
||||||
uint8_t hexStringToUint8(String hex) {
|
//=========================================МИГАНИЕ СВЕТОДИОДОМ=============================================================
|
||||||
uint8_t tmp = strtol(hex.c_str(), NULL, 0);
|
|
||||||
if (tmp >= 0x00 && tmp <= 0xFF) {
|
|
||||||
return tmp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
uint16_t hexStringToUint16(String hex) {
|
|
||||||
uint16_t tmp = strtol(hex.c_str(), NULL, 0);
|
|
||||||
if (tmp >= 0x0000 && tmp <= 0xFFFF) {
|
|
||||||
return tmp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//=============================================================================================================
|
|
||||||
|
|
||||||
void led_blink(String satus) {
|
void led_blink(String satus) {
|
||||||
#ifdef blink_pin
|
#ifdef ESP8266
|
||||||
|
#ifdef blink_pin
|
||||||
pinMode(blink_pin, OUTPUT);
|
pinMode(blink_pin, OUTPUT);
|
||||||
if (satus == "off") {
|
if (satus == "off") {
|
||||||
noTone(blink_pin);
|
noTone(blink_pin);
|
||||||
@@ -354,10 +300,11 @@ void led_blink(String satus) {
|
|||||||
}
|
}
|
||||||
if (satus == "slow") tone(blink_pin, 1);
|
if (satus == "slow") tone(blink_pin, 1);
|
||||||
if (satus == "fast") tone(blink_pin, 20);
|
if (satus == "fast") tone(blink_pin, 20);
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
//=========================================================================================================================
|
||||||
|
//=========================================ОСТАВШАЯСЯ ОПЕРАТИВНАЯ ПАМЯТЬ===================================================
|
||||||
void getMemoryLoad(String text) {
|
void getMemoryLoad(String text) {
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
int all_memory = 52864;
|
int all_memory = 52864;
|
||||||
@@ -378,15 +325,17 @@ void getMemoryLoad(String text) {
|
|||||||
//esp32 full memory = 362868 k bytes
|
//esp32 full memory = 362868 k bytes
|
||||||
//esp8266 full memory = 52864 k bytes
|
//esp8266 full memory = 52864 k bytes
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//===================================================================
|
//===================================================================
|
||||||
/*
|
/*
|
||||||
void web_print (String text) {
|
void web_print (String text) {
|
||||||
if (WiFi.status() == WL_CONNECTED) {
|
if (WiFi.status() == WL_CONNECTED) {
|
||||||
jsonWriteStr(json, "test1", jsonRead(json, "test2"));
|
jsonWriteStr(json, "test1", jsonReadStr(json, "test2"));
|
||||||
jsonWriteStr(json, "test2", jsonRead(json, "test3"));
|
jsonWriteStr(json, "test2", jsonReadStr(json, "test3"));
|
||||||
jsonWriteStr(json, "test3", jsonRead(json, "test4"));
|
jsonWriteStr(json, "test3", jsonReadStr(json, "test4"));
|
||||||
jsonWriteStr(json, "test4", jsonRead(json, "test5"));
|
jsonWriteStr(json, "test4", jsonReadStr(json, "test5"));
|
||||||
jsonWriteStr(json, "test5", jsonRead(json, "test6"));
|
jsonWriteStr(json, "test5", jsonReadStr(json, "test6"));
|
||||||
|
|
||||||
jsonWriteStr(json, "test6", GetTime() + " " + text);
|
jsonWriteStr(json, "test6", GetTime() + " " + text);
|
||||||
|
|
||||||
|
|||||||
30
mqtt.ino
30
mqtt.ino
@@ -75,21 +75,21 @@ void handleMQTT() {
|
|||||||
}
|
}
|
||||||
//===============================================ПОДКЛЮЧЕНИЕ========================================================
|
//===============================================ПОДКЛЮЧЕНИЕ========================================================
|
||||||
boolean MQTT_Connecting() {
|
boolean MQTT_Connecting() {
|
||||||
String mqtt_server = jsonRead(configSetup, "mqttServer");
|
String mqtt_server = jsonReadStr(configSetup, "mqttServer");
|
||||||
if ((mqtt_server != "")) {
|
if ((mqtt_server != "")) {
|
||||||
Serial.println("[E] Lost MQTT connection, start reconnecting");
|
Serial.println("[E] Lost MQTT connection, start reconnecting");
|
||||||
led_blink("fast");
|
led_blink("fast");
|
||||||
client_mqtt.setServer(mqtt_server.c_str(), jsonReadtoInt(configSetup, "mqttPort"));
|
client_mqtt.setServer(mqtt_server.c_str(), jsonReadInt(configSetup, "mqttPort"));
|
||||||
if (WiFi.status() == WL_CONNECTED) {
|
if (WiFi.status() == WL_CONNECTED) {
|
||||||
if (!client_mqtt.connected()) {
|
if (!client_mqtt.connected()) {
|
||||||
Serial.println("[V] Connecting to MQTT server commenced");
|
Serial.println("[V] Connecting to MQTT server commenced");
|
||||||
if (client_mqtt.connect(chipID.c_str(), jsonRead(configSetup, "mqttUser").c_str(), jsonRead(configSetup, "mqttPass").c_str())) {
|
if (client_mqtt.connect(chipID.c_str(), jsonReadStr(configSetup, "mqttUser").c_str(), jsonReadStr(configSetup, "mqttPass").c_str())) {
|
||||||
Serial.println("[VV] MQTT connected");
|
Serial.println("[VV] MQTT connected");
|
||||||
led_blink("off");
|
led_blink("off");
|
||||||
client_mqtt.setCallback(callback);
|
client_mqtt.setCallback(callback);
|
||||||
client_mqtt.subscribe(jsonRead(configSetup, "mqttPrefix").c_str()); // Для приема получения HELLOW и подтверждения связи
|
client_mqtt.subscribe(jsonReadStr(configSetup, "mqttPrefix").c_str()); // Для приема получения HELLOW и подтверждения связи
|
||||||
client_mqtt.subscribe((jsonRead(configSetup, "mqttPrefix") + "/" + chipID + "/+/control").c_str()); // Подписываемся на топики control
|
client_mqtt.subscribe((jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/+/control").c_str()); // Подписываемся на топики control
|
||||||
client_mqtt.subscribe((jsonRead(configSetup, "mqttPrefix") + "/" + chipID + "/order").c_str()); // Подписываемся на топики order
|
client_mqtt.subscribe((jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/order").c_str()); // Подписываемся на топики order
|
||||||
Serial.println("[V] Callback set, subscribe done");
|
Serial.println("[V] Callback set, subscribe done");
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
@@ -157,34 +157,34 @@ void outcoming_date() {
|
|||||||
|
|
||||||
//======================================CONFIG==================================================
|
//======================================CONFIG==================================================
|
||||||
boolean sendMQTT(String end_of_topik, String data) {
|
boolean sendMQTT(String end_of_topik, String data) {
|
||||||
String topik = jsonRead(configSetup, "mqttPrefix") + "/" + chipID + "/" + end_of_topik;
|
String topik = jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/" + end_of_topik;
|
||||||
boolean send_status = client_mqtt.beginPublish(topik.c_str(), data.length(), false);
|
boolean send_status = client_mqtt.beginPublish(topik.c_str(), data.length(), false);
|
||||||
client_mqtt.print(data);
|
client_mqtt.print(data);
|
||||||
client_mqtt.endPublish();
|
client_mqtt.endPublish();
|
||||||
return send_status;
|
return send_status;
|
||||||
}
|
}
|
||||||
boolean sendCHART(String topik, String data) {
|
boolean sendCHART(String topik, String data) {
|
||||||
topik = jsonRead(configSetup, "mqttPrefix") + "/" + chipID + "/" + topik + "/" + "status";
|
topik = jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/" + topik + "/" + "status";
|
||||||
boolean send_status = client_mqtt.beginPublish(topik.c_str(), data.length(), false);
|
boolean send_status = client_mqtt.beginPublish(topik.c_str(), data.length(), false);
|
||||||
client_mqtt.print(data);
|
client_mqtt.print(data);
|
||||||
client_mqtt.endPublish();
|
client_mqtt.endPublish();
|
||||||
return send_status;
|
return send_status;
|
||||||
}
|
}
|
||||||
boolean sendCHART_test(String topik, String data) {
|
boolean sendCHART_test(String topik, String data) {
|
||||||
topik = jsonRead(configSetup, "mqttPrefix") + "/" + chipID + "/" + topik + "/" + "status";
|
topik = jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/" + topik + "/" + "status";
|
||||||
boolean send_status = client_mqtt.publish (topik.c_str(), data.c_str(), false);
|
boolean send_status = client_mqtt.publish (topik.c_str(), data.c_str(), false);
|
||||||
return send_status;
|
return send_status;
|
||||||
}
|
}
|
||||||
//======================================STATUS==================================================
|
//======================================STATUS==================================================
|
||||||
void sendSTATUS(String topik, String state) {
|
void sendSTATUS(String topik, String state) {
|
||||||
topik = jsonRead(configSetup, "mqttPrefix") + "/" + chipID + "/" + topik + "/" + "status";
|
topik = jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/" + topik + "/" + "status";
|
||||||
String json_ = "{}";
|
String json_ = "{}";
|
||||||
jsonWriteStr(json_, "status", state);
|
jsonWriteStr(json_, "status", state);
|
||||||
int send_status = client_mqtt.publish (topik.c_str(), json_.c_str(), false);
|
int send_status = client_mqtt.publish (topik.c_str(), json_.c_str(), false);
|
||||||
}
|
}
|
||||||
//======================================CONTROL==================================================
|
//======================================CONTROL==================================================
|
||||||
void sendCONTROL(String id, String topik, String state) {
|
void sendCONTROL(String id, String topik, String state) {
|
||||||
String all_line = jsonRead(configSetup, "mqttPrefix") + "/" + id + "/" + topik + "/control";
|
String all_line = jsonReadStr(configSetup, "mqttPrefix") + "/" + id + "/" + topik + "/control";
|
||||||
int send_status = client_mqtt.publish (all_line.c_str(), state.c_str(), false);
|
int send_status = client_mqtt.publish (all_line.c_str(), state.c_str(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -284,7 +284,7 @@ String stateMQTT() {
|
|||||||
/*void scenario_devices_topiks_subscribe() {
|
/*void scenario_devices_topiks_subscribe() {
|
||||||
|
|
||||||
//SCENARIO ANALOG > 5 800324-1458415 rel1 0
|
//SCENARIO ANALOG > 5 800324-1458415 rel1 0
|
||||||
if (jsonRead(configSetup, "scenario") == "1") {
|
if (jsonReadStr(configSetup, "scenario") == "1") {
|
||||||
//String all_text = readFile("firmware.s.txt", 1024) + "\r\n";
|
//String all_text = readFile("firmware.s.txt", 1024) + "\r\n";
|
||||||
String all_text = scenario + "\r\n";
|
String all_text = scenario + "\r\n";
|
||||||
all_text.replace("\r\n", "\n");
|
all_text.replace("\r\n", "\n");
|
||||||
@@ -293,7 +293,7 @@ String stateMQTT() {
|
|||||||
String line_ = selectToMarker (all_text, "\n");
|
String line_ = selectToMarker (all_text, "\n");
|
||||||
String id = selectFromMarkerToMarker(line_, " ", 4);
|
String id = selectFromMarkerToMarker(line_, " ", 4);
|
||||||
if (id != "not found") {
|
if (id != "not found") {
|
||||||
client_mqtt.subscribe((jsonRead(configSetup, "mqttPrefix") + "/" + id + "/+/status").c_str(), 0);
|
client_mqtt.subscribe((jsonReadStr(configSetup, "mqttPrefix") + "/" + id + "/+/status").c_str(), 0);
|
||||||
Serial.println("subscribed to device, id: " + id);
|
Serial.println("subscribed to device, id: " + id);
|
||||||
}
|
}
|
||||||
all_text = deleteBeforeDelimiter(all_text, "\n");
|
all_text = deleteBeforeDelimiter(all_text, "\n");
|
||||||
@@ -303,7 +303,7 @@ String stateMQTT() {
|
|||||||
*/
|
*/
|
||||||
/*void scenario_devices_test_msg_send() {
|
/*void scenario_devices_test_msg_send() {
|
||||||
|
|
||||||
if (jsonRead(configSetup, "scenario") == "1") {
|
if (jsonReadStr(configSetup, "scenario") == "1") {
|
||||||
|
|
||||||
String all_text = scenario + "\r\n";
|
String all_text = scenario + "\r\n";
|
||||||
all_text.replace("\r\n", "\n");
|
all_text.replace("\r\n", "\n");
|
||||||
@@ -313,7 +313,7 @@ String stateMQTT() {
|
|||||||
String id = selectFromMarkerToMarker(line_, " ", 4);
|
String id = selectFromMarkerToMarker(line_, " ", 4);
|
||||||
if (id != "not found") {
|
if (id != "not found") {
|
||||||
//Serial.println();
|
//Serial.println();
|
||||||
Serial.println(client_mqtt.publish ((jsonRead(configSetup, "mqttPrefix") + "/" + id).c_str(), "CHECK", true));
|
Serial.println(client_mqtt.publish ((jsonReadStr(configSetup, "mqttPrefix") + "/" + id).c_str(), "CHECK", true));
|
||||||
|
|
||||||
}
|
}
|
||||||
all_text = deleteBeforeDelimiter(all_text, "\n");
|
all_text = deleteBeforeDelimiter(all_text, "\n");
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ void pushControl() {
|
|||||||
static String body_old;
|
static String body_old;
|
||||||
|
|
||||||
const char* logServer = "api.pushingbox.com";
|
const char* logServer = "api.pushingbox.com";
|
||||||
String deviceId = jsonRead(configSetup, "pushingbox_id");
|
String deviceId = jsonReadStr(configSetup, "pushingbox_id");
|
||||||
|
|
||||||
Serial.println("- starting client");
|
Serial.println("- starting client");
|
||||||
|
|
||||||
|
|||||||
40
set.h
40
set.h
@@ -1,38 +1,38 @@
|
|||||||
//===============FIRMWARE SETTINGS=====================================
|
/*******************************************************************
|
||||||
String firmware_version = "2.3.3";
|
**********************FIRMWARE SETTINGS****************************
|
||||||
|
******************************************************************/
|
||||||
|
String firmware_version = "2.3.4";
|
||||||
boolean mb_4_of_memory = true;
|
boolean mb_4_of_memory = true;
|
||||||
//#define OTA_enable
|
//#define OTA_enable
|
||||||
//#define MDNS_enable
|
//#define MDNS_enable
|
||||||
//#define WS_enable
|
//#define WS_enable
|
||||||
//#define layout_in_ram
|
//#define layout_in_ram
|
||||||
|
|
||||||
//===================================================================
|
|
||||||
//====================udp============================================
|
|
||||||
#define UDP_enable
|
#define UDP_enable
|
||||||
//====================sensors========================================
|
/*==========================SENSORS===============================*/
|
||||||
#define level_enable
|
#define level_enable
|
||||||
#define analog_enable
|
#define analog_enable
|
||||||
#define dallas_enable
|
#define dallas_enable
|
||||||
#define dht_enable //подъедает оперативку сука
|
#define dht_enable //подъедает оперативку сука
|
||||||
#define bmp_enable
|
#define bmp_enable
|
||||||
#define bme_enable
|
#define bme_enable
|
||||||
//====================logging=========================================
|
/*=========================LOGGING================================*/
|
||||||
#define logging_enable
|
#define logging_enable
|
||||||
//=====================gears==========================================
|
/*==========================GEARS=================================*/
|
||||||
#define stepper_enable
|
#define stepper_enable
|
||||||
#define servo_enable
|
#define servo_enable
|
||||||
//=====================other==========================================
|
/*=========================OTHER==================================*/
|
||||||
#define serial_enable
|
#define serial_enable
|
||||||
#define push_enable
|
#define push_enable
|
||||||
//====================================================================
|
/*================================================================*/
|
||||||
//====================================================================
|
|
||||||
|
|
||||||
#define wifi_mqtt_reconnecting 20000
|
#define wifi_mqtt_reconnecting 20000
|
||||||
#define blink_pin 2
|
#define blink_pin 2
|
||||||
#define tank_level_times_to_send 10 //после скольки выстрелов делать отправку данных
|
#define tank_level_times_to_send 10 //после скольки выстрелов делать отправку данных
|
||||||
#define statistics_update 1000 * 60 * 60 * 2
|
#define statistics_update 1000 * 60 * 60 * 2
|
||||||
//======================================================================
|
/*================================================================*/
|
||||||
//===============библиотеки и объекты для ESP8266========================
|
|
||||||
|
|
||||||
|
|
||||||
|
//===============библиотеки и объекты для ESP8266=======================
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
#include <ESP8266WiFi.h>
|
#include <ESP8266WiFi.h>
|
||||||
#include <ESP8266HTTPClient.h>
|
#include <ESP8266HTTPClient.h>
|
||||||
@@ -50,6 +50,8 @@ Servo myServo2;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
//===============библиотеки и объекты для ESP32===========================
|
//===============библиотеки и объекты для ESP32===========================
|
||||||
#ifdef ESP32
|
#ifdef ESP32
|
||||||
#include <WiFi.h>
|
#include <WiFi.h>
|
||||||
@@ -69,6 +71,8 @@ Servo myServo2;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
//===============общие библиотеки и объекты===============================
|
//===============общие библиотеки и объекты===============================
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#include "time.h"
|
#include "time.h"
|
||||||
@@ -95,8 +99,6 @@ AsyncEventSource events("/events");
|
|||||||
enum {ROUTER_SEARCHING, WIFI_MQTT_CONNECTION_CHECK, SENSORS, STEPPER1, STEPPER2, LOG1, LOG2, LOG3, LOG4, LOG5, TIMER_COUNTDOWN, TIME, TIME_SYNC, STATISTICS, UDP, UDP_DB, TEST };
|
enum {ROUTER_SEARCHING, WIFI_MQTT_CONNECTION_CHECK, SENSORS, STEPPER1, STEPPER2, LOG1, LOG2, LOG3, LOG4, LOG5, TIMER_COUNTDOWN, TIME, TIME_SYNC, STATISTICS, UDP, UDP_DB, TEST };
|
||||||
TickerScheduler ts(TEST + 1);
|
TickerScheduler ts(TEST + 1);
|
||||||
|
|
||||||
//LEVEL, ANALOG1, ANALOG2, DALLAS, DHTT, DHTH, DHTC, DHTP, DHTD, BMP280T, BMP280P,
|
|
||||||
|
|
||||||
#include <PubSubClient.h>
|
#include <PubSubClient.h>
|
||||||
WiFiClient espClient;
|
WiFiClient espClient;
|
||||||
PubSubClient client_mqtt(espClient);
|
PubSubClient client_mqtt(espClient);
|
||||||
@@ -135,7 +137,7 @@ Adafruit_Sensor *bmp_temp = bmp.getTemperatureSensor();
|
|||||||
Adafruit_Sensor *bmp_pressure = bmp.getPressureSensor();
|
Adafruit_Sensor *bmp_pressure = bmp.getPressureSensor();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef bmp_enable
|
#ifdef bme_enable
|
||||||
#include <Adafruit_BME280.h>
|
#include <Adafruit_BME280.h>
|
||||||
Adafruit_BME280 bme; // use I2C interface
|
Adafruit_BME280 bme; // use I2C interface
|
||||||
Adafruit_Sensor *bme_temp = bme.getTemperatureSensor();
|
Adafruit_Sensor *bme_temp = bme.getTemperatureSensor();
|
||||||
@@ -145,6 +147,8 @@ Adafruit_Sensor *bme_humidity = bme.getHumiditySensor();
|
|||||||
|
|
||||||
//#include <SoftwareSerial.h>
|
//#include <SoftwareSerial.h>
|
||||||
//SoftwareSerial mySerial(14, 12);
|
//SoftwareSerial mySerial(14, 12);
|
||||||
|
|
||||||
|
|
||||||
//===============FIRMWARE VARS========================
|
//===============FIRMWARE VARS========================
|
||||||
boolean just_load = true;
|
boolean just_load = true;
|
||||||
const char* hostName = "IoT Manager";
|
const char* hostName = "IoT Manager";
|
||||||
|
|||||||
BIN
sync.ffs_db
Normal file
BIN
sync.ffs_db
Normal file
Binary file not shown.
30
udp.ino
30
udp.ino
@@ -48,10 +48,10 @@ void UDP_init() {
|
|||||||
udp_period = random(50000, 60000);
|
udp_period = random(50000, 60000);
|
||||||
|
|
||||||
ts.add(UDP, udp_period, [&](void*) {
|
ts.add(UDP, udp_period, [&](void*) {
|
||||||
if (jsonRead(configSetup, "udponoff") == "1") {
|
if (jsonReadStr(configSetup, "udponoff") == "1") {
|
||||||
if (WiFi.status() == WL_CONNECTED) {
|
if (WiFi.status() == WL_CONNECTED) {
|
||||||
if (!udp_busy) {
|
if (!udp_busy) {
|
||||||
String line_to_send = "iotm;" + chipID + ";" + jsonRead(configSetup, "name");
|
String line_to_send = "iotm;" + chipID + ";" + jsonReadStr(configSetup, "name");
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
Udp.beginPacketMulticast(udp_multicastIP, udp_port, WiFi.localIP());
|
Udp.beginPacketMulticast(udp_multicastIP, udp_port, WiFi.localIP());
|
||||||
Udp.write(line_to_send.c_str());
|
Udp.write(line_to_send.c_str());
|
||||||
@@ -69,7 +69,7 @@ void UDP_init() {
|
|||||||
|
|
||||||
void handleUdp() {
|
void handleUdp() {
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
if (jsonRead(configSetup, "udponoff") == "1") {
|
if (jsonReadStr(configSetup, "udponoff") == "1") {
|
||||||
if (WiFi.status() == WL_CONNECTED) {
|
if (WiFi.status() == WL_CONNECTED) {
|
||||||
int packetSize = Udp.parsePacket();
|
int packetSize = Udp.parsePacket();
|
||||||
if (packetSize) {
|
if (packetSize) {
|
||||||
@@ -100,7 +100,7 @@ void handleUdp_esp32() {
|
|||||||
udp.onPacket([](AsyncUDPPacket packet) {
|
udp.onPacket([](AsyncUDPPacket packet) {
|
||||||
received_udp_line = (char*)packet.data();
|
received_udp_line = (char*)packet.data();
|
||||||
received_ip = packet.remoteIP().toString();
|
received_ip = packet.remoteIP().toString();
|
||||||
if (jsonRead(configSetup, "udponoff") == "1") {
|
if (jsonReadStr(configSetup, "udponoff") == "1") {
|
||||||
|
|
||||||
if (received_udp_line.indexOf("iotm;") >= 0) {
|
if (received_udp_line.indexOf("iotm;") >= 0) {
|
||||||
udp_data_parse = true;
|
udp_data_parse = true;
|
||||||
@@ -122,11 +122,11 @@ void do_udp_data_parse() {
|
|||||||
Serial.print(" ");
|
Serial.print(" ");
|
||||||
Serial.println(received_udp_line);
|
Serial.println(received_udp_line);
|
||||||
if (received_udp_line.indexOf("mqttServer") >= 0) {
|
if (received_udp_line.indexOf("mqttServer") >= 0) {
|
||||||
jsonWriteStr(configSetup, "mqttServer", jsonRead(received_udp_line, "mqttServer"));
|
jsonWriteStr(configSetup, "mqttServer", jsonReadStr(received_udp_line, "mqttServer"));
|
||||||
jsonWriteInt(configSetup, "mqttPort", jsonReadtoInt(received_udp_line, "mqttPort"));
|
jsonWriteInt(configSetup, "mqttPort", jsonReadInt(received_udp_line, "mqttPort"));
|
||||||
jsonWriteStr(configSetup, "mqttPrefix", jsonRead(received_udp_line, "mqttPrefix"));
|
jsonWriteStr(configSetup, "mqttPrefix", jsonReadStr(received_udp_line, "mqttPrefix"));
|
||||||
jsonWriteStr(configSetup, "mqttUser", jsonRead(received_udp_line, "mqttUser"));
|
jsonWriteStr(configSetup, "mqttUser", jsonReadStr(received_udp_line, "mqttUser"));
|
||||||
jsonWriteStr(configSetup, "mqttPass", jsonRead(received_udp_line, "mqttPass"));
|
jsonWriteStr(configSetup, "mqttPass", jsonReadStr(received_udp_line, "mqttPass"));
|
||||||
saveConfig();
|
saveConfig();
|
||||||
Serial.println("[V] new mqtt setting received from udp and saved");
|
Serial.println("[V] new mqtt setting received from udp and saved");
|
||||||
mqtt_connection = true;
|
mqtt_connection = true;
|
||||||
@@ -145,15 +145,15 @@ void add_dev_in_list(String fileName, String id, String dev_name, String ip) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void send_mqtt_to_udp() {
|
void send_mqtt_to_udp() {
|
||||||
if (jsonRead(configSetup, "udponoff") == "1") {
|
if (jsonReadStr(configSetup, "udponoff") == "1") {
|
||||||
if (WiFi.status() == WL_CONNECTED) {
|
if (WiFi.status() == WL_CONNECTED) {
|
||||||
udp_busy = true;
|
udp_busy = true;
|
||||||
String mqtt_data = "{}";
|
String mqtt_data = "{}";
|
||||||
jsonWriteStr(mqtt_data, "mqttServer", jsonRead(configSetup, "mqttServer"));
|
jsonWriteStr(mqtt_data, "mqttServer", jsonReadStr(configSetup, "mqttServer"));
|
||||||
jsonWriteInt(mqtt_data, "mqttPort", jsonReadtoInt(configSetup, "mqttPort"));
|
jsonWriteInt(mqtt_data, "mqttPort", jsonReadInt(configSetup, "mqttPort"));
|
||||||
jsonWriteStr(mqtt_data, "mqttPrefix", jsonRead(configSetup, "mqttPrefix"));
|
jsonWriteStr(mqtt_data, "mqttPrefix", jsonReadStr(configSetup, "mqttPrefix"));
|
||||||
jsonWriteStr(mqtt_data, "mqttUser", jsonRead(configSetup, "mqttUser"));
|
jsonWriteStr(mqtt_data, "mqttUser", jsonReadStr(configSetup, "mqttUser"));
|
||||||
jsonWriteStr(mqtt_data, "mqttPass", jsonRead(configSetup, "mqttPass"));
|
jsonWriteStr(mqtt_data, "mqttPass", jsonReadStr(configSetup, "mqttPass"));
|
||||||
Serial.println(mqtt_data);
|
Serial.println(mqtt_data);
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
Udp.beginPacketMulticast(udp_multicastIP, udp_port, WiFi.localIP());
|
Udp.beginPacketMulticast(udp_multicastIP, udp_port, WiFi.localIP());
|
||||||
|
|||||||
Reference in New Issue
Block a user