diff --git a/include/Global.h b/include/Global.h index 31084b2c..19c43cfa 100644 --- a/include/Global.h +++ b/include/Global.h @@ -61,9 +61,9 @@ extern AsyncWebServer server; extern boolean just_load; extern const char *hostName; -extern String configSetup; -extern String configJson; -extern String optionJson; +extern String configSetupJson; //все настройки +extern String configLiveJson; //все данные с датчиков (связан с mqtt) +extern String configOptionJson; //для трансфера extern String chipID; extern String prex; @@ -74,7 +74,8 @@ extern String order_loop; extern String analog_value_names_list; extern int enter_to_analog_counter; -extern String level_value_name; +extern String levelPr_value_name; +extern String ultrasonicCm_value_name; extern String dhtT_value_name; extern String dhtH_value_name; @@ -228,8 +229,8 @@ extern void text(); extern void textSet(); extern void mqttOrderSend(); extern void httpOrderSend(); -extern void firmware(); -extern void update_firmware(); +extern void firmwareVersion(); +extern void firmwareUpdate(); extern void Scenario_init(); extern void txtExecution(String file); extern void stringExecution(String str); @@ -295,9 +296,11 @@ extern String add_set(String param_name); // И как раз тут хорошо просто в Sensors.h это пихать - а не в один здоровенный ФАЙЛ extern void sensors_init(); -extern void level(); +extern void levelPr(); +extern void ultrasonicCm(); extern void level_reading(); + extern void analog(); extern void analog_reading1(); extern void analog_reading2(); diff --git a/include/push_pushingbox.h b/include/push_pushingbox.h index a96626ef..e7b92c34 100644 --- a/include/push_pushingbox.h +++ b/include/push_pushingbox.h @@ -5,7 +5,7 @@ void Push_init() { server.on("/pushingboxDate", HTTP_GET, [](AsyncWebServerRequest* request) { if (request->hasArg("pushingbox_id")) { - jsonWriteStr(configSetup, "pushingbox_id", request->getParam("pushingbox_id")->value()); + jsonWriteStr(configSetupJson, "pushingbox_id", request->getParam("pushingbox_id")->value()); } saveConfig(); @@ -23,7 +23,7 @@ inline void pushControl() { static String body_old; const char* logServer = "api.pushingbox.com"; - String deviceId = jsonReadStr(configSetup, "pushingbox_id"); + String deviceId = jsonReadStr(configSetupJson, "pushingbox_id"); Serial.println("- starting client"); diff --git a/src/Cmd.cpp b/src/Cmd.cpp index c9a0c566..2390ccb7 100644 --- a/src/Cmd.cpp +++ b/src/Cmd.cpp @@ -2,7 +2,8 @@ #include "push_pushingbox.h" -void CMD_init() { +void CMD_init() +{ sCmd.addCommand("button", button); sCmd.addCommand("buttonSet", buttonSet); sCmd.addCommand("buttonChange", buttonChange); @@ -19,7 +20,8 @@ void CMD_init() { sCmd.addCommand("analog", analog); #endif #ifdef level_enable - sCmd.addCommand("level", level); + sCmd.addCommand("levelPr", levelPr); + sCmd.addCommand("ultrasonicCm", ultrasonicCm); #endif #ifdef dallas_enable sCmd.addCommand("dallas", dallas); @@ -82,13 +84,14 @@ void CMD_init() { sCmd.addCommand("push", pushControl); #endif - sCmd.addCommand("update", update_firmware); - sCmd.addCommand("firmware", firmware); + sCmd.addCommand("firmwareUpdate", firmwareUpdate); + sCmd.addCommand("firmwareVersion", firmwareVersion); handle_time_init(); } -void button() { +void button() +{ String button_number = sCmd.next(); String button_param = sCmd.next(); String widget_name = sCmd.next(); @@ -96,26 +99,31 @@ void button() { String start_state = sCmd.next(); String page_number = sCmd.next(); - jsonWriteStr(optionJson, "button_param" + button_number, button_param); - jsonWriteStr(configJson, "button" + button_number, start_state); + jsonWriteStr(configOptionJson, "button_param" + button_number, button_param); + jsonWriteStr(configLiveJson, "button" + button_number, start_state); - if (isDigitStr(button_param)) { + if (isDigitStr(button_param)) + { pinMode(button_param.toInt(), OUTPUT); digitalWrite(button_param.toInt(), start_state.toInt()); } - if (button_param == "scenario") { - jsonWriteStr(configSetup, "scenario", start_state); + if (button_param == "scenario") + { + jsonWriteStr(configSetupJson, "scenario", start_state); Scenario_init(); saveConfig(); } - if (button_param.indexOf("line") != -1) { + if (button_param.indexOf("line") != -1) + { String str = button_param; - while (str.length() != 0) { - if (str == "") return; - String tmp = selectToMarker(str, ","); //line1, - String number = deleteBeforeDelimiter(tmp, "e"); //1, + while (str.length() != 0) + { + if (str == "") + return; + String tmp = selectToMarker(str, ","); //line1, + String number = deleteBeforeDelimiter(tmp, "e"); //1, number.replace(",", ""); Serial.println(number); int number_int = number.toInt(); @@ -126,27 +134,33 @@ void button() { createWidget(widget_name, page_name, page_number, "widgets/widget.toggle.json", "button" + button_number); } -void buttonSet() { +void buttonSet() +{ String button_number = sCmd.next(); String button_state = sCmd.next(); - String button_param = jsonReadStr(optionJson, "button_param" + button_number); + String button_param = jsonReadStr(configOptionJson, "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()); } - if (button_param == "scenario") { - jsonWriteStr(configSetup, "scenario", button_state); + if (button_param == "scenario") + { + jsonWriteStr(configSetupJson, "scenario", button_state); Scenario_init(); saveConfig(); } - if (button_param.indexOf("line") != -1) { + if (button_param.indexOf("line") != -1) + { String str = button_param; - while (str.length() != 0) { - if (str == "") return; - String tmp = selectToMarker(str, ","); //line1, - String number = deleteBeforeDelimiter(tmp, "e"); //1, + while (str.length() != 0) + { + if (str == "") + return; + String tmp = selectToMarker(str, ","); //line1, + String number = deleteBeforeDelimiter(tmp, "e"); //1, number.replace(",", ""); Serial.println(number); int number_int = number.toInt(); @@ -157,37 +171,44 @@ void buttonSet() { eventGen("button", button_number); - jsonWriteStr(configJson, "button" + button_number, button_state); + jsonWriteStr(configLiveJson, "button" + button_number, button_state); sendSTATUS("button" + button_number, button_state); } -void buttonChange() { +void buttonChange() +{ String button_number = sCmd.next(); - String current_state = jsonReadStr(configJson, "button" + button_number); - if (current_state == "1") { + String current_state = jsonReadStr(configLiveJson, "button" + button_number); + if (current_state == "1") + { current_state = "0"; - } else if (current_state == "0") { + } + else if (current_state == "0") + { current_state = "1"; } order_loop += "buttonSet " + button_number + " " + current_state + ","; - jsonWriteStr(configJson, "button" + button_number, current_state); + jsonWriteStr(configLiveJson, "button" + button_number, current_state); sendSTATUS("button" + button_number, current_state); } -void pinSet() { +void pinSet() +{ String pin_number = sCmd.next(); String pin_state = sCmd.next(); pinMode(pin_number.toInt(), OUTPUT); digitalWrite(pin_number.toInt(), pin_state.toInt()); } -void pinChange() { +void pinChange() +{ String pin_number = sCmd.next(); pinMode(pin_number.toInt(), OUTPUT); digitalWrite(pin_number.toInt(), !digitalRead(pin_number.toInt())); } -void pwm() { +void pwm() +{ // TODO Unused // static boolean flag = true; String pwm_number = sCmd.next(); @@ -199,29 +220,31 @@ void pwm() { String page_number = sCmd.next(); uint8_t pwm_pin_int = pwm_pin.toInt(); - jsonWriteStr(optionJson, "pwm_pin" + pwm_number, pwm_pin); + jsonWriteStr(configOptionJson, "pwm_pin" + pwm_number, pwm_pin); pinMode(pwm_pin_int, INPUT); analogWrite(pwm_pin_int, start_state.toInt()); - jsonWriteStr(configJson, "pwm" + pwm_number, start_state); + jsonWriteStr(configLiveJson, "pwm" + pwm_number, start_state); createWidget(widget_name, page_name, page_number, "widgets/widget.range.json", "pwm" + pwm_number); } -void pwmSet() { +void pwmSet() +{ String pwm_number = sCmd.next(); String pwm_state = sCmd.next(); int pwm_state_int = pwm_state.toInt(); - int pin = jsonReadInt(optionJson, "pwm_pin" + pwm_number); + int pin = jsonReadInt(configOptionJson, "pwm_pin" + pwm_number); analogWrite(pin, pwm_state_int); eventGen("pwm", pwm_number); - jsonWriteStr(configJson, "pwm" + pwm_number, pwm_state); + jsonWriteStr(configLiveJson, "pwm" + pwm_number, pwm_state); sendSTATUS("pwm" + pwm_number, pwm_state); } //================================================================================================================== //==========================================Модуль физической кнопки================================================ -void switch_() { +void switch_() +{ String switch_number = sCmd.next(); String switch_pin = sCmd.next(); String switch_delay = sCmd.next(); @@ -231,27 +254,33 @@ void switch_() { but[switch_number.toInt()] = true; } -void handleButton() { +void handleButton() +{ static uint8_t switch_number = 1; - if (but[switch_number]) { + if (but[switch_number]) + { buttons[switch_number].update(); - if (buttons[switch_number].fell()) { + if (buttons[switch_number].fell()) + { eventGen("switch", String(switch_number)); - jsonWriteStr(configJson, "switch" + String(switch_number), "1"); + jsonWriteStr(configLiveJson, "switch" + String(switch_number), "1"); } - if (buttons[switch_number].rose()) { + if (buttons[switch_number].rose()) + { eventGen("switch", String(switch_number)); - jsonWriteStr(configJson, "switch" + String(switch_number), "0"); + jsonWriteStr(configLiveJson, "switch" + String(switch_number), "0"); } } switch_number++; - if (switch_number == NUM_BUTTONS) switch_number = 0; + if (switch_number == NUM_BUTTONS) + switch_number = 0; } -void inputDigit() { +void inputDigit() +{ String value_name = sCmd.next(); String number = value_name.substring(5); String widget_name = sCmd.next(); @@ -260,18 +289,20 @@ void inputDigit() { page_name.replace("#", " "); String start_state = sCmd.next(); String page_number = sCmd.next(); - jsonWriteStr(configJson, "digit" + number, start_state); + jsonWriteStr(configLiveJson, "digit" + number, start_state); createWidget(widget_name, page_name, page_number, "widgets/widget.inputNum.json", "digit" + number); } -void digitSet() { +void digitSet() +{ String number = sCmd.next(); String value = sCmd.next(); - jsonWriteStr(configJson, "digit" + number, value); + jsonWriteStr(configLiveJson, "digit" + number, value); sendSTATUS("digit" + number, value); } -void inputTime() { +void inputTime() +{ String value_name = sCmd.next(); String number = value_name.substring(4); String widget_name = sCmd.next(); @@ -280,30 +311,33 @@ void inputTime() { page_name.replace("#", " "); String start_state = sCmd.next(); String page_number = sCmd.next(); - jsonWriteStr(configJson, "time" + number, start_state); + jsonWriteStr(configLiveJson, "time" + number, start_state); createWidget(widget_name, page_name, page_number, "widgets/widget.inputTime.json", "time" + number); } -void timeSet() { +void timeSet() +{ String number = sCmd.next(); String value = sCmd.next(); - jsonWriteStr(configJson, "time" + number, value); + jsonWriteStr(configLiveJson, "time" + number, value); sendSTATUS("time" + number, value); } -void handle_time_init() { +void handle_time_init() +{ ts.add( - TIME, 1000, [&](void*) { + TIME, 1000, [&](void *) { String tmp = GetTime(); - jsonWriteStr(configJson, "time", tmp); + jsonWriteStr(configLiveJson, "time", tmp); tmp.replace(":", "-"); - jsonWriteStr(configJson, "timenow", tmp); + jsonWriteStr(configLiveJson, "timenow", tmp); eventGen("timenow", ""); }, nullptr, true); } -void text() { +void text() +{ String number = sCmd.next(); String widget_name = sCmd.next(); String page_name = sCmd.next(); @@ -312,12 +346,14 @@ void text() { createWidget(widget_name, page_name, page_number, "widgets/widget.anyData.json", "text" + number); } -void textSet() { +void textSet() +{ String number = sCmd.next(); String text = sCmd.next(); text.replace("_", " "); - if (text.indexOf("-time") >= 0) { + if (text.indexOf("-time") >= 0) + { text.replace("-time", ""); text.replace("#", " "); String time = GetTime(); @@ -325,44 +361,50 @@ void textSet() { text = text + " " + GetDataDigital() + " " + time; } - jsonWriteStr(configJson, "text" + number, text); + jsonWriteStr(configLiveJson, "text" + number, text); sendSTATUS("text" + number, text); } #ifdef stepper_enable //stepper 1 12 13 -void stepper() { +void stepper() +{ String stepper_number = sCmd.next(); String pin_step = sCmd.next(); String pin_dir = sCmd.next(); - jsonWriteStr(optionJson, "stepper" + stepper_number, pin_step + " " + pin_dir); + jsonWriteStr(configOptionJson, "stepper" + stepper_number, pin_step + " " + pin_dir); pinMode(pin_step.toInt(), OUTPUT); pinMode(pin_dir.toInt(), OUTPUT); } //stepperSet 1 100 5 -void stepperSet() { +void stepperSet() +{ String stepper_number = sCmd.next(); String steps = sCmd.next(); - jsonWriteStr(optionJson, "steps" + stepper_number, steps); + jsonWriteStr(configOptionJson, "steps" + stepper_number, steps); String stepper_speed = sCmd.next(); - String pin_step = selectToMarker(jsonReadStr(optionJson, "stepper" + stepper_number), " "); - String pin_dir = deleteBeforeDelimiter(jsonReadStr(optionJson, "stepper" + stepper_number), " "); + String pin_step = selectToMarker(jsonReadStr(configOptionJson, "stepper" + stepper_number), " "); + String pin_dir = deleteBeforeDelimiter(jsonReadStr(configOptionJson, "stepper" + stepper_number), " "); Serial.println(pin_step); Serial.println(pin_dir); - if (steps.toInt() > 0) digitalWrite(pin_dir.toInt(), HIGH); - if (steps.toInt() < 0) digitalWrite(pin_dir.toInt(), LOW); - if (stepper_number == "1") { + if (steps.toInt() > 0) + digitalWrite(pin_dir.toInt(), HIGH); + if (steps.toInt() < 0) + digitalWrite(pin_dir.toInt(), LOW); + if (stepper_number == "1") + { ts.add( - STEPPER1, stepper_speed.toInt(), [&](void*) { - int steps_int = abs(jsonReadInt(optionJson, "steps1") * 2); + STEPPER1, stepper_speed.toInt(), [&](void *) { + int steps_int = abs(jsonReadInt(configOptionJson, "steps1") * 2); static int count; count++; - String pin_step = selectToMarker(jsonReadStr(optionJson, "stepper1"), " "); + String pin_step = selectToMarker(jsonReadStr(configOptionJson, "stepper1"), " "); digitalWrite(pin_step.toInt(), !digitalRead(pin_step.toInt())); yield(); - if (count > steps_int) { + if (count > steps_int) + { digitalWrite(pin_step.toInt(), LOW); ts.remove(STEPPER1); count = 0; @@ -370,16 +412,18 @@ void stepperSet() { }, nullptr, true); } - if (stepper_number == "2") { + if (stepper_number == "2") + { ts.add( - STEPPER2, stepper_speed.toInt(), [&](void*) { - int steps_int = abs(jsonReadInt(optionJson, "steps2") * 2); + STEPPER2, stepper_speed.toInt(), [&](void *) { + int steps_int = abs(jsonReadInt(configOptionJson, "steps2") * 2); static int count; count++; - String pin_step = selectToMarker(jsonReadStr(optionJson, "stepper2"), " "); + String pin_step = selectToMarker(jsonReadStr(configOptionJson, "stepper2"), " "); digitalWrite(pin_step.toInt(), !digitalRead(pin_step.toInt())); yield(); - if (count > steps_int) { + if (count > steps_int) + { digitalWrite(pin_step.toInt(), LOW); ts.remove(STEPPER2); count = 0; @@ -393,7 +437,8 @@ void stepperSet() { //=================================================================Сервоприводы======================================================================= #ifdef servo_enable //servo 1 13 50 Мой#сервопривод Сервоприводы 0 100 0 180 2 -void servo_() { +void servo_() +{ String servo_number = sCmd.next(); String servo_pin = sCmd.next(); String start_state = sCmd.next(); @@ -409,10 +454,11 @@ void servo_() { String page_number = sCmd.next(); - jsonWriteStr(optionJson, "servo_pin" + servo_number, servo_pin); + jsonWriteStr(configOptionJson, "servo_pin" + servo_number, servo_pin); start_state_int = map(start_state_int, min_value.toInt(), max_value.toInt(), min_deg.toInt(), max_deg.toInt()); - if (servo_number == "1") { + if (servo_number == "1") + { #ifdef ESP8266 myServo1.attach(servo_pin.toInt()); myServo1.write(start_state_int); @@ -423,7 +469,8 @@ void servo_() { #endif } - if (servo_number == "2") { + if (servo_number == "2") + { #ifdef ESP8266 myServo2.attach(servo_pin.toInt()); myServo2.write(start_state_int); @@ -434,31 +481,33 @@ void servo_() { #endif } - jsonWriteStr(optionJson, "s_min_val" + servo_number, min_value); - jsonWriteStr(optionJson, "s_max_val" + servo_number, max_value); - jsonWriteStr(optionJson, "s_min_deg" + servo_number, min_deg); - jsonWriteStr(optionJson, "s_max_deg" + servo_number, max_deg); + jsonWriteStr(configOptionJson, "s_min_val" + servo_number, min_value); + jsonWriteStr(configOptionJson, "s_max_val" + servo_number, max_value); + jsonWriteStr(configOptionJson, "s_min_deg" + servo_number, min_deg); + jsonWriteStr(configOptionJson, "s_max_deg" + servo_number, max_deg); - jsonWriteStr(configJson, "servo" + servo_number, start_state); + jsonWriteStr(configLiveJson, "servo" + servo_number, start_state); createWidgetParam(widget_name, page_name, page_number, "widgets/widget.range.json", "servo" + servo_number, "min", min_value, "max", max_value, "k", "1"); } -void servoSet() { +void servoSet() +{ String servo_number = sCmd.next(); String servo_state = sCmd.next(); int servo_state_int = servo_state.toInt(); // TODO Unused - //int pin = jsonReadInt(optionJson, "servo_pin" + servo_number); + //int pin = jsonReadInt(configOptionJson, "servo_pin" + servo_number); servo_state_int = map(servo_state_int, - jsonReadInt(optionJson, "s_min_val" + servo_number), - jsonReadInt(optionJson, "s_max_val" + servo_number), - jsonReadInt(optionJson, "s_min_deg" + servo_number), - jsonReadInt(optionJson, "s_max_deg" + servo_number)); + jsonReadInt(configOptionJson, "s_min_val" + servo_number), + jsonReadInt(configOptionJson, "s_max_val" + servo_number), + jsonReadInt(configOptionJson, "s_min_deg" + servo_number), + jsonReadInt(configOptionJson, "s_max_deg" + servo_number)); - if (servo_number == "1") { + if (servo_number == "1") + { #ifdef ESP8266 myServo1.write(servo_state_int); #endif @@ -467,7 +516,8 @@ void servoSet() { #endif } - if (servo_number == "2") { + if (servo_number == "2") + { #ifdef ESP8266 myServo2.write(servo_state_int); #endif @@ -478,14 +528,15 @@ void servoSet() { eventGen("servo", servo_number); - jsonWriteStr(configJson, "servo" + servo_number, servo_state); + jsonWriteStr(configLiveJson, "servo" + servo_number, servo_state); sendSTATUS("servo" + servo_number, servo_state); } #endif //==================================================================================================================================================== //===================================================================================serial=========================================================== #ifdef serial_enable -void serialBegin() { +void serialBegin() +{ //String s_speed = sCmd.next(); //String rxPin = sCmd.next(); //String txPin = sCmd.next(); @@ -493,7 +544,8 @@ void serialBegin() { //mySerial.begin(s_speed.toInt()); } -void serialWrite() { +void serialWrite() +{ //String text = sCmd.next(); //mySerial.println(text); } @@ -501,15 +553,17 @@ void serialWrite() { //==================================================================================================================================================== //=================================================Глобальные команды удаленного управления=========================================================== -void mqttOrderSend() { +void mqttOrderSend() +{ String id = sCmd.next(); String order = sCmd.next(); - String all_line = jsonReadStr(configSetup, "mqttPrefix") + "/" + id + "/order"; + String all_line = jsonReadStr(configSetupJson, "mqttPrefix") + "/" + id + "/order"; client_mqtt.publish(all_line.c_str(), order.c_str(), false); } -void httpOrderSend() { +void httpOrderSend() +{ String ip = sCmd.next(); String order = sCmd.next(); order.replace("_", "%20"); @@ -517,36 +571,40 @@ void httpOrderSend() { getURL(url); } -void update_firmware() { - upgrade = true; +void firmwareUpdate() { + upgrade = true; } -void firmware() { - String widget_name = sCmd.next(); - String page_name = sCmd.next(); - String page_number = sCmd.next(); - jsonWriteStr(configJson, "firm1", firmware_version); - choose_widget_and_create(widget_name, page_name, page_number, "any-data", "firm1"); +void firmwareVersion() { + String widget_name = sCmd.next(); + String page_name = sCmd.next(); + String page_number = sCmd.next(); + jsonWriteStr(configLiveJson, "firmver", firmware_version); + choose_widget_and_create(widget_name, page_name, page_number, "any-data", "firmver"); } //============================================================================================================================== //============================выполнение команд (в лупе) по очереди из строки order============================================= -void handleCMD_loop() { - if (order_loop != "") { - String tmp = selectToMarker(order_loop, ","); //выделяем из страки order первую команду rel 5 1, - sCmd.readStr(tmp); //выполняем первую команду +void handleCMD_loop() +{ + if (order_loop != "") + { + String tmp = selectToMarker(order_loop, ","); //выделяем из страки order первую команду rel 5 1, + sCmd.readStr(tmp); //выполняем первую команду Serial.println("[ORDER] => " + order_loop); - order_loop = deleteBeforeDelimiter(order_loop, ","); //осекаем выполненную команду + order_loop = deleteBeforeDelimiter(order_loop, ","); //осекаем выполненную команду } } -void txtExecution(String file) { +void txtExecution(String file) +{ String command_all = readFile(file, 2048) + "\r\n"; command_all.replace("\r\n", "\n"); command_all.replace("\r", "\n"); - while (command_all.length() != 0) { + while (command_all.length() != 0) + { String tmp = selectToMarker(command_all, "\n"); sCmd.readStr(tmp); command_all = deleteBeforeDelimiter(command_all, "\n"); @@ -554,13 +612,15 @@ void txtExecution(String file) { command_all = ""; } -void stringExecution(String str) { +void stringExecution(String str) +{ str = str + "\r\n"; str.replace("\r\n", "\n"); str.replace("\r", "\n"); - while (str.length()) { + while (str.length()) + { String tmp = selectToMarker(str, "\n"); sCmd.readStr(tmp); diff --git a/src/FileSystem.cpp b/src/FileSystem.cpp index 92eb6f31..82c2ca7a 100644 --- a/src/FileSystem.cpp +++ b/src/FileSystem.cpp @@ -6,28 +6,28 @@ void File_system_init() { Serial.println("--------------started----------------"); //-------------------------------------------------------------- SPIFFS.begin(); - configSetup = readFile("config.json", 4096); - configSetup.replace(" ", ""); - configSetup.replace("\r\n", ""); - Serial.println(configSetup); - jsonWriteStr(configJson, "name", jsonReadStr(configSetup, "name")); - jsonWriteStr(configJson, "lang", jsonReadStr(configSetup, "lang")); + configSetupJson = readFile("config.json", 4096); + configSetupJson.replace(" ", ""); + configSetupJson.replace("\r\n", ""); + Serial.println(configSetupJson); + jsonWriteStr(configLiveJson, "name", jsonReadStr(configSetupJson, "name")); + jsonWriteStr(configLiveJson, "lang", jsonReadStr(configSetupJson, "lang")); #ifdef ESP32 uint32_t chipID_u = ESP.getEfuseMac(); chipID = String(chipID_u); - jsonWriteStr(configSetup, "chipID", chipID); + jsonWriteStr(configSetupJson, "chipID", chipID); #endif #ifdef ESP8266 chipID = String(ESP.getChipId()) + "-" + String(ESP.getFlashChipId()); - jsonWriteStr(configSetup, "chipID", chipID); + jsonWriteStr(configSetupJson, "chipID", chipID); Serial.setDebugOutput(0); #endif - jsonWriteStr(configSetup, "firmware_version", firmware_version); + jsonWriteStr(configSetupJson, "firmware_version", firmware_version); - prex = jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID; + prex = jsonReadStr(configSetupJson, "mqttPrefix") + "/" + chipID; Serial.println(chipID); } diff --git a/src/Global.cpp b/src/Global.cpp index ff0f1245..a190e014 100644 --- a/src/Global.cpp +++ b/src/Global.cpp @@ -22,9 +22,9 @@ boolean just_load = true; const char *hostName = "IoT Manager"; // Json -String configSetup = "{}"; -String configJson = "{}"; -String optionJson = "{}"; +String configSetupJson = "{}"; +String configLiveJson = "{}"; +String configOptionJson = "{}"; // Mqtt String chipID = ""; diff --git a/src/Init.cpp b/src/Init.cpp index 2cac31c4..d0a45e8d 100644 --- a/src/Init.cpp +++ b/src/Init.cpp @@ -7,13 +7,13 @@ void All_init() { value = request->getParam("arg")->value(); } if (value == "0") { //выкл сценариев - jsonWriteStr(configSetup, "scenario", value); + jsonWriteStr(configSetupJson, "scenario", value); saveConfig(); Scenario_init(); request->send(200, "text/text", "OK"); } if (value == "1") { //вкл сценариев - jsonWriteStr(configSetup, "scenario", value); + jsonWriteStr(configSetupJson, "scenario", value); saveConfig(); Scenario_init(); request->send(200, "text/text", "OK"); @@ -51,7 +51,7 @@ void Device_init() { analog_value_names_list = ""; enter_to_analog_counter = 0; - level_value_name = ""; + levelPr_value_name = ""; dhtT_value_name = ""; dhtH_value_name = ""; @@ -85,7 +85,7 @@ void Device_init() { } void Scenario_init() { - if (jsonReadStr(configSetup, "scenario") == "1") { + if (jsonReadStr(configSetupJson, "scenario") == "1") { scenario = readFile("firmware.s.txt", 2048); } } @@ -188,19 +188,19 @@ void up_time() { if (ss != 0) { out = "[i] uptime = " + String(ss) + " sec"; - jsonWriteStr(configJson, "uptime", String(ss) + " sec"); + jsonWriteStr(configLiveJson, "uptime", String(ss) + " sec"); } if (mm != 0) { out = "[i] uptime = " + String(mm) + " min"; - jsonWriteStr(configJson, "uptime", String(mm) + " min"); + jsonWriteStr(configLiveJson, "uptime", String(mm) + " min"); } if (hh != 0) { out = "[i] uptime = " + String(hh) + " hours"; - jsonWriteStr(configJson, "uptime", String(hh) + " hours"); + jsonWriteStr(configLiveJson, "uptime", String(hh) + " hours"); } if (dd != 0) { out = "[i] uptime = " + String(dd) + " days"; - jsonWriteStr(configJson, "uptime", String(dd) + " days"); + jsonWriteStr(configLiveJson, "uptime", String(dd) + " days"); } Serial.println(out + ", mqtt_lost_error: " + String(mqtt_lost_error) + ", wifi_lost_error: " + String(wifi_lost_error)); } diff --git a/src/Logging.cpp b/src/Logging.cpp index 996786ce..ac8c9d83 100644 --- a/src/Logging.cpp +++ b/src/Logging.cpp @@ -17,7 +17,7 @@ void logging() { // считаем количество входов в эту функцию enter_to_logging_counter++; //создаем в файловой системе переменную количества точек на графике с отметкой _c что значит count - jsonWriteStr(optionJson, value_name + "_c", maxCount); + jsonWriteStr(configOptionJson, value_name + "_c", maxCount); //создаем график в приложении с топиком _ch /prefix/3234045-1589487/value_name_ch createChart(widget_name, page_name, page_number, "widgets/widget.chart.json", value_name + "_ch", maxCount); @@ -25,7 +25,7 @@ void logging() { ts.add( LOG1, period_min.toInt() * 1000 * 60, [&](void*) { String tmp_buf_1 = selectFromMarkerToMarker(logging_value_names_list, ",", 0); - deleteOldDate("log." + tmp_buf_1 + ".txt", jsonReadInt(optionJson, tmp_buf_1 + "_c"), jsonReadStr(configJson, tmp_buf_1)); + deleteOldDate("log." + tmp_buf_1 + ".txt", jsonReadInt(configOptionJson, tmp_buf_1 + "_c"), jsonReadStr(configLiveJson, tmp_buf_1)); Serial.println("[i] LOGGING for sensor '" + tmp_buf_1 + "' done"); }, nullptr, false); @@ -34,7 +34,7 @@ void logging() { ts.add( LOG2, period_min.toInt() * 1000 * 60, [&](void*) { String tmp_buf_2 = selectFromMarkerToMarker(logging_value_names_list, ",", 1); - deleteOldDate("log." + tmp_buf_2 + ".txt", jsonReadInt(optionJson, tmp_buf_2 + "_c"), jsonReadStr(configJson, tmp_buf_2)); + deleteOldDate("log." + tmp_buf_2 + ".txt", jsonReadInt(configOptionJson, tmp_buf_2 + "_c"), jsonReadStr(configLiveJson, tmp_buf_2)); Serial.println("[i] LOGGING for sensor '" + tmp_buf_2 + "' done"); }, nullptr, false); @@ -43,7 +43,7 @@ void logging() { ts.add( LOG3, period_min.toInt() * 1000 * 60, [&](void*) { String tmp_buf_3 = selectFromMarkerToMarker(logging_value_names_list, ",", 2); - deleteOldDate("log." + tmp_buf_3 + ".txt", jsonReadInt(optionJson, tmp_buf_3 + "_c"), jsonReadStr(configJson, tmp_buf_3)); + deleteOldDate("log." + tmp_buf_3 + ".txt", jsonReadInt(configOptionJson, tmp_buf_3 + "_c"), jsonReadStr(configLiveJson, tmp_buf_3)); Serial.println("[i] LOGGING for sensor '" + tmp_buf_3 + "' done"); }, nullptr, false); @@ -52,7 +52,7 @@ void logging() { ts.add( LOG4, period_min.toInt() * 1000 * 60, [&](void*) { String tmp_buf_4 = selectFromMarkerToMarker(logging_value_names_list, ",", 3); - deleteOldDate("log." + tmp_buf_4 + ".txt", jsonReadInt(optionJson, tmp_buf_4 + "_c"), jsonReadStr(configJson, tmp_buf_4)); + deleteOldDate("log." + tmp_buf_4 + ".txt", jsonReadInt(configOptionJson, tmp_buf_4 + "_c"), jsonReadStr(configLiveJson, tmp_buf_4)); Serial.println("[i] LOGGING for sensor '" + tmp_buf_4 + "' done"); }, nullptr, false); @@ -61,7 +61,7 @@ void logging() { ts.add( LOG5, period_min.toInt() * 1000 * 60, [&](void*) { String tmp_buf_5 = selectFromMarkerToMarker(logging_value_names_list, ",", 4); - deleteOldDate("log." + tmp_buf_5 + ".txt", jsonReadInt(optionJson, tmp_buf_5 + "_c"), jsonReadStr(configJson, tmp_buf_5)); + deleteOldDate("log." + tmp_buf_5 + ".txt", jsonReadInt(configOptionJson, tmp_buf_5 + "_c"), jsonReadStr(configLiveJson, tmp_buf_5)); Serial.println("[i] LOGGING for sensor '" + tmp_buf_5 + "' done"); }, nullptr, false); diff --git a/src/Mqtt.cpp b/src/Mqtt.cpp index feb78d41..7acbcf16 100644 --- a/src/Mqtt.cpp +++ b/src/Mqtt.cpp @@ -32,20 +32,20 @@ void MQTT_init() { server.on("/mqttSave", HTTP_GET, [](AsyncWebServerRequest* request) { if (request->hasArg("mqttServer")) { - jsonWriteStr(configSetup, "mqttServer", request->getParam("mqttServer")->value()); + jsonWriteStr(configSetupJson, "mqttServer", request->getParam("mqttServer")->value()); } if (request->hasArg("mqttPort")) { int port = (request->getParam("mqttPort")->value()).toInt(); - jsonWriteInt(configSetup, "mqttPort", port); + jsonWriteInt(configSetupJson, "mqttPort", port); } if (request->hasArg("mqttPrefix")) { - jsonWriteStr(configSetup, "mqttPrefix", request->getParam("mqttPrefix")->value()); + jsonWriteStr(configSetupJson, "mqttPrefix", request->getParam("mqttPrefix")->value()); } if (request->hasArg("mqttUser")) { - jsonWriteStr(configSetup, "mqttUser", request->getParam("mqttUser")->value()); + jsonWriteStr(configSetupJson, "mqttUser", request->getParam("mqttUser")->value()); } if (request->hasArg("mqttPass")) { - jsonWriteStr(configSetup, "mqttPass", request->getParam("mqttPass")->value()); + jsonWriteStr(configSetupJson, "mqttPass", request->getParam("mqttPass")->value()); } saveConfig(); mqtt_connection = true; @@ -79,21 +79,21 @@ void handleMQTT() { boolean MQTT_Connecting() { bool res = false; - String mqtt_server = jsonReadStr(configSetup, "mqttServer"); + String mqtt_server = jsonReadStr(configSetupJson, "mqttServer"); if ((mqtt_server != "")) { Serial.println("[E] Lost MQTT connection, start reconnecting"); led_blink("fast"); - client_mqtt.setServer(mqtt_server.c_str(), jsonReadInt(configSetup, "mqttPort")); + client_mqtt.setServer(mqtt_server.c_str(), jsonReadInt(configSetupJson, "mqttPort")); if (WiFi.status() == WL_CONNECTED) { if (!client_mqtt.connected()) { Serial.println("[V] Connecting to MQTT server commenced"); - if (client_mqtt.connect(chipID.c_str(), jsonReadStr(configSetup, "mqttUser").c_str(), jsonReadStr(configSetup, "mqttPass").c_str())) { + if (client_mqtt.connect(chipID.c_str(), jsonReadStr(configSetupJson, "mqttUser").c_str(), jsonReadStr(configSetupJson, "mqttPass").c_str())) { Serial.println("[VV] MQTT connected"); led_blink("off"); client_mqtt.setCallback(callback); - client_mqtt.subscribe(jsonReadStr(configSetup, "mqttPrefix").c_str()); // Для приема получения HELLOW и подтверждения связи - client_mqtt.subscribe((jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/+/control").c_str()); // Подписываемся на топики control - client_mqtt.subscribe((jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/order").c_str()); // Подписываемся на топики order + client_mqtt.subscribe(jsonReadStr(configSetupJson, "mqttPrefix").c_str()); // Для приема получения HELLOW и подтверждения связи + client_mqtt.subscribe((jsonReadStr(configSetupJson, "mqttPrefix") + "/" + chipID + "/+/control").c_str()); // Подписываемся на топики control + client_mqtt.subscribe((jsonReadStr(configSetupJson, "mqttPrefix") + "/" + chipID + "/order").c_str()); // Подписываемся на топики order Serial.println("[V] Callback set, subscribe done"); res = true; } else { @@ -157,7 +157,7 @@ void outcoming_date() { } boolean sendMQTT(String end_of_topik, String data) { - String topik = jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/" + end_of_topik; + String topik = jsonReadStr(configSetupJson, "mqttPrefix") + "/" + chipID + "/" + end_of_topik; boolean send_status = client_mqtt.beginPublish(topik.c_str(), data.length(), false); client_mqtt.print(data); client_mqtt.endPublish(); @@ -165,7 +165,7 @@ boolean sendMQTT(String end_of_topik, String data) { } boolean sendCHART(String topik, String data) { - topik = jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/" + topik + "/" + "status"; + topik = jsonReadStr(configSetupJson, "mqttPrefix") + "/" + chipID + "/" + topik + "/" + "status"; boolean send_status = client_mqtt.beginPublish(topik.c_str(), data.length(), false); client_mqtt.print(data); client_mqtt.endPublish(); @@ -173,14 +173,14 @@ boolean sendCHART(String topik, String data) { } void sendSTATUS(String topik, String state) { - topik = jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/" + topik + "/" + "status"; + topik = jsonReadStr(configSetupJson, "mqttPrefix") + "/" + chipID + "/" + topik + "/" + "status"; String json_ = "{}"; jsonWriteStr(json_, "status", state); client_mqtt.publish(topik.c_str(), json_.c_str(), false); } void sendCONTROL(String id, String topik, String state) { - String all_line = jsonReadStr(configSetup, "mqttPrefix") + "/" + id + "/" + topik + "/control"; + String all_line = jsonReadStr(configSetupJson, "mqttPrefix") + "/" + id + "/" + topik + "/control"; client_mqtt.publish(all_line.c_str(), state.c_str(), false); } @@ -227,7 +227,7 @@ void sendAllWigets() { //=====================================================ОТПРАВЛЯЕМ ДАННЫЕ В ВИДЖЕТЫ ПРИ ОБНОВЛЕНИИ СТРАНИЦЫ======================================================== void sendAllData() { //берет строку json и ключи превращает в топики а значения колючей в них посылает - String current_config = configJson; //{"name":"MODULES","lang":"","ip":"192.168.43.60","DS":"34.00","rel1":"1","rel2":"1"} + String current_config = configLiveJson; //{"name":"MODULES","lang":"","ip":"192.168.43.60","DS":"34.00","rel1":"1","rel2":"1"} getMemoryLoad("[i] after send all date"); current_config.replace("{", ""); current_config.replace("}", ""); //"name":"MODULES","lang":"","ip":"192.168.43.60","DS":"34.00","rel1":"1","rel2":"1" @@ -289,7 +289,7 @@ String stateMQTT() { /*void scenario_devices_topiks_subscribe() { //SCENARIO ANALOG > 5 800324-1458415 rel1 0 - if (jsonReadStr(configSetup, "scenario") == "1") { + if (jsonReadStr(configSetupJson, "scenario") == "1") { //String all_text = readFile("firmware.s.txt", 1024) + "\r\n"; String all_text = scenario + "\r\n"; all_text.replace("\r\n", "\n"); @@ -298,7 +298,7 @@ String stateMQTT() { String line_ = selectToMarker (all_text, "\n"); String id = selectFromMarkerToMarker(line_, " ", 4); if (id != "not found") { - client_mqtt.subscribe((jsonReadStr(configSetup, "mqttPrefix") + "/" + id + "/+/status").c_str(), 0); + client_mqtt.subscribe((jsonReadStr(configSetupJson, "mqttPrefix") + "/" + id + "/+/status").c_str(), 0); Serial.println("subscribed to device, id: " + id); } all_text = deleteBeforeDelimiter(all_text, "\n"); @@ -308,7 +308,7 @@ String stateMQTT() { */ /*void scenario_devices_test_msg_send() { - if (jsonReadStr(configSetup, "scenario") == "1") { + if (jsonReadStr(configSetupJson, "scenario") == "1") { String all_text = scenario + "\r\n"; all_text.replace("\r\n", "\n"); @@ -318,7 +318,7 @@ String stateMQTT() { String id = selectFromMarkerToMarker(line_, " ", 4); if (id != "not found") { //Serial.println(); - Serial.println(client_mqtt.publish ((jsonReadStr(configSetup, "mqttPrefix") + "/" + id).c_str(), "CHECK", true)); + Serial.println(client_mqtt.publish ((jsonReadStr(configSetupJson, "mqttPrefix") + "/" + id).c_str(), "CHECK", true)); } all_text = deleteBeforeDelimiter(all_text, "\n"); @@ -330,7 +330,7 @@ String stateMQTT() { //----------------------------------------------------------------------------------------------------------------------------------------------- //jsonWriteStr(tmp, "status", "1"); - String current_config = configJson; //{"name":"MODULES","lang":"","ip":"192.168.43.60","DS":"34.00","rel1":"1","rel2":"1"} + String current_config = configLiveJson; //{"name":"MODULES","lang":"","ip":"192.168.43.60","DS":"34.00","rel1":"1","rel2":"1"} current_config.replace("{", ""); current_config.replace("}", ""); //"name":"MODULES","lang":"","ip":"192.168.43.60","DS":"34.00","rel1":"1","rel2":"1" current_config += ","; //"name":"MODULES","lang":"","ip":"192.168.43.60","DS":"34.00","rel1":"1","rel2":"1", diff --git a/src/Scenario.cpp b/src/Scenario.cpp index 12294285..a653dd2b 100644 --- a/src/Scenario.cpp +++ b/src/Scenario.cpp @@ -1,8 +1,8 @@ #include "Global.h" void handleScenario() { - if (jsonReadStr(configSetup, "scenario") == "1") { - if ((jsonReadStr(optionJson, "scenario_status") != "")) { + if (jsonReadStr(configSetupJson, "scenario") == "1") { + if ((jsonReadStr(configOptionJson, "scenario_status") != "")) { int i = 0; String str = scenario; //читаем переменную с сценариями (то что из файла на странице) str += "\n"; @@ -18,7 +18,7 @@ void handleScenario() { //Serial.println(i); String condition = selectToMarker(tmp, "\n"); //выделяем первую строку самого сценария button1 = 1 (условие) String param_name = selectFromMarkerToMarker(condition, " ", 0); - String order = jsonReadStr(optionJson, "scenario_status"); //читаем весь файл событий + String order = jsonReadStr(configOptionJson, "scenario_status"); //читаем весь файл событий String param = selectToMarker(order, ","); //читаем первое событие из файла событий if (param_name == param) { //если поступившее событие равно событию заданному buttonSet1 в файле начинаем его обработку @@ -26,30 +26,30 @@ void handleScenario() { String value = selectFromMarkerToMarker(condition, " ", 2); //читаем значение (1) if (value.indexOf("digit") != -1) { // value = add_set(value); - value = jsonReadStr(configJson, value); + value = jsonReadStr(configLiveJson, value); } if (value.indexOf("time") != -1) { // value = add_set(value); - value = jsonReadStr(configJson, value); + value = jsonReadStr(configLiveJson, value); } boolean flag = false; //если одно из значений совпало то только тогда начинаем выполнять комнады if (sign == "=") { - if (jsonReadStr(configJson, param_name) == value) flag = true; + if (jsonReadStr(configLiveJson, param_name) == value) flag = true; } if (sign == "!=") { - if (jsonReadStr(configJson, param_name) != value) flag = true; + if (jsonReadStr(configLiveJson, param_name) != value) flag = true; } if (sign == "<") { - if (jsonReadStr(configJson, param_name).toInt() < value.toInt()) flag = true; + if (jsonReadStr(configLiveJson, param_name).toInt() < value.toInt()) flag = true; } if (sign == ">") { - if (jsonReadStr(configJson, param_name).toInt() > value.toInt()) flag = true; + if (jsonReadStr(configLiveJson, param_name).toInt() > value.toInt()) flag = true; } if (sign == ">=") { - if (jsonReadStr(configJson, param_name).toInt() >= value.toInt()) flag = true; + if (jsonReadStr(configLiveJson, param_name).toInt() >= value.toInt()) flag = true; } if (sign == "<=") { - if (jsonReadStr(configJson, param_name).toInt() <= value.toInt()) flag = true; + if (jsonReadStr(configLiveJson, param_name).toInt() <= value.toInt()) flag = true; } if (flag) { @@ -64,9 +64,9 @@ void handleScenario() { str = deleteBeforeDelimiter(str, "end\n"); //удаляем первый сценарий //----------------------------------------------------------------------------------------------------------------------- } - String tmp2 = jsonReadStr(optionJson, "scenario_status"); //читаем файл событий + String tmp2 = jsonReadStr(configOptionJson, "scenario_status"); //читаем файл событий tmp2 = deleteBeforeDelimiter(tmp2, ","); //удаляем выполненное событие - jsonWriteStr(optionJson, "scenario_status", tmp2); //записываем обновленный файл событий + jsonWriteStr(configOptionJson, "scenario_status", tmp2); //записываем обновленный файл событий i = 0; } } @@ -74,10 +74,10 @@ void handleScenario() { //событие выглядит как имя плюс set плюс номер: button+Set+1 void eventGen(String event_name, String number) { - if (jsonReadStr(configSetup, "scenario") == "1") { - String tmp = jsonReadStr(optionJson, "scenario_status"); //генерирование события + if (jsonReadStr(configSetupJson, "scenario") == "1") { + String tmp = jsonReadStr(configOptionJson, "scenario_status"); //генерирование события //Serial.println(event_name); - jsonWriteStr(optionJson, "scenario_status", tmp + event_name + number + ","); + jsonWriteStr(configOptionJson, "scenario_status", tmp + event_name + number + ","); } } diff --git a/src/Sensors.cpp b/src/Sensors.cpp index 256c956d..3a27aad4 100644 --- a/src/Sensors.cpp +++ b/src/Sensors.cpp @@ -69,54 +69,79 @@ void sensors_init() { //========================================================================================================================================= //=========================================Модуль измерения уровня в баке================================================================== #ifdef level_enable -//level L 14 12 Вода#в#баке,#% Датчики fill-gauge 125 20 1 -void level() { - 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(); - level_value_name = value_name; - jsonWriteStr(optionJson, "e_lev", empty_level); - jsonWriteStr(optionJson, "f_lev", full_level); - jsonWriteStr(optionJson, "trig", trig); - jsonWriteStr(optionJson, "echo", echo); - pinMode(trig.toInt(), OUTPUT); - pinMode(echo.toInt(), INPUT); - choose_widget_and_create(widget_name, page_name, page_number, type, value_name); - sensors_reading_map[0] = 1; +//levelPr p 14 12 Вода#в#баке,#% Датчики fill-gauge 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); + choose_widget_and_create(widget_name, page_name, page_number, type, value_name); + sensors_reading_map[0] = 1; +} +//ultrasonicCm cm 14 12 Дистанция,#см Датчики fill-gauge 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); + choose_widget_and_create(widget_name, page_name, page_number, type, value_name); + sensors_reading_map[0] = 1; } -void level_reading() { - long duration_; - int distance_cm; - int level; - static int counter; - int trig = jsonReadInt(optionJson, "trig"); - int echo = jsonReadInt(optionJson, "echo"); - digitalWrite(trig, LOW); - delayMicroseconds(2); - digitalWrite(trig, HIGH); - delayMicroseconds(10); - digitalWrite(trig, LOW); - duration_ = pulseIn(echo, HIGH, 30000); // 3000 µs = 50cm // 30000 µs = 5 m - distance_cm = duration_ / 29 / 2; - distance_cm = medianFilter.filtered(distance_cm); //отсечение промахов медианным фильтром - counter++; - if (counter > tank_level_times_to_send) { - counter = 0; - level = map(distance_cm, - jsonReadInt(optionJson, "e_lev"), - jsonReadInt(optionJson, "f_lev"), 0, 100); - jsonWriteInt(configJson, level_value_name, level); - eventGen(level_value_name, ""); - sendSTATUS(level_value_name, String(level)); - Serial.println("[i] sensor '" + level_value_name + "' data: " + String(level)); - } +void ultrasonic_reading() { + long duration_; + int distance_cm; + int level; + static int counter; + int trig = jsonReadInt(configOptionJson, "trig"); + int echo = jsonReadInt(configOptionJson, "echo"); + digitalWrite(trig, LOW); + delayMicroseconds(2); + digitalWrite(trig, HIGH); + delayMicroseconds(10); + digitalWrite(trig, LOW); + duration_ = pulseIn(echo, HIGH, 30000); // 3000 µs = 50cm // 30000 µs = 5 m + distance_cm = duration_ / 29 / 2; + distance_cm = medianFilter.filtered(distance_cm);//отсечение промахов медианным фильтром + counter++; + if (counter > tank_level_times_to_send) { + counter = 0; + level = map(distance_cm, + jsonReadInt(configOptionJson, "e_lev"), + jsonReadInt(configOptionJson, "f_lev"), 0, 100); + + jsonWriteInt(configLiveJson, levelPr_value_name, level); + eventGen (levelPr_value_name, ""); + sendSTATUS(levelPr_value_name, String(level)); + Serial.println("[i] sensor '" + levelPr_value_name + "' data: " + String(level)); + + jsonWriteInt(configLiveJson, ultrasonicCm_value_name, distance_cm); + eventGen (ultrasonicCm_value_name, ""); + sendSTATUS(ultrasonicCm_value_name, String(distance_cm)); + Serial.println("[i] sensor '" + ultrasonicCm_value_name + "' data: " + String(distance_cm)); + } } #endif //========================================================================================================================================= @@ -136,10 +161,10 @@ void analog() { String page_number = sCmd.next(); analog_value_names_list += value_name + ","; enter_to_analog_counter++; - jsonWriteStr(optionJson, value_name + "_st", analog_start); - jsonWriteStr(optionJson, value_name + "_end", analog_end); - jsonWriteStr(optionJson, value_name + "_st_out", analog_start_out); - jsonWriteStr(optionJson, value_name + "_end_out", analog_end_out); + jsonWriteStr(configOptionJson, value_name + "_st", analog_start); + jsonWriteStr(configOptionJson, value_name + "_end", analog_end); + jsonWriteStr(configOptionJson, value_name + "_st_out", analog_start_out); + jsonWriteStr(configOptionJson, value_name + "_end_out", analog_end_out); choose_widget_and_create(widget_name, page_name, page_number, type, value_name); if (enter_to_analog_counter == 1) { sensors_reading_map[1] = 1; @@ -158,11 +183,11 @@ void analog_reading1() { int analog_in = analogRead(A0); #endif int analog = map(analog_in, - jsonReadInt(optionJson, value_name + "_st"), - jsonReadInt(optionJson, value_name + "_end"), - jsonReadInt(optionJson, value_name + "_st_out"), - jsonReadInt(optionJson, value_name + "_end_out")); - jsonWriteInt(configJson, value_name, analog); + 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, ""); sendSTATUS(value_name, String(analog)); Serial.println("[i] sensor '" + value_name + "' data: " + String(analog)); @@ -177,11 +202,11 @@ void analog_reading2() { int analog_in = analogRead(A0); #endif int analog = map(analog_in, - jsonReadInt(optionJson, value_name + "_st"), - jsonReadInt(optionJson, value_name + "_end"), - jsonReadInt(optionJson, value_name + "_st_out"), - jsonReadInt(optionJson, value_name + "_end_out")); - jsonWriteInt(configJson, value_name, analog); + 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, ""); sendSTATUS(value_name, String(analog)); Serial.println("[i] sensor '" + value_name + "' data: " + String(analog)); @@ -210,7 +235,7 @@ void dallas_reading() { float temp = 0; sensors.requestTemperatures(); temp = sensors.getTempCByIndex(0); - jsonWriteStr(configJson, "dallas", String(temp)); + jsonWriteStr(configLiveJson, "dallas", String(temp)); eventGen("dallas", ""); sendSTATUS("dallas", String(temp)); Serial.println("[i] sensor 'dallas' send date " + String(temp)); @@ -250,7 +275,7 @@ void dhtT_reading() { value = dht.getTemperature(); if (String(value) != "nan") { eventGen(dhtT_value_name, ""); - jsonWriteStr(configJson, dhtT_value_name, String(value)); + jsonWriteStr(configLiveJson, dhtT_value_name, String(value)); sendSTATUS(dhtT_value_name, String(value)); Serial.println("[i] sensor '" + dhtT_value_name + "' data: " + String(value)); } @@ -288,7 +313,7 @@ void dhtH_reading() { value = dht.getHumidity(); if (String(value) != "nan") { eventGen(dhtH_value_name, ""); - jsonWriteStr(configJson, dhtH_value_name, String(value)); + jsonWriteStr(configLiveJson, dhtH_value_name, String(value)); sendSTATUS(dhtH_value_name, String(value)); Serial.println("[i] sensor '" + dhtH_value_name + "' data: " + String(value)); } @@ -309,9 +334,9 @@ void dhtP_reading() { if (dht.getStatus() != 0) { sendSTATUS("dhtPerception", String(dht.getStatusString())); } else { - value = dht.computePerception(jsonReadStr(configJson, dhtT_value_name).toFloat(), jsonReadStr(configJson, dhtH_value_name).toFloat(), false); + value = dht.computePerception(jsonReadStr(configLiveJson, dhtT_value_name).toFloat(), jsonReadStr(configLiveJson, dhtH_value_name).toFloat(), false); String final_line = perception(value); - jsonWriteStr(configJson, "dhtPerception", final_line); + jsonWriteStr(configLiveJson, "dhtPerception", final_line); eventGen("dhtPerception", ""); sendSTATUS("dhtPerception", final_line); if (client_mqtt.connected()) { @@ -368,9 +393,9 @@ void dhtC_reading() { if (dht.getStatus() != 0) { sendSTATUS("dhtComfort", String(dht.getStatusString())); } else { - value = dht.getComfortRatio(cf, jsonReadStr(configJson, dhtT_value_name).toFloat(), jsonReadStr(configJson, dhtH_value_name).toFloat(), false); + value = dht.getComfortRatio(cf, jsonReadStr(configLiveJson, dhtT_value_name).toFloat(), jsonReadStr(configLiveJson, dhtH_value_name).toFloat(), false); String final_line = get_comfort_status(cf); - jsonWriteStr(configJson, "dhtComfort", final_line); + jsonWriteStr(configLiveJson, "dhtComfort", final_line); eventGen("dhtComfort", ""); sendSTATUS("dhtComfort", final_line); Serial.println("[i] sensor 'dhtComfort' send date " + final_line); @@ -428,8 +453,8 @@ void dhtD_reading() { if (dht.getStatus() != 0) { sendSTATUS("dhtDewpoint", String(dht.getStatusString())); } else { - value = dht.computeDewPoint(jsonReadStr(configJson, dhtT_value_name).toFloat(), jsonReadStr(configJson, dhtH_value_name).toFloat(), false); - jsonWriteInt(configJson, "dhtDewpoint", value); + value = dht.computeDewPoint(jsonReadStr(configLiveJson, dhtT_value_name).toFloat(), jsonReadStr(configLiveJson, dhtH_value_name).toFloat(), false); + jsonWriteInt(configLiveJson, "dhtDewpoint", value); eventGen("dhtDewpoint", ""); sendSTATUS("dhtDewpoint", String(value)); Serial.println("[i] sensor 'dhtDewpoint' data: " + String(value)); @@ -465,7 +490,7 @@ void bmp280T_reading() { sensors_event_t temp_event, pressure_event; bmp_temp->getEvent(&temp_event); value = temp_event.temperature; - jsonWriteStr(configJson, bmp280T_value_name, String(value)); + jsonWriteStr(configLiveJson, bmp280T_value_name, String(value)); eventGen(bmp280T_value_name, ""); sendSTATUS(bmp280T_value_name, String(value)); Serial.println("[i] sensor '" + bmp280T_value_name + "' data: " + String(value)); @@ -497,7 +522,7 @@ void bmp280P_reading() { bmp_pressure->getEvent(&pressure_event); value = pressure_event.pressure; value = value / 1.333224; - jsonWriteStr(configJson, bmp280P_value_name, String(value)); + jsonWriteStr(configLiveJson, bmp280P_value_name, String(value)); eventGen(bmp280P_value_name, ""); sendSTATUS(bmp280P_value_name, String(value)); Serial.println("[i] sensor '" + bmp280P_value_name + "' data: " + String(value)); @@ -522,7 +547,7 @@ void bme280T() { void bme280T_reading() { float value = 0; value = bme.readTemperature(); - jsonWriteStr(configJson, bme280T_value_name, String(value)); + jsonWriteStr(configLiveJson, bme280T_value_name, String(value)); eventGen(bme280T_value_name, ""); sendSTATUS(bme280T_value_name, String(value)); Serial.println("[i] sensor '" + bme280T_value_name + "' data: " + String(value)); @@ -546,7 +571,7 @@ void bme280P_reading() { float value = 0; value = bme.readPressure(); value = value / 1.333224; - jsonWriteStr(configJson, bme280P_value_name, String(value)); + jsonWriteStr(configLiveJson, bme280P_value_name, String(value)); eventGen(bme280P_value_name, ""); sendSTATUS(bme280P_value_name, String(value)); Serial.println("[i] sensor '" + bme280P_value_name + "' data: " + String(value)); @@ -569,7 +594,7 @@ void bme280H() { void bme280H_reading() { float value = 0; value = bme.readHumidity(); - jsonWriteStr(configJson, bme280H_value_name, String(value)); + jsonWriteStr(configLiveJson, bme280H_value_name, String(value)); eventGen(bme280H_value_name, ""); sendSTATUS(bme280H_value_name, String(value)); Serial.println("[i] sensor '" + bme280H_value_name + "' data: " + String(value)); @@ -592,7 +617,7 @@ void bme280A() { void bme280A_reading() { float value = 0; value = bme.readAltitude(1013.25); - jsonWriteStr(configJson, bme280A_value_name, String(value)); + jsonWriteStr(configLiveJson, bme280A_value_name, String(value)); eventGen(bme280A_value_name, ""); sendSTATUS(bme280A_value_name, String(value)); Serial.println("[i] sensor '" + bme280A_value_name + "' data: " + String(value)); diff --git a/src/TimeUtils.cpp b/src/TimeUtils.cpp index 4f7036d0..b7cda1cc 100644 --- a/src/TimeUtils.cpp +++ b/src/TimeUtils.cpp @@ -3,10 +3,10 @@ void Time_Init() { server.on("/time", HTTP_GET, [](AsyncWebServerRequest* request) { if (request->hasArg("timezone")) { - jsonWriteStr(configSetup, "timezone", request->getParam("timezone")->value()); + jsonWriteStr(configSetupJson, "timezone", request->getParam("timezone")->value()); } if (request->hasArg("ntp")) { - jsonWriteStr(configSetup, "ntp", request->getParam("ntp")->value()); + jsonWriteStr(configSetupJson, "ntp", request->getParam("ntp")->value()); } saveConfig(); reconfigTime(); @@ -29,7 +29,7 @@ void time_check() { void reconfigTime() { if (WiFi.status() == WL_CONNECTED) { - String ntp = jsonReadStr(configSetup, "ntp"); + String ntp = jsonReadStr(configSetupJson, "ntp"); configTime(0, 0, ntp.c_str()); int i = 0; Serial.println("[i] Awaiting for time "); @@ -74,7 +74,7 @@ String GetTimeUnix() { // Получение текущего времени String GetTime() { time_t now = time(nullptr); // получаем время с помощью библиотеки time.h - int zone = 3600 * jsonReadStr(configSetup, "timezone").toInt(); + int zone = 3600 * jsonReadStr(configSetupJson, "timezone").toInt(); now = now + zone; String Time = ""; // Строка для результатов времени Time += ctime(&now); // Преобразуем время в строку формата Thu Jan 19 00:55:35 2017 @@ -85,7 +85,7 @@ String GetTime() { String GetTimeWOsec() { time_t now = time(nullptr); // получаем время с помощью библиотеки time.h - int zone = 3600 * jsonReadStr(configSetup, "timezone").toInt(); + int zone = 3600 * jsonReadStr(configSetupJson, "timezone").toInt(); now = now + zone; String Time = ""; // Строка для результатов времени Time += ctime(&now); // Преобразуем время в строку формата Thu Jan 19 00:55:35 2017 @@ -97,7 +97,7 @@ String GetTimeWOsec() { // Получение даты String GetDate() { time_t now = time(nullptr); // получаем время с помощью библиотеки time.h - int zone = 3600 * jsonReadStr(configSetup, "timezone").toInt(); + int zone = 3600 * jsonReadStr(configSetupJson, "timezone").toInt(); now = now + zone; String Data = ""; // Строка для результатов времени Data += ctime(&now); // Преобразуем время в строку формата Thu Jan 19 00:55:35 2017 diff --git a/src/Timers.cpp b/src/Timers.cpp index 6c249891..73dfe5e9 100644 --- a/src/Timers.cpp +++ b/src/Timers.cpp @@ -3,7 +3,7 @@ void Timer_countdown_init() { ts.add( TIMER_COUNTDOWN, 1000, [&](void*) { - String old_line = jsonReadStr(optionJson, "timers"); + String old_line = jsonReadStr(configOptionJson, "timers"); if (old_line != "") { //Serial.println(old_line); int i = 0; @@ -16,7 +16,7 @@ void Timer_countdown_init() { int time = readTimer(number); if (time == 0) { delTimer(String(number)); - jsonWriteStr(configJson, "timer" + String(number), "0"); + jsonWriteStr(configLiveJson, "timer" + String(number), "0"); eventGen("timer", String(number)); } else { time--; @@ -34,17 +34,17 @@ void timerStart_() { String period_of_time = sCmd.next(); String type = sCmd.next(); if (period_of_time.indexOf("digit") != -1) { - period_of_time = jsonReadStr(configJson, period_of_time); + period_of_time = jsonReadStr(configLiveJson, 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 == "hours") period_of_time = String(period_of_time.toInt() * 60 * 60); addTimer(number, period_of_time); - jsonWriteStr(configJson, "timer" + number, "1"); + jsonWriteStr(configLiveJson, "timer" + number, "1"); } void addTimer(String number, String time) { - String tmp = jsonReadStr(optionJson, "timers"); //1:60,2:120, + String tmp = jsonReadStr(configOptionJson, "timers"); //1:60,2:120, String new_timer = number + ":" + time; int psn1 = tmp.indexOf(number + ":"); //0 ищем позицию таймера который надо заменить if (psn1 != -1) { //если он есть @@ -56,7 +56,7 @@ void addTimer(String number, String time) { } else { //если его нет tmp += new_timer + ","; } - jsonWriteStr(optionJson, "timers", tmp); + jsonWriteStr(configOptionJson, "timers", tmp); //Serial.println("ura"); } @@ -66,18 +66,18 @@ void timerStop_() { } void delTimer(String number) { - String tmp = jsonReadStr(optionJson, "timers"); //1:60,2:120, + String tmp = jsonReadStr(configOptionJson, "timers"); //1:60,2:120, int psn1 = tmp.indexOf(number + ":"); //0 ищем позицию таймера который надо удалить if (psn1 != -1) { //если он есть int psn2 = tmp.indexOf(",", psn1); //4 от этой позиции находим позицию запятой String timer = tmp.substring(psn1, psn2) + ","; //1:60, выделяем таймер который надо удалить tmp.replace(timer, ""); //удаляем таймер - jsonWriteStr(optionJson, "timers", tmp); + jsonWriteStr(configOptionJson, "timers", tmp); } } int readTimer(int number) { - String tmp = jsonReadStr(optionJson, "timers"); //1:60,2:120, + String tmp = jsonReadStr(configOptionJson, "timers"); //1:60,2:120, int psn1 = tmp.indexOf(String(number) + ":"); //0 ищем позицию таймера который надо прочитать String timer; if (psn1 != -1) { //если он есть diff --git a/src/Upgrade.cpp b/src/Upgrade.cpp index 726a8414..e8982117 100644 --- a/src/Upgrade.cpp +++ b/src/Upgrade.cpp @@ -24,7 +24,7 @@ const String getFirmwareUrl() { void initUpgrade() { String last_version = WiFi.status() == WL_CONNECTED ? getURL(getVersionUrl()) : ""; - jsonWriteStr(configSetup, "last_version", last_version); + jsonWriteStr(configSetupJson, "last_version", last_version); Serial.printf("[i] Last firmware version: %s\n", last_version.c_str()); @@ -73,17 +73,17 @@ void do_upgrade_url() { if (upgrade_url) { upgrade_url = false; last_version = getURL(getVersionUrl()); - jsonWriteStr(configSetup, "last_version", last_version); + jsonWriteStr(configSetupJson, "last_version", last_version); } } void upgrade_firmware() { String scenario_for_update; String config_for_update; - String configSetup_for_update; + String configSetupJson_for_update; scenario_for_update = readFile("firmware.s.txt", 4000); config_for_update = readFile("firmware.c.txt", 4000); - configSetup_for_update = configSetup; + configSetupJson_for_update = configSetupJson; Serial.println("Start upgrade SPIFFS, please wait..."); @@ -95,7 +95,7 @@ void upgrade_firmware() { if (ret == HTTP_UPDATE_OK) { writeFile("firmware.s.txt", scenario_for_update); writeFile("firmware.c.txt", config_for_update); - writeFile("config.json", configSetup_for_update); + writeFile("config.json", configSetupJson_for_update); saveConfig(); Serial.println("SPIFFS upgrade done!"); @@ -157,16 +157,16 @@ void do_upgrade() { if (spiffsData != "") { // Если нужно прошить FS String scenario_for_update; String config_for_update; - String configSetup_for_update; + String configSetupJson_for_update; Serial.println(spiffsData); scenario_for_update = readFile("firmware.s.txt", 2048); config_for_update = readFile("config.all.txt", 2048); - configSetup_for_update = configSetup; + configSetupJson_for_update = configSetupJson; ESPhttpUpdate.rebootOnUpdate(false); // Отключим перезагрузку после обновления updateHTTP(spiffsData, true); writeFile("firmware.s.txt", scenario_for_update); writeFile("config.all.txt", config_for_update); - writeFile("config.json", configSetup_for_update); + writeFile("config.json", configSetupJson_for_update); saveConfig(); } diff --git a/src/Web_server.cpp b/src/Web_server.cpp index 3bb2070e..a2f8f602 100644 --- a/src/Web_server.cpp +++ b/src/Web_server.cpp @@ -50,9 +50,9 @@ void Web_server_init() { #endif #ifdef ESP32 - server.addHandler(new SPIFFSEditor(SPIFFS, jsonReadStr(configSetup, "web_login").c_str(), jsonReadStr(configSetup, "web_pass").c_str())); + server.addHandler(new SPIFFSEditor(SPIFFS, jsonReadStr(configSetupJson, "web_login").c_str(), jsonReadStr(configSetupJson, "web_pass").c_str())); #elif defined(ESP8266) - server.addHandler(new SPIFFSEditor(jsonReadStr(configSetup, "web_login").c_str(), jsonReadStr(configSetup, "web_pass").c_str())); + server.addHandler(new SPIFFSEditor(jsonReadStr(configSetupJson, "web_login").c_str(), jsonReadStr(configSetupJson, "web_pass").c_str())); #endif /* server.on("/heap", HTTP_GET, [](AsyncWebServerRequest * request) { @@ -63,7 +63,7 @@ void Web_server_init() { server.serveStatic("/js/", SPIFFS, "/js/").setCacheControl("max-age=31536000"); server.serveStatic("/favicon.ico", SPIFFS, "/favicon.ico").setCacheControl("max-age=31536000"); - server.serveStatic("/", SPIFFS, "/").setDefaultFile("index.htm").setAuthentication(jsonReadStr(configSetup, "web_login").c_str(), jsonReadStr(configSetup, "web_pass").c_str()); + server.serveStatic("/", SPIFFS, "/").setDefaultFile("index.htm").setAuthentication(jsonReadStr(configSetupJson, "web_login").c_str(), jsonReadStr(configSetupJson, "web_pass").c_str()); server.onNotFound([](AsyncWebServerRequest *request) { Serial.printf("NOT_FOUND: "); @@ -130,17 +130,17 @@ void Web_server_init() { server.begin(); - // --------------------Выдаем данные configJson //config.live.json - динамические данные + // --------------------Выдаем данные configLiveJson //config.live.json - динамические данные server.on("/config.live.json", HTTP_GET, [](AsyncWebServerRequest *request) { - request->send(200, "application/json", configJson); + request->send(200, "application/json", configLiveJson); }); - // --------------------Выдаем данные optionJson //config.option.json - данные не являющиеся событиями + // --------------------Выдаем данные configOptionJson //config.option.json - данные не являющиеся событиями server.on("/config.option.json", HTTP_GET, [](AsyncWebServerRequest *request) { - request->send(200, "application/json", optionJson); + request->send(200, "application/json", configOptionJson); }); - // -------------------Выдаем данные configSetup //config.setup.json - для хранения постоянных данных + // -------------------Выдаем данные configSetupJson //config.setup.json - для хранения постоянных данных server.on("/config.setup.json", HTTP_GET, [](AsyncWebServerRequest *request) { - request->send(200, "application/json", configSetup); + request->send(200, "application/json", configSetupJson); }); // ------------------Выполнение команды из запроса diff --git a/src/WiFiUtils.cpp b/src/WiFiUtils.cpp index ffb7b783..18b55510 100644 --- a/src/WiFiUtils.cpp +++ b/src/WiFiUtils.cpp @@ -8,11 +8,11 @@ void WIFI_init() server.on("/ssid", HTTP_GET, [](AsyncWebServerRequest *request) { if (request->hasArg("ssid")) { - jsonWriteStr(configSetup, "ssid", request->getParam("ssid")->value()); + jsonWriteStr(configSetupJson, "ssid", request->getParam("ssid")->value()); } if (request->hasArg("password")) { - jsonWriteStr(configSetup, "password", request->getParam("password")->value()); + jsonWriteStr(configSetupJson, "password", request->getParam("password")->value()); } saveConfig(); // Функция сохранения данных во Flash request->send(200, "text/text", "OK"); // отправляем ответ о выполнении @@ -21,11 +21,11 @@ void WIFI_init() server.on("/ssidap", HTTP_GET, [](AsyncWebServerRequest *request) { if (request->hasArg("ssidAP")) { - jsonWriteStr(configSetup, "ssidAP", request->getParam("ssidAP")->value()); + jsonWriteStr(configSetupJson, "ssidAP", request->getParam("ssidAP")->value()); } if (request->hasArg("passwordAP")) { - jsonWriteStr(configSetup, "passwordAP", request->getParam("passwordAP")->value()); + jsonWriteStr(configSetupJson, "passwordAP", request->getParam("passwordAP")->value()); } saveConfig(); // Функция сохранения данных во Flash request->send(200, "text/text", "OK"); // отправляем ответ о выполнении @@ -35,11 +35,11 @@ void WIFI_init() server.on("/web", HTTP_GET, [](AsyncWebServerRequest *request) { if (request->hasArg("web_login")) { - jsonWriteStr(configSetup, "web_login", request->getParam("web_login")->value()); + jsonWriteStr(configSetupJson, "web_login", request->getParam("web_login")->value()); } if (request->hasArg("web_pass")) { - jsonWriteStr(configSetup, "web_pass", request->getParam("web_pass")->value()); + jsonWriteStr(configSetupJson, "web_pass", request->getParam("web_pass")->value()); } saveConfig(); // Функция сохранения данных во Flash //Web_server_init(); @@ -64,8 +64,8 @@ void ROUTER_Connecting() WiFi.mode(WIFI_STA); byte tries = 20; - String _ssid = jsonReadStr(configSetup, "ssid"); - String _password = jsonReadStr(configSetup, "password"); + String _ssid = jsonReadStr(configSetupJson, "ssid"); + String _password = jsonReadStr(configSetupJson, "password"); //WiFi.persistent(false); if (_ssid == "" && _password == "") @@ -86,7 +86,7 @@ void ROUTER_Connecting() { Serial.println("[E] password is not correct"); tries = 1; - jsonWriteInt(optionJson, "pass_status", 1); + jsonWriteInt(configOptionJson, "pass_status", 1); } Serial.print("."); delay(1000); @@ -104,7 +104,7 @@ void ROUTER_Connecting() Serial.print(WiFi.localIP()); Serial.println(); - jsonWriteStr(configJson, "ip", WiFi.localIP().toString()); + jsonWriteStr(configLiveJson, "ip", WiFi.localIP().toString()); led_blink("off"); } } @@ -116,21 +116,21 @@ bool StartAPMode() WiFi.mode(WIFI_AP); - String _ssidAP = jsonReadStr(configSetup, "ssidAP"); - String _passwordAP = jsonReadStr(configSetup, "passwordAP"); + String _ssidAP = jsonReadStr(configSetupJson, "ssidAP"); + String _passwordAP = jsonReadStr(configSetupJson, "passwordAP"); WiFi.softAP(_ssidAP.c_str(), _passwordAP.c_str()); IPAddress myIP = WiFi.softAPIP(); led_blink("on"); Serial.print("AP IP address: "); Serial.println(myIP); - jsonWriteStr(configJson, "ip", myIP.toString()); + jsonWriteStr(configLiveJson, "ip", myIP.toString()); - if (jsonReadInt(optionJson, "pass_status") != 1) + if (jsonReadInt(configOptionJson, "pass_status") != 1) { ts.add( ROUTER_SEARCHING, 10 * 1000, [&](void *) { Serial.println("->try find router"); - if (RouterFind(jsonReadStr(configSetup, "ssid"))) + if (RouterFind(jsonReadStr(configSetupJson, "ssid"))) { ts.remove(ROUTER_SEARCHING); WiFi.scanDelete(); diff --git a/src/i2c_bus.cpp b/src/i2c_bus.cpp index b48335c6..abf28a9a 100644 --- a/src/i2c_bus.cpp +++ b/src/i2c_bus.cpp @@ -7,10 +7,10 @@ void do_i2c_scanning() { if (tmp == "error") { tmp = i2c_scan(); Serial.println(tmp); - jsonWriteStr(configJson, "i2c", tmp); + jsonWriteStr(configLiveJson, "i2c", tmp); } else { Serial.println(tmp); - jsonWriteStr(configJson, "i2c", tmp); + jsonWriteStr(configLiveJson, "i2c", tmp); } } } diff --git a/src/main.cpp b/src/main.cpp index 60f78de6..a66ac527 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,7 +1,7 @@ #include "Global.h" void saveConfig() { - writeFile("config.json", configSetup); + writeFile("config.json", configSetupJson); } //--------------------Посчитать ----------------------------------------------------------------------------------- @@ -49,7 +49,7 @@ void safeDataToFile(String data, String Folder) { fileName = Folder + "/" + fileName + ".txt"; // addFile(fileName, GetTime() + "/" + data); Serial.println(fileName); - jsonWriteStr(configJson, "test", fileName); + jsonWriteStr(configLiveJson, "test", fileName); } // ------------- Чтение файла в строку ------------------------------------------------------------------------------- @@ -113,7 +113,7 @@ String readFileString(const String& filename, const String& str_to_found) { void sendCONFIG(String topik, String widgetConfig, String key, String date) { yield(); - topik = jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/" + topik + "/status"; + topik = jsonReadStr(configSetupJson, "mqttPrefix") + "/" + chipID + "/" + topik + "/status"; String outer = "{\"widgetConfig\":"; String inner = "{\""; inner = inner + key; diff --git a/src/udp.cpp b/src/udp.cpp index 0ede7729..5832fe22 100644 --- a/src/udp.cpp +++ b/src/udp.cpp @@ -11,11 +11,11 @@ void UDP_init() { value = request->getParam("arg")->value(); } if (value == "0") { - jsonWriteStr(configSetup, "udponoff", value); + jsonWriteStr(configSetupJson, "udponoff", value); request->send(200, "text/text", "ok"); } if (value == "1") { - jsonWriteStr(configSetup, "udponoff", value); + jsonWriteStr(configSetupJson, "udponoff", value); request->send(200, "text/text", "ok"); } if (value == "2") { @@ -33,8 +33,8 @@ void UDP_init() { }); server.on("/name", HTTP_GET, [](AsyncWebServerRequest * request) { if (request->hasArg("arg")) { - jsonWriteStr(configSetup, "name", request->getParam("arg")->value()); - jsonWriteStr(configJson, "name", request->getParam("arg")->value()); + jsonWriteStr(configSetupJson, "name", request->getParam("arg")->value()); + jsonWriteStr(configLiveJson, "name", request->getParam("arg")->value()); saveConfig(); } request->send(200, "text/text", "OK"); @@ -53,10 +53,10 @@ void UDP_init() { udp_period = random(50000, 60000); ts.add(UDP, udp_period, [&](void*) { - if (jsonReadStr(configSetup, "udponoff") == "1") { + if (jsonReadStr(configSetupJson, "udponoff") == "1") { if (WiFi.status() == WL_CONNECTED) { if (!udp_busy) { - String line_to_send = "iotm;" + chipID + ";" + jsonReadStr(configSetup, "name"); + String line_to_send = "iotm;" + chipID + ";" + jsonReadStr(configSetupJson, "name"); #ifdef ESP8266 Udp.beginPacketMulticast(udp_multicastIP, udp_port, WiFi.localIP()); Udp.write(line_to_send.c_str()); @@ -74,7 +74,7 @@ void UDP_init() { void handleUdp() { #ifdef ESP8266 - if (jsonReadStr(configSetup, "udponoff") == "1") { + if (jsonReadStr(configSetupJson, "udponoff") == "1") { if (WiFi.status() == WL_CONNECTED) { int packetSize = Udp.parsePacket(); if (packetSize) { @@ -105,7 +105,7 @@ void handleUdp_esp32() { udp.onPacket([](AsyncUDPPacket packet) { received_udp_line = (char*)packet.data(); received_ip = packet.remoteIP().toString(); - if (jsonReadStr(configSetup, "udponoff") == "1") { + if (jsonReadStr(configSetupJson, "udponoff") == "1") { if (received_udp_line.indexOf("iotm;") >= 0) { udp_data_parse = true; @@ -127,11 +127,11 @@ void do_udp_data_parse() { Serial.print(" "); Serial.println(received_udp_line); if (received_udp_line.indexOf("mqttServer") >= 0) { - jsonWriteStr(configSetup, "mqttServer", jsonReadStr(received_udp_line, "mqttServer")); - jsonWriteInt(configSetup, "mqttPort", jsonReadInt(received_udp_line, "mqttPort")); - jsonWriteStr(configSetup, "mqttPrefix", jsonReadStr(received_udp_line, "mqttPrefix")); - jsonWriteStr(configSetup, "mqttUser", jsonReadStr(received_udp_line, "mqttUser")); - jsonWriteStr(configSetup, "mqttPass", jsonReadStr(received_udp_line, "mqttPass")); + jsonWriteStr(configSetupJson, "mqttServer", jsonReadStr(received_udp_line, "mqttServer")); + jsonWriteInt(configSetupJson, "mqttPort", jsonReadInt(received_udp_line, "mqttPort")); + jsonWriteStr(configSetupJson, "mqttPrefix", jsonReadStr(received_udp_line, "mqttPrefix")); + jsonWriteStr(configSetupJson, "mqttUser", jsonReadStr(received_udp_line, "mqttUser")); + jsonWriteStr(configSetupJson, "mqttPass", jsonReadStr(received_udp_line, "mqttPass")); saveConfig(); Serial.println("[V] new mqtt setting received from udp and saved"); mqtt_connection = true; @@ -150,15 +150,15 @@ void add_dev_in_list(String fileName, String id, String dev_name, String ip) { } void send_mqtt_to_udp() { - if (jsonReadStr(configSetup, "udponoff") == "1") { + if (jsonReadStr(configSetupJson, "udponoff") == "1") { if (WiFi.status() == WL_CONNECTED) { udp_busy = true; String mqtt_data = "{}"; - jsonWriteStr(mqtt_data, "mqttServer", jsonReadStr(configSetup, "mqttServer")); - jsonWriteInt(mqtt_data, "mqttPort", jsonReadInt(configSetup, "mqttPort")); - jsonWriteStr(mqtt_data, "mqttPrefix", jsonReadStr(configSetup, "mqttPrefix")); - jsonWriteStr(mqtt_data, "mqttUser", jsonReadStr(configSetup, "mqttUser")); - jsonWriteStr(mqtt_data, "mqttPass", jsonReadStr(configSetup, "mqttPass")); + jsonWriteStr(mqtt_data, "mqttServer", jsonReadStr(configSetupJson, "mqttServer")); + jsonWriteInt(mqtt_data, "mqttPort", jsonReadInt(configSetupJson, "mqttPort")); + jsonWriteStr(mqtt_data, "mqttPrefix", jsonReadStr(configSetupJson, "mqttPrefix")); + jsonWriteStr(mqtt_data, "mqttUser", jsonReadStr(configSetupJson, "mqttUser")); + jsonWriteStr(mqtt_data, "mqttPass", jsonReadStr(configSetupJson, "mqttPass")); Serial.println(mqtt_data); #ifdef ESP8266 Udp.beginPacketMulticast(udp_multicastIP, udp_port, WiFi.localIP());