mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
add web socket and stepper control
This commit is contained in:
43
Cmd.ino
43
Cmd.ino
@@ -4,6 +4,8 @@ void CMD_init() {
|
|||||||
sCmd.addCommand("buttonSet", buttonSet);
|
sCmd.addCommand("buttonSet", buttonSet);
|
||||||
sCmd.addCommand("buttonChange", buttonChange);
|
sCmd.addCommand("buttonChange", buttonChange);
|
||||||
|
|
||||||
|
//sCmd.addCommand("button_touch", button_touch);
|
||||||
|
|
||||||
sCmd.addCommand("pinSet", pinSet);
|
sCmd.addCommand("pinSet", pinSet);
|
||||||
sCmd.addCommand("pinChange", pinChange);
|
sCmd.addCommand("pinChange", pinChange);
|
||||||
|
|
||||||
@@ -22,6 +24,9 @@ void CMD_init() {
|
|||||||
sCmd.addCommand("dhtComfort", dhtComfort);
|
sCmd.addCommand("dhtComfort", dhtComfort);
|
||||||
sCmd.addCommand("dhtDewpoint", dhtDewpoint);
|
sCmd.addCommand("dhtDewpoint", dhtDewpoint);
|
||||||
|
|
||||||
|
sCmd.addCommand("stepper", stepper);
|
||||||
|
sCmd.addCommand("stepperSet", stepperSet);
|
||||||
|
|
||||||
sCmd.addCommand("logging", logging);
|
sCmd.addCommand("logging", logging);
|
||||||
|
|
||||||
sCmd.addCommand("inputDigit", inputDigit);
|
sCmd.addCommand("inputDigit", inputDigit);
|
||||||
@@ -322,6 +327,44 @@ void textSet() {
|
|||||||
sendSTATUS("textSet" + number, text);
|
sendSTATUS("textSet" + number, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//=====================================================================================================================================
|
||||||
|
//=========================================Модуль шагового мотора======================================================================
|
||||||
|
|
||||||
|
//stepper 1 12 13
|
||||||
|
void stepper() {
|
||||||
|
String stepper_number = sCmd.next();
|
||||||
|
String pin_step = sCmd.next();
|
||||||
|
String pin_dir = sCmd.next();
|
||||||
|
|
||||||
|
jsonWrite(optionJson, "stepper" + stepper_number, pin_step + " " + pin_dir);
|
||||||
|
pinMode(pin_step.toInt(), OUTPUT);
|
||||||
|
pinMode(pin_dir.toInt(), OUTPUT);
|
||||||
|
}
|
||||||
|
|
||||||
|
//stepperSet 1 100 5
|
||||||
|
void stepperSet() {
|
||||||
|
String stepper_number = sCmd.next();
|
||||||
|
String steps = sCmd.next();
|
||||||
|
String stepper_speed = sCmd.next();
|
||||||
|
|
||||||
|
String pin_step = selectToMarker (jsonRead(optionJson, "stepper" + stepper_number), " ");
|
||||||
|
String pin_dir = deleteBeforeDelimiter (jsonRead(optionJson, "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);
|
||||||
|
|
||||||
|
for (int x = 0; x < abs(steps.toInt()); x++)
|
||||||
|
{
|
||||||
|
digitalWrite(pin_step.toInt(), HIGH);
|
||||||
|
delay(stepper_speed.toInt());
|
||||||
|
digitalWrite(pin_step.toInt(), LOW);
|
||||||
|
delay(stepper_speed.toInt());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//====================================================================================================================================================
|
//====================================================================================================================================================
|
||||||
/*
|
/*
|
||||||
|
|||||||
7
Init.ino
7
Init.ino
@@ -187,6 +187,13 @@ void prsets_init() {
|
|||||||
request->redirect("/page.htm?configuration");
|
request->redirect("/page.htm?configuration");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
server.on("/stepper", HTTP_GET, [](AsyncWebServerRequest * request) {
|
||||||
|
writeFile("firmware.config.txt", readFile("configs/stepper.config.txt", 2048));
|
||||||
|
writeFile("firmware.scenario.txt", readFile("configs/stepper.scenario.txt", 2048));
|
||||||
|
Device_init();
|
||||||
|
Scenario_init();
|
||||||
|
request->redirect("/page.htm?configuration");
|
||||||
|
});
|
||||||
|
|
||||||
//default===============================================================================
|
//default===============================================================================
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ void analog() {
|
|||||||
static int analog_old;
|
static int analog_old;
|
||||||
#ifdef ESP32
|
#ifdef ESP32
|
||||||
//int pin_int = pin.toInt();
|
//int pin_int = pin.toInt();
|
||||||
int analog_in;// = analogRead(pin_int);
|
int analog_in = analogRead(34);
|
||||||
#endif
|
#endif
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
int analog_in = analogRead(A0);
|
int analog_in = analogRead(A0);
|
||||||
@@ -36,6 +36,7 @@ void analog() {
|
|||||||
sendSTATUS("analog", String(analog));
|
sendSTATUS("analog", String(analog));
|
||||||
if (client.connected()) {
|
if (client.connected()) {
|
||||||
Serial.println("[i] sensor 'analog' send date " + String(analog));
|
Serial.println("[i] sensor 'analog' send date " + String(analog));
|
||||||
|
//web_print("sensor 'analog' send date " + String(analog));
|
||||||
}
|
}
|
||||||
// }
|
// }
|
||||||
analog_old = analog;
|
analog_old = analog;
|
||||||
@@ -83,6 +84,7 @@ void level() {
|
|||||||
sendSTATUS("level", String(level));
|
sendSTATUS("level", String(level));
|
||||||
if (client.connected()) {
|
if (client.connected()) {
|
||||||
Serial.println("[i] sensor tank 'level' send date " + String(level));
|
Serial.println("[i] sensor tank 'level' send date " + String(level));
|
||||||
|
//web_print("sensor tank 'level' send date " + String(level));
|
||||||
}
|
}
|
||||||
//}
|
//}
|
||||||
level_old = level;
|
level_old = level;
|
||||||
@@ -114,6 +116,7 @@ void dallas() {
|
|||||||
sendSTATUS("dallas", String(temp));
|
sendSTATUS("dallas", String(temp));
|
||||||
if (client.connected()) {
|
if (client.connected()) {
|
||||||
Serial.println("[i] sensor 'dallas' send date " + String(temp));
|
Serial.println("[i] sensor 'dallas' send date " + String(temp));
|
||||||
|
//web_print("sensor 'dallas' send date " + String(temp));
|
||||||
}
|
}
|
||||||
//}
|
//}
|
||||||
temp_old = temp;
|
temp_old = temp;
|
||||||
@@ -153,6 +156,7 @@ void dhtT() {
|
|||||||
sendSTATUS("dhtT", String(value));
|
sendSTATUS("dhtT", String(value));
|
||||||
if (client.connected()) {
|
if (client.connected()) {
|
||||||
Serial.println("[i] sensor 'dhtT' send date " + String(value));
|
Serial.println("[i] sensor 'dhtT' send date " + String(value));
|
||||||
|
//web_print("sensor 'dhtT' send date " + String(value));
|
||||||
}
|
}
|
||||||
//}
|
//}
|
||||||
value_old = value;
|
value_old = value;
|
||||||
@@ -191,6 +195,7 @@ void dhtH() {
|
|||||||
sendSTATUS("dhtH", String(value));
|
sendSTATUS("dhtH", String(value));
|
||||||
if (client.connected()) {
|
if (client.connected()) {
|
||||||
Serial.println("[i] sensor 'dhtH' send date " + String(value));
|
Serial.println("[i] sensor 'dhtH' send date " + String(value));
|
||||||
|
//web_print("sensor 'dhtH' send date " + String(value));
|
||||||
}
|
}
|
||||||
//}
|
//}
|
||||||
value_old = value;
|
value_old = value;
|
||||||
|
|||||||
20
Upgrade.ino
20
Upgrade.ino
@@ -41,6 +41,8 @@ void upgrade_firmware() {
|
|||||||
configSetup_for_update = configSetup;
|
configSetup_for_update = configSetup;
|
||||||
|
|
||||||
Serial.println("Start upgrade SPIFFS, please wait...");
|
Serial.println("Start upgrade SPIFFS, please wait...");
|
||||||
|
web_print("Start upgrade SPIFFS, please wait...");
|
||||||
|
|
||||||
WiFiClient client_for_upgrade;
|
WiFiClient client_for_upgrade;
|
||||||
|
|
||||||
#ifdef ESP32
|
#ifdef ESP32
|
||||||
@@ -61,21 +63,25 @@ void upgrade_firmware() {
|
|||||||
|
|
||||||
Serial.println("SPIFFS upgrade done!");
|
Serial.println("SPIFFS upgrade done!");
|
||||||
Serial.println("Start upgrade BUILD, please wait...");
|
Serial.println("Start upgrade BUILD, please wait...");
|
||||||
|
web_print("SPIFFS upgrade done!");
|
||||||
|
web_print("Start upgrade BUILD, please wait...");
|
||||||
|
|
||||||
#ifdef ESP32
|
#ifdef ESP32
|
||||||
httpUpdate.rebootOnUpdate(true);
|
//httpUpdate.rebootOnUpdate(true);
|
||||||
t_httpUpdate_return ret = httpUpdate.update(client_for_upgrade, "http://91.204.228.124:1100/update/esp32/esp32-esp8266_iot-manager_modules_firmware.ino.bin");
|
t_httpUpdate_return ret = httpUpdate.update(client_for_upgrade, "http://91.204.228.124:1100/update/esp32/esp32-esp8266_iot-manager_modules_firmware.ino.bin");
|
||||||
#endif
|
#endif
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
ESPhttpUpdate.rebootOnUpdate(true);
|
//ESPhttpUpdate.rebootOnUpdate(true);
|
||||||
t_httpUpdate_return ret = ESPhttpUpdate.update(client_for_upgrade, "http://91.204.228.124:1100/update/esp8266/esp32-esp8266_iot-manager_modules_firmware.ino.bin");
|
t_httpUpdate_return ret = ESPhttpUpdate.update(client_for_upgrade, "http://91.204.228.124:1100/update/esp8266/esp32-esp8266_iot-manager_modules_firmware.ino.bin");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Serial.println("BUILD upgrade done!");
|
if (ret == HTTP_UPDATE_OK) {
|
||||||
Serial.println("Restart ESP....");
|
web_print("BUILD upgrade done!");
|
||||||
|
web_print("Restart ESP....");
|
||||||
} else {
|
Serial.println("BUILD upgrade done!");
|
||||||
//upgrade_status(t_httpUpdate_return ret);
|
Serial.println("Restart ESP....");
|
||||||
|
ESP.restart();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ void Web_server_init() {
|
|||||||
server.addHandler(&ws);
|
server.addHandler(&ws);
|
||||||
|
|
||||||
events.onConnect([](AsyncEventSourceClient * client) {
|
events.onConnect([](AsyncEventSourceClient * client) {
|
||||||
client->send("hello!", NULL, millis(), 1000);
|
//!!!client->send("hello!", NULL, millis(), 1000);
|
||||||
});
|
});
|
||||||
|
|
||||||
server.addHandler(&events);
|
server.addHandler(&events);
|
||||||
@@ -144,14 +144,22 @@ void Web_server_init() {
|
|||||||
server.on("/config.setup.json", HTTP_GET, [](AsyncWebServerRequest * request) {
|
server.on("/config.setup.json", HTTP_GET, [](AsyncWebServerRequest * request) {
|
||||||
request->send(200, "application/json", configSetup);
|
request->send(200, "application/json", configSetup);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// ------------------Выполнение команды из запроса
|
||||||
|
server.on("/cmd", HTTP_GET, [](AsyncWebServerRequest * request) { //http://192.168.88.45/cmd?command=rel 1 1
|
||||||
|
String com = request->getParam("command")->value();
|
||||||
|
Serial.println(com);
|
||||||
|
order_loop += com + ",";
|
||||||
|
request->send(200, "text/text", "OK"); // отправляем ответ о выполнении
|
||||||
|
});
|
||||||
}
|
}
|
||||||
//========================================WS=========================================================================================
|
//========================================WS=========================================================================================
|
||||||
#ifdef WS_enable
|
#ifdef WS_enable
|
||||||
void onWsEvent(AsyncWebSocket * server, AsyncWebSocketClient * client, AwsEventType type, void * arg, uint8_t *data, size_t len) {
|
void onWsEvent(AsyncWebSocket * server, AsyncWebSocketClient * client, AwsEventType type, void * arg, uint8_t *data, size_t len) {
|
||||||
if (type == WS_EVT_CONNECT) {
|
if (type == WS_EVT_CONNECT) {
|
||||||
Serial.printf("ws[%s][%u] connect\n", server->url(), client->id());
|
Serial.printf("ws[%s][%u] connect\n", server->url(), client->id());
|
||||||
client->printf(configJson.c_str(), client->id());
|
client->printf(json.c_str(), client->id());
|
||||||
client->ping();
|
//client->ping();
|
||||||
} else if (type == WS_EVT_DISCONNECT) {
|
} else if (type == WS_EVT_DISCONNECT) {
|
||||||
Serial.printf("ws[%s][%u] disconnect\n", server->url(), client->id());
|
Serial.printf("ws[%s][%u] disconnect\n", server->url(), client->id());
|
||||||
} else if (type == WS_EVT_ERROR) {
|
} else if (type == WS_EVT_ERROR) {
|
||||||
|
|||||||
6
WiFi.ino
6
WiFi.ino
@@ -147,14 +147,14 @@ boolean RouterFind(String ssid) {
|
|||||||
} else {
|
} else {
|
||||||
Serial.print(i);
|
Serial.print(i);
|
||||||
Serial.print(")");
|
Serial.print(")");
|
||||||
Serial.print(ssid);
|
//Serial.print(ssid);
|
||||||
Serial.print("<=>");
|
//Serial.print("<=>");
|
||||||
if (i == n) {
|
if (i == n) {
|
||||||
Serial.print(WiFi.SSID(i));
|
Serial.print(WiFi.SSID(i));
|
||||||
Serial.println("; ");
|
Serial.println("; ");
|
||||||
} else {
|
} else {
|
||||||
Serial.print(WiFi.SSID(i));
|
Serial.print(WiFi.SSID(i));
|
||||||
Serial.print("; ");
|
Serial.println("; ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"SSDP":"MODULES","chipID":"905542-1458415","ssidAP":"WiFi","passwordAP":"","ssid":"your_ssid","password":"your_pass","timezone":3,"mqttServer":"","mqttPort":0,"mqttUser":"","mqttPass":"","scenario":"1","timers":"0","pushingbox_id":"","web_login":"admin","web_pass":"admin"}
|
{"SSDP":"MODULES","chipID":"905542-1458415","ssidAP":"WiFi","passwordAP":"","ssid":"MW40V_782C","password":"05978600","timezone":3,"mqttServer":"m12.cloudmqtt.com","mqttPort":14053,"mqttUser":"lbscvzuj","mqttPass":"bLxlveOgaF8F","scenario":"1","timers":"0","pushingbox_id":"","web_login":"admin","web_pass":"admin"}
|
||||||
10
data/configs/stepper.config.txt
Normal file
10
data/configs/stepper.config.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
stepper 1 12 13
|
||||||
|
button 1 na Открыть#штору Шторы 0 1
|
||||||
|
|
||||||
|
|
||||||
|
//добавляем шаговый двигатель с параметрами:
|
||||||
|
//1 - номер шагового двигателя, 12 - номер пина количества шагов, 13 - номер пина напрвления
|
||||||
|
|
||||||
|
//stepperSet 1 100 5 - прокрутить шаговик номер 1 на 100 шагов по часовой стрелке
|
||||||
|
//с задержкой между шагами 5 милисекунд (чем меньше задержка тем больше скорость)
|
||||||
|
//если поставить -100 то будет вращаться против часовой стрелки
|
||||||
6
data/configs/stepper.scenario.txt
Normal file
6
data/configs/stepper.scenario.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
button1 = 1
|
||||||
|
stepperSet 1 100 5
|
||||||
|
end
|
||||||
|
button1 = 0
|
||||||
|
stepperSet 1 -100 5
|
||||||
|
end
|
||||||
@@ -36,22 +36,23 @@
|
|||||||
"style":"display:inline",
|
"style":"display:inline",
|
||||||
"title": {
|
"title": {
|
||||||
"#":"Выбирите то, во что Вы хотите превратить ESP <span class=\"caret\"></span>",
|
"#":"Выбирите то, во что Вы хотите превратить ESP <span class=\"caret\"></span>",
|
||||||
"/relay":"Вкл. выкл. локального реле",
|
"/relay":"1.Вкл. выкл. локального реле",
|
||||||
"/relay_timer":"Вкл. выкл. локального реле в определенное время",
|
"/relay_timer":"2.Вкл. выкл. локального реле в определенное время",
|
||||||
"/relay_countdown":"Вкл. выкл. локального реле на определенный период времени",
|
"/relay_countdown":"3.Вкл. выкл. локального реле на определенный период времени",
|
||||||
"/relay_several":"Вкл. выкл. нескольких локальных реле кнопкой в приложении",
|
"/relay_several":"4.Вкл. выкл. нескольких локальных реле кнопкой в приложении",
|
||||||
"/relay_switch":"Вкл. выкл. локального реле физической кнопкой (кнопка так же дублируется в приложении)",
|
"/relay_switch":"5.Вкл. выкл. локального реле физической кнопкой (кнопка так же дублируется в приложении)",
|
||||||
"/relay_button_remote":"Вкл. выкл. нескольких удаленных реле кнопкой в приложении (нужно указать Device ID)",
|
"/relay_button_remote":"6.Вкл. выкл. нескольких удаленных реле кнопкой в приложении (нужно указать Device ID)",
|
||||||
"/relay_switch_remote":"Вкл. выкл. нескольких удаленных реле физической кнопкой (нужно указать Device ID)",
|
"/relay_switch_remote":"7.Вкл. выкл. нескольких удаленных реле физической кнопкой (нужно указать Device ID)",
|
||||||
"/pwm":"Широтно импульсная модуляция",
|
"/pwm":"8.Широтно импульсная модуляция",
|
||||||
"/dht11":"Сенсор DHT11",
|
"/dht11":"9.Сенсор DHT11",
|
||||||
"/dht22":"Сенсор DHT22, DHT33, DHT44, AM2302, RHT03",
|
"/dht22":"10.Сенсор DHT22, DHT33, DHT44, AM2302, RHT03",
|
||||||
"/analog":"Аналоговый сенсор",
|
"/analog":"11.Аналоговый сенсор",
|
||||||
"/dallas":"Сенсор DS18B20",
|
"/dallas":"12.Сенсор DS18B20",
|
||||||
"/termostat":"Термостат на DS18B20 с переключением в ручной режим",
|
"/termostat":"13.Термостат на DS18B20 с переключением в ручной режим",
|
||||||
"/level":"Контроль уровня в баке на сенсорах: JSN-SR04T, HC-SR04, HY-SRF05 (управление насосом)",
|
"/level":"14.Контроль уровня в баке на сенсорах: JSN-SR04T, HC-SR04, HY-SRF05 (управление насосом)",
|
||||||
"/moution_relay":"Датчик движения включающий свет",
|
"/moution_relay":"15.Датчик движения включающий свет",
|
||||||
"/moution_security":"Охранный датчик движения",
|
"/moution_security":"16.Охранный датчик движения",
|
||||||
|
"/stepper":"17.Система управления шаговым двигателем (открытие закрытие штор)",
|
||||||
"/default":"Настройки по умолчанию"
|
"/default":"Настройки по умолчанию"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
Binary file not shown.
BIN
data/edit.htm.gz
BIN
data/edit.htm.gz
Binary file not shown.
Binary file not shown.
@@ -3,6 +3,11 @@
|
|||||||
"/config.live.json",
|
"/config.live.json",
|
||||||
"/config.setup.json"
|
"/config.setup.json"
|
||||||
],
|
],
|
||||||
|
|
||||||
|
"socket": [
|
||||||
|
"ws://{{ip}}/ws"
|
||||||
|
],
|
||||||
|
|
||||||
"title": "Главная",
|
"title": "Главная",
|
||||||
"class": "col-sm-offset-1 col-sm-10 col-md-offset-2 col-md-8 col-lg-offset-3 col-lg-6",
|
"class": "col-sm-offset-1 col-sm-10 col-md-offset-2 col-md-8 col-lg-offset-3 col-lg-6",
|
||||||
"content": [
|
"content": [
|
||||||
@@ -31,6 +36,36 @@
|
|||||||
"type": "h4",
|
"type": "h4",
|
||||||
"title": "SPIFFS version: 2.3"
|
"title": "SPIFFS version: 2.3"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "hr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "h6",
|
||||||
|
"title": "{{test1}}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "h6",
|
||||||
|
"title": "{{test2}}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "h6",
|
||||||
|
"title": "{{test3}}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "h6",
|
||||||
|
"title": "{{test4}}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "h6",
|
||||||
|
"title": "{{test5}}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "h6",
|
||||||
|
"title": "{{test6}}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "hr"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "link",
|
"type": "link",
|
||||||
"title": "Конфигурация устройства",
|
"title": "Конфигурация устройства",
|
||||||
@@ -64,7 +99,7 @@
|
|||||||
{
|
{
|
||||||
"type":"h3",
|
"type":"h3",
|
||||||
"name":"my-block",
|
"name":"my-block",
|
||||||
"style":"position:fixed;top:30%;left:50%;width:400px;margin-left:-200px;text-align:center;",
|
"style":"position:fixed;top:50%;left:50%;width:400px;margin-left:-200px;text-align:center;",
|
||||||
"class":"hidden"
|
"class":"hidden"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
BIN
data/index.json.gz
Normal file
BIN
data/index.json.gz
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -53,8 +53,7 @@
|
|||||||
"type": "password",
|
"type": "password",
|
||||||
"title": "Введите пароль",
|
"title": "Введите пароль",
|
||||||
"name":"ssidPass",
|
"name":"ssidPass",
|
||||||
"state": "{{password}}",
|
"state": "{{password}}"
|
||||||
"pattern": ".{8,20}"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "button",
|
"type": "button",
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ void setup() {
|
|||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
Serial.print("[i] Date compiling: ");
|
Serial.print("[i] Date compiling: ");
|
||||||
Serial.println(DATE_COMPILING);
|
Serial.println(DATE_COMPILING);
|
||||||
|
|
||||||
getMemoryLoad("[i] After loading");
|
getMemoryLoad("[i] After loading");
|
||||||
|
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
@@ -72,11 +72,12 @@ void setup() {
|
|||||||
Serial.print("[i] Last firmware version: ");
|
Serial.print("[i] Last firmware version: ");
|
||||||
Serial.println(new_version);
|
Serial.println(new_version);
|
||||||
|
|
||||||
ts.add(TEST, statistics_update, [&](void*) {
|
//ts.add(TEST, statistics_update, [&](void*) {
|
||||||
|
|
||||||
statistics();
|
// statistics();
|
||||||
|
|
||||||
|
//}, nullptr, false);
|
||||||
|
|
||||||
}, nullptr, false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
|
|||||||
25
main.ino
25
main.ino
@@ -156,7 +156,7 @@ String safeDataToFile(String data, String Folder)
|
|||||||
fileName.replace("..", ".");
|
fileName.replace("..", ".");
|
||||||
fileName = Folder + "/" + fileName + ".txt";
|
fileName = Folder + "/" + fileName + ".txt";
|
||||||
|
|
||||||
// addFile(fileName, GetTime() + "/" + data);
|
// addFile(fileName, GetTime() + "/" + data);
|
||||||
|
|
||||||
Serial.println(fileName);
|
Serial.println(fileName);
|
||||||
jsonWrite(configJson, "test", fileName);
|
jsonWrite(configJson, "test", fileName);
|
||||||
@@ -259,12 +259,12 @@ void led_blink(int pin, int fq, String blink_satus) {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
void getMemoryLoad(String text) {
|
void getMemoryLoad(String text) {
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
int all_memory = 53312;
|
int all_memory = 53312;
|
||||||
#endif
|
#endif
|
||||||
#ifdef ESP32
|
#ifdef ESP32
|
||||||
int all_memory = 362868;
|
int all_memory = 362868;
|
||||||
#endif
|
#endif
|
||||||
int memory_remain = ESP.getFreeHeap();
|
int memory_remain = ESP.getFreeHeap();
|
||||||
int memory_used = all_memory - memory_remain;
|
int memory_used = all_memory - memory_remain;
|
||||||
int memory_load = (memory_used * 100) / all_memory;
|
int memory_load = (memory_used * 100) / all_memory;
|
||||||
@@ -273,8 +273,21 @@ void getMemoryLoad(String text) {
|
|||||||
Serial.print(String(memory_load) + "%; ");
|
Serial.print(String(memory_load) + "%; ");
|
||||||
Serial.print("memory remain:");
|
Serial.print("memory remain:");
|
||||||
Serial.println(String(memory_remain) + " k bytes");
|
Serial.println(String(memory_remain) + " k bytes");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//esp32 full memory = 362868 k bytes
|
//esp32 full memory = 362868 k bytes
|
||||||
//esp8266 full memory = 53312 k bytes
|
//esp8266 full memory = 53312 k bytes
|
||||||
|
|
||||||
|
void web_print (String text) {
|
||||||
|
|
||||||
|
jsonWrite(json, "test1", jsonRead(json, "test2"));
|
||||||
|
jsonWrite(json, "test2", jsonRead(json, "test3"));
|
||||||
|
jsonWrite(json, "test3", jsonRead(json, "test4"));
|
||||||
|
jsonWrite(json, "test4", jsonRead(json, "test5"));
|
||||||
|
jsonWrite(json, "test5", jsonRead(json, "test6"));
|
||||||
|
|
||||||
|
jsonWrite(json, "test6", GetTime() + " " + text);
|
||||||
|
|
||||||
|
ws.textAll(json);
|
||||||
|
}
|
||||||
|
|||||||
5
mqtt.ino
5
mqtt.ino
@@ -51,6 +51,7 @@ void MQTT_init() {
|
|||||||
Serial.println("[V] WiFi-ok");
|
Serial.println("[V] WiFi-ok");
|
||||||
if (client.connected()) {
|
if (client.connected()) {
|
||||||
Serial.println("[V] MQTT-ok");
|
Serial.println("[V] MQTT-ok");
|
||||||
|
web_print("MQTT-ok");
|
||||||
} else {
|
} else {
|
||||||
MQTT_Connecting();
|
MQTT_Connecting();
|
||||||
mqtt_lost_error++;
|
mqtt_lost_error++;
|
||||||
@@ -79,6 +80,7 @@ boolean MQTT_Connecting() {
|
|||||||
if ((mqtt_server != "")) {
|
if ((mqtt_server != "")) {
|
||||||
static boolean first = true;
|
static boolean first = true;
|
||||||
if (!first) Serial.println("[E] Lost MQTT connection, start reconnecting");
|
if (!first) Serial.println("[E] Lost MQTT connection, start reconnecting");
|
||||||
|
web_print("Lost MQTT connection, start reconnecting");
|
||||||
first = false;
|
first = false;
|
||||||
//ssl//espClient.setCACert(local_root_ca1);
|
//ssl//espClient.setCACert(local_root_ca1);
|
||||||
client.setServer(mqtt_server.c_str(), jsonReadtoInt(configSetup, "mqttPort"));
|
client.setServer(mqtt_server.c_str(), jsonReadtoInt(configSetup, "mqttPort"));
|
||||||
@@ -87,6 +89,7 @@ boolean MQTT_Connecting() {
|
|||||||
Serial.println("[V] Connecting to MQTT server commenced");
|
Serial.println("[V] Connecting to MQTT server commenced");
|
||||||
if (client.connect(chipID.c_str(), jsonRead(configSetup, "mqttUser").c_str(), jsonRead(configSetup, "mqttPass").c_str())) {
|
if (client.connect(chipID.c_str(), jsonRead(configSetup, "mqttUser").c_str(), jsonRead(configSetup, "mqttPass").c_str())) {
|
||||||
Serial.println("[V] MQTT connected");
|
Serial.println("[V] MQTT connected");
|
||||||
|
web_print("MQTT connected");
|
||||||
client.setCallback(callback);
|
client.setCallback(callback);
|
||||||
client.subscribe(prefix.c_str()); // Для приема получения HELLOW и подтверждения связи
|
client.subscribe(prefix.c_str()); // Для приема получения HELLOW и подтверждения связи
|
||||||
client.subscribe((prefix + "/" + chipID + "/+/control").c_str()); // Подписываемся на топики control
|
client.subscribe((prefix + "/" + chipID + "/+/control").c_str()); // Подписываемся на топики control
|
||||||
@@ -95,6 +98,7 @@ boolean MQTT_Connecting() {
|
|||||||
client.subscribe((prefix + "/ids").c_str()); // Подписываемся на топики ids
|
client.subscribe((prefix + "/ids").c_str()); // Подписываемся на топики ids
|
||||||
sendMQTT("test", "work");
|
sendMQTT("test", "work");
|
||||||
Serial.println("[V] Callback set, subscribe done");
|
Serial.println("[V] Callback set, subscribe done");
|
||||||
|
web_print("Callback set, subscribe done");
|
||||||
//if (out_date_send) outcoming_date(); //отправляем данные в виджеты
|
//if (out_date_send) outcoming_date(); //отправляем данные в виджеты
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
@@ -105,6 +109,7 @@ boolean MQTT_Connecting() {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Serial.println("[E] No date for MQTT connection");
|
Serial.println("[E] No date for MQTT connection");
|
||||||
|
web_print("No date for MQTT connection");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
7
set.h
7
set.h
@@ -4,7 +4,7 @@ String new_version;
|
|||||||
|
|
||||||
//#define OTA_enable
|
//#define OTA_enable
|
||||||
//#define MDNS_enable
|
//#define MDNS_enable
|
||||||
//#define WS_enable
|
#define WS_enable
|
||||||
|
|
||||||
#define TIME_COMPILING String(__TIME__)
|
#define TIME_COMPILING String(__TIME__)
|
||||||
#define DATE_COMPILING String(__DATE__)
|
#define DATE_COMPILING String(__DATE__)
|
||||||
@@ -58,6 +58,7 @@ ESP8266HTTPUpdateServer httpUpdater;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
//==общие библиотеки и объекты==//
|
//==общие библиотеки и объекты==//
|
||||||
|
#include <Arduino.h>
|
||||||
#include "time.h"
|
#include "time.h"
|
||||||
#ifdef OTA_enable
|
#ifdef OTA_enable
|
||||||
#include <ArduinoOTA.h>
|
#include <ArduinoOTA.h>
|
||||||
@@ -105,12 +106,16 @@ DHTesp dht;
|
|||||||
Adafruit_Si7021 sensor_Si7021 = Adafruit_Si7021();
|
Adafruit_Si7021 sensor_Si7021 = Adafruit_Si7021();
|
||||||
//-----------------------------------------------------------------
|
//-----------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const char* hostName = "IoT Manager";
|
const char* hostName = "IoT Manager";
|
||||||
|
|
||||||
String configSetup = "{}";
|
String configSetup = "{}";
|
||||||
String configJson = "{}";
|
String configJson = "{}";
|
||||||
String optionJson = "{}";
|
String optionJson = "{}";
|
||||||
|
|
||||||
|
String json = "{}";
|
||||||
|
|
||||||
String chipID = "";
|
String chipID = "";
|
||||||
String prefix = "/IoTmanager";
|
String prefix = "/IoTmanager";
|
||||||
String prex;
|
String prex;
|
||||||
|
|||||||
Reference in New Issue
Block a user