From 83d153126723b3ee6238705bfe6987fb40324520 Mon Sep 17 00:00:00 2001
From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com>
Date: Fri, 12 Jun 2020 15:34:30 +0200
Subject: [PATCH] add led blink
---
Upgrade.ino | 5 +-
Web.ino | 136 ++++++++++++------
WiFi.ino | 3 +-
data/config.json | 3 +-
data/configs/12-bmp280.c.txt | 6 +
.../{12-dallas.s.txt => 12-bmp280.s.txt} | 0
data/configs/13-bme280.c.txt | 9 ++
data/configs/13-bme280.s.txt | 1 +
.../{12-dallas.c.txt => 14-dallas.c.txt} | 0
data/configs/14-dallas.s.txt | 1 +
...{13-termostat.c.txt => 15-termostat.c.txt} | 0
...{13-termostat.s.txt => 15-termostat.s.txt} | 0
.../{14-level.c.txt => 16-level.c.txt} | 0
.../{14-level.s.txt => 16-level.s.txt} | 0
.../{15-moution.c.txt => 17-moution.c.txt} | 0
.../{15-moution.s.txt => 17-moution.s.txt} | 0
.../{16-moution.c.txt => 18-moution.c.txt} | 0
.../{16-moution.s.txt => 18-moution.s.txt} | 0
.../{17-stepper.c.txt => 19-stepper.c.txt} | 0
.../{17-stepper.s.txt => 19-stepper.s.txt} | 0
.../{18-servo.c.txt => 20-servo.c.txt} | 0
.../{18-servo.s.txt => 20-servo.s.txt} | 0
data/lang/lang.ru.json | 1 +
data/set.device.json | 22 +--
data/set.wifi.json | 14 ++
main.ino | 22 +--
mqtt.ino | 2 -
set.h | 5 +-
28 files changed, 157 insertions(+), 73 deletions(-)
create mode 100644 data/configs/12-bmp280.c.txt
rename data/configs/{12-dallas.s.txt => 12-bmp280.s.txt} (100%)
create mode 100644 data/configs/13-bme280.c.txt
create mode 100644 data/configs/13-bme280.s.txt
rename data/configs/{12-dallas.c.txt => 14-dallas.c.txt} (100%)
create mode 100644 data/configs/14-dallas.s.txt
rename data/configs/{13-termostat.c.txt => 15-termostat.c.txt} (100%)
rename data/configs/{13-termostat.s.txt => 15-termostat.s.txt} (100%)
rename data/configs/{14-level.c.txt => 16-level.c.txt} (100%)
rename data/configs/{14-level.s.txt => 16-level.s.txt} (100%)
rename data/configs/{15-moution.c.txt => 17-moution.c.txt} (100%)
rename data/configs/{15-moution.s.txt => 17-moution.s.txt} (100%)
rename data/configs/{16-moution.c.txt => 18-moution.c.txt} (100%)
rename data/configs/{16-moution.s.txt => 18-moution.s.txt} (100%)
rename data/configs/{17-stepper.c.txt => 19-stepper.c.txt} (100%)
rename data/configs/{17-stepper.s.txt => 19-stepper.s.txt} (100%)
rename data/configs/{18-servo.c.txt => 20-servo.c.txt} (100%)
rename data/configs/{18-servo.s.txt => 20-servo.s.txt} (100%)
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}}