diff --git a/Upgrade.ino b/Upgrade.ino index ddd5de95..b5290308 100644 --- a/Upgrade.ino +++ b/Upgrade.ino @@ -15,12 +15,11 @@ void do_upgrade_url() { upgrade_url = false; #ifdef ESP32 last_version = getURL("http://91.204.228.124:1100/update/esp32/version.txt"); - jsonWriteStr(configSetupJson, "last_version", last_version); #endif #ifdef ESP8266 last_version = getURL("http://91.204.228.124:1100/update/esp8266/version.txt"); - jsonWriteStr(configSetupJson, "last_version", last_version); #endif + jsonWriteStr(configSetupJson, "last_version", last_version); } } @@ -66,7 +65,7 @@ void upgrade_firmware() { #endif if (ret == HTTP_UPDATE_OK) { - + Serial.println("BUILD upgrade done!"); Serial.println("Restart ESP...."); ESP.restart(); diff --git a/Web.ino b/Web.ino index 72f3aad6..00022fb4 100644 --- a/Web.ino +++ b/Web.ino @@ -51,34 +51,42 @@ void web_init() { writeFile("firmware.s.txt", readFile("configs/11-analog.s.txt", 2048)); } if (value == "12") { - writeFile("firmware.c.txt", readFile("configs/12-dallas.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/12-dallas.s.txt", 2048)); + writeFile("firmware.c.txt", readFile("configs/12-bmp280.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/12-bmp280.s.txt", 2048)); } if (value == "13") { - writeFile("firmware.c.txt", readFile("configs/13-termostat.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/13-termostat.s.txt", 2048)); + writeFile("firmware.c.txt", readFile("configs/13-bme280.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/13-bme280.s.txt", 2048)); } if (value == "14") { - writeFile("firmware.c.txt", readFile("configs/14-level.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/14-level.s.txt", 2048)); + writeFile("firmware.c.txt", readFile("configs/14-dallas.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/14-dallas.s.txt", 2048)); } if (value == "15") { - writeFile("firmware.c.txt", readFile("configs/15-moution.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/15-moution.s.txt", 2048)); + writeFile("firmware.c.txt", readFile("configs/15-termostat.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/15-termostat.s.txt", 2048)); } if (value == "16") { - writeFile("firmware.c.txt", readFile("configs/16-moution.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/16-moution.s.txt", 2048)); + writeFile("firmware.c.txt", readFile("configs/16-level.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/16-level.s.txt", 2048)); } if (value == "17") { - writeFile("firmware.c.txt", readFile("configs/17-stepper.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/17-stepper.s.txt", 2048)); + writeFile("firmware.c.txt", readFile("configs/17-moution.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/17-moution.s.txt", 2048)); } if (value == "18") { - writeFile("firmware.c.txt", readFile("configs/18-servo.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/18-servo.s.txt", 2048)); + writeFile("firmware.c.txt", readFile("configs/18-moution.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/18-moution.s.txt", 2048)); } if (value == "19") { + writeFile("firmware.c.txt", readFile("configs/19-stepper.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/19-stepper.s.txt", 2048)); + } + if (value == "20") { + writeFile("firmware.c.txt", readFile("configs/20-servo.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/20-servo.s.txt", 2048)); + } + if (value == "21") { writeFile("firmware.c.txt", readFile("configs/firmware.c.txt", 2048)); writeFile("firmware.s.txt", readFile("configs/firmware.s.txt", 2048)); } @@ -112,11 +120,12 @@ void web_init() { request->send(200, "text/text", "OK"); } //-------------------------------------------------------------------------------- - if (request->hasArg("cleanlog")) { #ifdef logging_enable + if (request->hasArg("cleanlog")) { clean_log_date(); -#endif + request->send(200, "text/text", "OK"); } +#endif //==============================udp settings============================================= if (request->hasArg("udponoff")) { value = request->getParam("udponoff")->value(); @@ -199,6 +208,19 @@ void web_init() { if (request->getParam("device")->value() == "ok") ESP.restart(); request->send(200, "text/text", "OK"); } + //-------------------------------------------------------------------------------- + if (request->hasArg("blink")) { + value = request->getParam("blink")->value(); + if (value == "0") { + jsonWriteStr(configSetupJson, "blink", value); + saveConfig(); + } + if (value == "1") { + jsonWriteStr(configSetupJson, "blink", value); + saveConfig(); + } + request->send(200, "text/text", "OK"); + } //==============================mqtt settings============================================= if (request->hasArg("mqttServer")) { jsonWriteStr(configSetupJson, "mqttServer", request->getParam("mqttServer")->value()); @@ -247,9 +269,9 @@ void web_init() { #ifdef push_enable if (request->hasArg("pushingboxid")) { jsonWriteStr(configSetupJson, "pushingboxid", request->getParam("pushingboxid")->value()); + saveConfig(); + request->send(200, "text/text", "ok"); } - saveConfig(); - request->send(200, "text/text", "ok"); #endif //==============================utilities settings============================================= if (request->hasArg("itoc")) { @@ -263,35 +285,65 @@ void web_init() { Serial.print("[i] Last firmware version: "); Serial.println(last_version); String tmp = "{}"; - if (WiFi.status() == WL_CONNECTED) { - if (mb_4_of_memory) { - if (last_version != "") { - if (last_version != "error") { - if (last_version == firmware_version) { - jsonWriteStr(tmp, "title", "Последняя версия прошивки уже установлена."); - jsonWriteStr(tmp, "class", "pop-up"); - } else { - jsonWriteStr(tmp, "title", "Имеется новая версия прошивкиИдет обновление прошивки, после обновления страница перезагрузится автоматически...')\">Установить"); - jsonWriteStr(tmp, "class", "pop-up"); - } - } else { - jsonWriteStr(tmp, "title", "Ошибка... Cервер не найден. Попробуйте позже..."); - jsonWriteStr(tmp, "class", "pop-up"); - } - } else { - jsonWriteStr(tmp, "title", "Нажмите на кнопку \"обновить прошивку\" повторно..."); + int case_of_update; + + if (WiFi.status() != WL_CONNECTED) last_version = "nowifi"; + if (!mb_4_of_memory) last_version = "less"; + + if (last_version == firmware_version) case_of_update = 1; + if (last_version != firmware_version) case_of_update = 2; + if (last_version == "error") case_of_update = 3; + if (last_version == "") case_of_update = 4; + if (last_version == "less") case_of_update = 5; + if (last_version == "nowifi") case_of_update = 6; + if (last_version == "notsupported") case_of_update = 7; + + switch (case_of_update) { + case 1: { + jsonWriteStr(tmp, "title", "Последняя версия прошивки уже установлена."); jsonWriteStr(tmp, "class", "pop-up"); } - } else { - jsonWriteStr(tmp, "title", "Обновление по воздуху не поддерживается, модуль имеет меньше 4 мб памяти..."); - jsonWriteStr(tmp, "class", "pop-up"); - } - } else { - jsonWriteStr(tmp, "title", "Устройство не подключен к роутеру..."); - jsonWriteStr(tmp, "class", "pop-up"); + break; + + case 2: { + jsonWriteStr(tmp, "title", "Имеется новая версия прошивкиИдет обновление прошивки, после обновления страница перезагрузится автоматически...')\">Установить"); + jsonWriteStr(tmp, "class", "pop-up"); + } + break; + + case 3: { + jsonWriteStr(tmp, "title", "Ошибка... Cервер не найден. Попробуйте позже..."); + jsonWriteStr(tmp, "class", "pop-up"); + } + break; + + case 4: { + jsonWriteStr(tmp, "title", "Нажмите на кнопку \"обновить прошивку\" повторно..."); + jsonWriteStr(tmp, "class", "pop-up"); + break; + } + + case 5: { + jsonWriteStr(tmp, "title", "Обновление по воздуху не поддерживается, модуль имеет меньше 4 мб памяти..."); + jsonWriteStr(tmp, "class", "pop-up"); + break; + } + + case 6: { + jsonWriteStr(tmp, "title", "Устройство не подключено к роутеру..."); + jsonWriteStr(tmp, "class", "pop-up"); + break; + } + + case 7: { + jsonWriteStr(tmp, "title", "Обновление на новую версию возможно только через usb..."); + jsonWriteStr(tmp, "class", "pop-up"); + break; + } } request->send(200, "text/text", tmp); }); + server.on("/upgrade", HTTP_GET, [](AsyncWebServerRequest * request) { upgrade = true; String tmp = "{}"; diff --git a/WiFi.ino b/WiFi.ino index dddf59b6..87eb411c 100644 --- a/WiFi.ino +++ b/WiFi.ino @@ -19,8 +19,7 @@ void ROUTER_Connecting() { } // Делаем проверку подключения до тех пор пока счетчик tries // не станет равен нулю или не получим подключение - while (--tries && WiFi.status() != WL_CONNECTED) - { + while (--tries && WiFi.status() != WL_CONNECTED) { if (WiFi.status() == WL_CONNECT_FAILED) { Serial.println("[E] password is not correct"); tries = 1; diff --git a/data/config.json b/data/config.json index bd69a709..589bab8c 100644 --- a/data/config.json +++ b/data/config.json @@ -16,5 +16,6 @@ "pushingboxid": "v7C133E426B0C69E", "weblogin": "admin", "webpass": "admin", - "udponoff": "1" + "udponoff": "1", + "blink":"1" } \ No newline at end of file diff --git a/data/configs/12-bmp280.c.txt b/data/configs/12-bmp280.c.txt new file mode 100644 index 00000000..16956455 --- /dev/null +++ b/data/configs/12-bmp280.c.txt @@ -0,0 +1,6 @@ +bmp280T temp1 0x76 Температура#bmp280 Датчики any-data 1 +bmp280P press1 0x76 Давление#bmp280 Датчики any-data 2 +logging temp1 1 100 Температура Датчики 3 +logging press1 1 100 Давление Датчики 4 + +//Чтение и логгирование датчика bmp280. Датчик подключается к шине i2c (esp8266 - gpio 5, 4) \ No newline at end of file diff --git a/data/configs/12-dallas.s.txt b/data/configs/12-bmp280.s.txt similarity index 100% rename from data/configs/12-dallas.s.txt rename to data/configs/12-bmp280.s.txt diff --git a/data/configs/13-bme280.c.txt b/data/configs/13-bme280.c.txt new file mode 100644 index 00000000..e8414f61 --- /dev/null +++ b/data/configs/13-bme280.c.txt @@ -0,0 +1,9 @@ +bme280T temp1 0x76 Температура#bmp280 Датчики any-data 1 +bme280P pres1 0x76 Давление#bmp280 Датчики any-data 2 +bme280H hum1 0x76 Влажность#bmp280 Датчики any-data 3 +bme280A altit1 0x76 Высота#bmp280 Датчики any-data 4 +logging temp1 1 100 Температура Датчики 5 +logging press1 1 100 Давление Датчики 6 +logging hum1 1 100 Влажность Датчики 7 + +//Чтение и логгирование датчика bme280. Датчик подключается к шине i2c (esp8266 - gpio 5, 4) \ No newline at end of file diff --git a/data/configs/13-bme280.s.txt b/data/configs/13-bme280.s.txt new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/data/configs/13-bme280.s.txt @@ -0,0 +1 @@ + diff --git a/data/configs/12-dallas.c.txt b/data/configs/14-dallas.c.txt similarity index 100% rename from data/configs/12-dallas.c.txt rename to data/configs/14-dallas.c.txt diff --git a/data/configs/14-dallas.s.txt b/data/configs/14-dallas.s.txt new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/data/configs/14-dallas.s.txt @@ -0,0 +1 @@ + diff --git a/data/configs/13-termostat.c.txt b/data/configs/15-termostat.c.txt similarity index 100% rename from data/configs/13-termostat.c.txt rename to data/configs/15-termostat.c.txt diff --git a/data/configs/13-termostat.s.txt b/data/configs/15-termostat.s.txt similarity index 100% rename from data/configs/13-termostat.s.txt rename to data/configs/15-termostat.s.txt diff --git a/data/configs/14-level.c.txt b/data/configs/16-level.c.txt similarity index 100% rename from data/configs/14-level.c.txt rename to data/configs/16-level.c.txt diff --git a/data/configs/14-level.s.txt b/data/configs/16-level.s.txt similarity index 100% rename from data/configs/14-level.s.txt rename to data/configs/16-level.s.txt diff --git a/data/configs/15-moution.c.txt b/data/configs/17-moution.c.txt similarity index 100% rename from data/configs/15-moution.c.txt rename to data/configs/17-moution.c.txt diff --git a/data/configs/15-moution.s.txt b/data/configs/17-moution.s.txt similarity index 100% rename from data/configs/15-moution.s.txt rename to data/configs/17-moution.s.txt diff --git a/data/configs/16-moution.c.txt b/data/configs/18-moution.c.txt similarity index 100% rename from data/configs/16-moution.c.txt rename to data/configs/18-moution.c.txt diff --git a/data/configs/16-moution.s.txt b/data/configs/18-moution.s.txt similarity index 100% rename from data/configs/16-moution.s.txt rename to data/configs/18-moution.s.txt diff --git a/data/configs/17-stepper.c.txt b/data/configs/19-stepper.c.txt similarity index 100% rename from data/configs/17-stepper.c.txt rename to data/configs/19-stepper.c.txt diff --git a/data/configs/17-stepper.s.txt b/data/configs/19-stepper.s.txt similarity index 100% rename from data/configs/17-stepper.s.txt rename to data/configs/19-stepper.s.txt diff --git a/data/configs/18-servo.c.txt b/data/configs/20-servo.c.txt similarity index 100% rename from data/configs/18-servo.c.txt rename to data/configs/20-servo.c.txt diff --git a/data/configs/18-servo.s.txt b/data/configs/20-servo.s.txt similarity index 100% rename from data/configs/18-servo.s.txt rename to data/configs/20-servo.s.txt diff --git a/data/lang/lang.ru.json b/data/lang/lang.ru.json index 9d4d1929..2c089bcb 100644 --- a/data/lang/lang.ru.json +++ b/data/lang/lang.ru.json @@ -25,6 +25,7 @@ "SetWiFiWarn2":"После того как вы введете логин пароль от вашего wifi роутера необходимо нажать кнопку сохранить, а затем обязательно нажать кнопку перезагрузить устройство внизу этой страницы", "SetWiFiWarn3":"Устройство постоянно сканирует сеть на наличие wifi. Если роутер отключен, то устройство автоматически перейдет в режим точки доступа. Когда wifi появится устройство автоматически подключится к роутеру снова, и выключит точку доступа", "SetWiFiWarn4":"После изменения поля NTP сервер необходимо перезагрузить устройство", + "SetWiFiWarn5":"Светодиод статуса подключения показывает четыре состояния подключения:
1. мигает редко - идет подключение к wifi
2. мигает часто - идет подключение к серверу mqtt
3. горит постоянно - модуль в режиме точки доступа,
4. не горит - модуль подключен к wifi и к mqtt.
Светодиод подключен к gpio2. Если галочка стоит - то использовать этот пин нельзя", "SetMQTTServerName":"Имя сервера:", "SetMQTTPort":"Номер порта:", diff --git a/data/set.device.json b/data/set.device.json index 2cb731a6..11df7191 100644 --- a/data/set.device.json +++ b/data/set.device.json @@ -63,17 +63,19 @@ "/set?preset=6": "6.Вкл. выкл. нескольких удаленных реле кнопкой в приложении (нужно указать Device ID)", "/set?preset=7": "7.Вкл. выкл. нескольких удаленных реле физической кнопкой (нужно указать Device ID)", "/set?preset=8": "8.Широтно импульсная модуляция", - "/set?preset=9": "9.Сенсор DHT11 и логгирование", - "/set?preset=10": "10.Сенсор DHT22, DHT33, DHT44, AM2302, RHT03 и логгирование", + "/set?preset=9": "9.Сенсор DHT11 (темп, влажность) и логгирование", + "/set?preset=10": "10.Сенсор DHT22, DHT33, DHT44, AM2302, RHT03 (темп, влажность) и логгирование", "/set?preset=11": "11.Аналоговый сенсор и логгирование", - "/set?preset=12": "12.Сенсор DS18B20 и логгирование", - "/set?preset=13": "13.Термостат на DS18B20 с переключением в ручной режим и логгированием", - "/set?preset=14": "14.Контроль уровня в баке на сенсорах: JSN-SR04T, HC-SR04, HY-SRF05 и логгирование (управление насосом)", - "/set?preset=15": "15.Датчик движения включающий свет", - "/set?preset=16": "16.Охранный датчик движения", - "/set?preset=17": "17.Система управления шаговыми двигателями на основе драйвера A4988 (открытие закрытие штор)", - "/set?preset=18": "18.Система управления сервоприводами", - "/set?preset=19": "Настройки по умолчанию" + "/set?preset=12": "12.Cенсор bmp280 (темп, давление) и логгирование", + "/set?preset=13": "13.Cенсор bme280 (темп, давление, влажность, высота) и логгирование", + "/set?preset=14": "12.Сенсор DS18B20 (темп) и логгирование", + "/set?preset=15": "13.Термостат на DS18B20 с переключением в ручной режим и логгированием", + "/set?preset=16": "14.Котроль уровня в баке (датчик расстояния) на сенсорах: JSN-SR04T, HC-SR04, HY-SRF05 и логгирование", + "/set?preset=17": "15.Датчик движения включающий свет", + "/set?preset=18": "16.Охранный датчик движения", + "/set?preset=19": "17.Система управления шаговыми двигателями на основе драйвера A4988 (открытие закрытие штор)", + "/set?preset=20": "18.Система управления сервоприводами", + "/set?preset=21": "Настройки по умолчанию" } }, { diff --git a/data/set.wifi.json b/data/set.wifi.json index 01e5054b..d68edc7f 100644 --- a/data/set.wifi.json +++ b/data/set.wifi.json @@ -73,6 +73,20 @@ { "type": "hr" }, + { + "type": "checkbox", + "name": "blink", + "title": "Включить светодиод статуса подключения", + "action": "/set?blink=[[blink]]", + "state": "{{blink}}" + }, + { + "type": "text", + "title": "

{{SetWiFiWarn5}}

" + }, + { + "type": "hr" + }, { "type": "h3", "title": "{{SetWiFiAccessPoint}}" diff --git a/main.ino b/main.ino index f9c47149..0e28ffc1 100644 --- a/main.ino +++ b/main.ino @@ -368,17 +368,19 @@ void sendCONFIG(String topik, String widgetConfig, String key, String date) { void led_blink(String satus) { #ifdef ESP8266 #ifdef blink_pin - pinMode(blink_pin, OUTPUT); - if (satus == "off") { - noTone(blink_pin); - digitalWrite(blink_pin, HIGH); + if (jsonReadStr(configSetupJson, "blink") == "1") { + pinMode(blink_pin, OUTPUT); + if (satus == "off") { + noTone(blink_pin); + digitalWrite(blink_pin, HIGH); + } + if (satus == "on") { + noTone(blink_pin); + digitalWrite(blink_pin, LOW); + } + if (satus == "slow") tone(blink_pin, 1); + if (satus == "fast") tone(blink_pin, 20); } - if (satus == "on") { - noTone(blink_pin); - digitalWrite(blink_pin, LOW); - } - if (satus == "slow") tone(blink_pin, 1); - if (satus == "fast") tone(blink_pin, 20); #endif #endif } diff --git a/mqtt.ino b/mqtt.ino index abc25564..8980c741 100644 --- a/mqtt.ino +++ b/mqtt.ino @@ -19,8 +19,6 @@ void MQTT_init() { }, nullptr, true); } - - void do_mqtt_connection() { if (mqtt_connection) { mqtt_connection = false; diff --git a/set.h b/set.h index d32c3576..b42456d1 100644 --- a/set.h +++ b/set.h @@ -1,9 +1,8 @@ /******************************************************************* **********************FIRMWARE SETTINGS**************************** ******************************************************************/ -//dev -String firmware_version = "2.3.3"; -boolean mb_4_of_memory = true; +String firmware_version = "2.3.4"; +boolean mb_4_of_memory = false; //#define OTA_enable //#define MDNS_enable //#define WS_enable