From dfabdd080a22d987047154b325ac6b6ccdfba738 Mon Sep 17 00:00:00 2001 From: Alexey Zholtikov Date: Thu, 12 Jan 2023 12:27:38 +0300 Subject: [PATCH] Version 1.11 Web interface minor redesign. Main code minor changes. --- data/index.htm | 4 ++-- data/style.css | 13 +++++++++++++ platformio.ini | 28 +++------------------------- src/main.cpp | 23 ++++++++++++++--------- 4 files changed, 32 insertions(+), 36 deletions(-) diff --git a/data/index.htm b/data/index.htm index 14970d6..c34ac8d 100644 --- a/data/index.htm +++ b/data/index.htm @@ -5,12 +5,12 @@ - ESP-NOW Led/Light Strip + ESP-NOW Light
-

ESP-NOW Led/Light Strip

+

ESP-NOW Light

Firmware:

diff --git a/data/style.css b/data/style.css index 7b13ef7..54f8e27 100644 --- a/data/style.css +++ b/data/style.css @@ -1,3 +1,7 @@ +p{ + margin: 0 0; +} + body { font-family: "Gill Sans", sans-serif; background: rgb(255, 255, 255); @@ -21,6 +25,8 @@ h1 { font-weight: 600; flex-shrink: 0; margin-right: 10px; + margin-left: 10px; + margin: 10px 0; } .text-select { @@ -42,6 +48,7 @@ input { border-radius: 5px; border: none; margin-bottom: 10px; + margin-left: 10px; padding: 0 10px; color: rgb(0, 0, 0); background: #a3e0f1; @@ -76,6 +83,8 @@ select:hover { background: rgb(65, 125, 238); color: white; transition: .5s; + margin-left: 0; + margin-top: 8px; } .btn:hover { @@ -89,6 +98,10 @@ select:hover { width: 100%; } +#espnowNetName { + margin-bottom: 15px; +} + .wrapper.wrapper--end { align-items: baseline; } \ No newline at end of file diff --git a/platformio.ini b/platformio.ini index 628f7eb..16905d8 100644 --- a/platformio.ini +++ b/platformio.ini @@ -1,4 +1,4 @@ -[env:esp8266] +[env:ESP-12E] platform = espressif8266 board = esp12e framework = arduino @@ -8,7 +8,7 @@ lib_deps = bblanchon/ArduinoJson@^6.19.4 me-no-dev/ESP Async WebServer@^1.2.3 -[env:esp8266-ota] +[env:ESP-12E-OTA] platform = espressif8266 board = esp12e framework = arduino @@ -18,26 +18,4 @@ lib_deps = https://github.com/aZholtikov/ZHNetwork https://github.com/aZholtikov/ZHConfig bblanchon/ArduinoJson@^6.19.4 - me-no-dev/ESP Async WebServer@^1.2.3 - -[env:esp8285] -platform = espressif8266 -board = esp8285 -framework = arduino -lib_deps = - https://github.com/aZholtikov/ZHNetwork - https://github.com/aZholtikov/ZHConfig - bblanchon/ArduinoJson@^6.19.4 - me-no-dev/ESP Async WebServer@^1.2.3 - -[env:esp8285-ota] -platform = espressif8266 -board = esp8285 -framework = arduino -upload_port = 192.168.4.1 -upload_protocol = espota -lib_deps = - https://github.com/aZholtikov/ZHNetwork - https://github.com/aZholtikov/ZHConfig - bblanchon/ArduinoJson@^6.19.4 - me-no-dev/ESP Async WebServer@^1.2.3 + me-no-dev/ESP Async WebServer@^1.2.3 \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 11a73bf..e7dff0a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -22,11 +22,11 @@ String getValue(String data, char separator, byte index); void changeLedState(void); -const String firmware{"1.1"}; +const String firmware{"1.11"}; String espnowNetName{"DEFAULT"}; -String deviceName{"ESP-NOW light/led strip"}; +String deviceName = "ESP-NOW light " + String(ESP.getChipId(), HEX); uint8_t ledType{ENLT_NONE}; bool ledStatus{false}; @@ -46,6 +46,9 @@ bool wasMqttAvailable{false}; uint8_t gatewayMAC[6]{0}; +const String payloadOn{"ON"}; +const String payloadOff{"OFF"}; + ZHNetwork myNet; AsyncWebServer webServer(80); @@ -106,7 +109,7 @@ void setup() myNet.setOnConfirmReceivingCallback(onConfirmReceiving); WiFi.mode(WIFI_AP_STA); - WiFi.softAP(("ESP-NOW Light " + myNet.getNodeMac()).c_str(), "12345678", 1, 0); + WiFi.softAP(("ESP-NOW light " + String(ESP.getChipId(), HEX)).c_str(), "12345678", 1, 0); apModeHideTimer.once(300, apModeHideTimerCallback); setupWebServer(); @@ -165,7 +168,7 @@ void onUnicastReceiving(const char *data, const byte *sender) { deserializeJson(json, incomingData.message); if (json["set"]) - ledStatus = json["set"] == "ON" ? true : false; + ledStatus = json["set"] == payloadOn ? true : false; if (json["brightness"]) brightness = json["brightness"]; if (json["temperature"]) @@ -181,7 +184,7 @@ void onUnicastReceiving(const char *data, const byte *sender) } if (incomingData.payloadsType == ENPT_UPDATE) { - WiFi.softAP(("ESP-NOW Light " + myNet.getNodeMac()).c_str(), "12345678", 1, 0); + WiFi.softAP(("ESP-NOW light " + String(ESP.getChipId(), HEX)).c_str(), "12345678", 1, 0); webServer.begin(); apModeHideTimer.once(300, apModeHideTimerCallback); } @@ -311,7 +314,7 @@ void sendAttributesMessage() uint32_t days = hours / 24; esp_now_payload_data_t outgoingData{ENDT_LED, ENPT_ATTRIBUTES}; StaticJsonDocument json; - json["Type"] = "ESP-NOW Led/Light Strip"; + json["Type"] = "ESP-NOW light"; json["MCU"] = "ESP8266"; json["MAC"] = myNet.getNodeMac(); json["Firmware"] = firmware; @@ -352,6 +355,8 @@ void sendConfigMessage() json["unit"] = 1; json["type"] = HACT_LIGHT; json["class"] = ledType; + json["payload_on"] = payloadOn; + json["payload_off"] = payloadOff; char buffer[sizeof(esp_now_payload_data_t::message)]{0}; serializeJsonPretty(json, buffer); memcpy(outgoingData.message, buffer, sizeof(esp_now_payload_data_t::message)); @@ -360,7 +365,7 @@ void sendConfigMessage() myNet.sendUnicastMessage(temp, gatewayMAC, true); configMessageResendTimerSemaphore = true; - configMessageResendTimer.once(5, sendConfigMessage); + configMessageResendTimer.once(1, sendConfigMessage); } void sendStatusMessage() @@ -370,7 +375,7 @@ void sendStatusMessage() statusMessageTimerSemaphore = false; esp_now_payload_data_t outgoingData{ENDT_LED, ENPT_STATE}; StaticJsonDocument json; - json["state"] = ledStatus ? "ON" : "OFF"; + json["state"] = ledStatus ? payloadOn : payloadOff; json["brightness"] = brightness; json["temperature"] = temperature; json["rgb"] = String(red) + "," + String(green) + "," + String(blue); @@ -471,7 +476,7 @@ void gatewayAvailabilityCheckTimerCallback() void apModeHideTimerCallback() { - WiFi.softAP(("ESP-NOW Light " + myNet.getNodeMac()).c_str(), "12345678", 1, 1); + WiFi.softAP(("ESP-NOW light " + String(ESP.getChipId(), HEX)).c_str(), "12345678", 1, 1); webServer.end(); }