From f5ba8274889f4b597fbfd56134954a4881a0f3e8 Mon Sep 17 00:00:00 2001 From: Mit4el Date: Thu, 27 Mar 2025 22:19:36 +0300 Subject: [PATCH 1/4] fix wifi bk7231n --- include/Const.h | 10 +++++++++- include/utils/WiFiUtils.h | 2 +- platformio.ini | 2 +- src/Main.cpp | 6 +++--- src/WsServer.cpp | 6 +++--- src/modules/API.cpp | 26 ++------------------------ src/utils/WiFiUtils.cpp | 8 ++++---- 7 files changed, 23 insertions(+), 37 deletions(-) diff --git a/include/Const.h b/include/Const.h index 691983f0..2010e944 100644 --- a/include/Const.h +++ b/include/Const.h @@ -104,11 +104,19 @@ WEB_SOCKETS_FRAME_SIZE создан для того что бы не загру #define MIN_DATETIME 1575158400 #define LEAP_YEAR(Y) (((1970 + Y) > 0) && !((1970 + Y) % 4) && (((1970 + Y) % 100) || !((1970 + Y) % 400))) +#ifdef LIBRETINY +//#define WIFI_ASYNC +#endif + +#ifdef ESP32 +#define WIFI_ASYNC +#endif + // задачи таскера enum TimerTask_t { WIFI_SCAN, WIFI_MQTT_CONNECTION_CHECK, -#ifndef ESP8266 +#ifdef WIFI_ASYNC WIFI_CONN, #endif TIME, diff --git a/include/utils/WiFiUtils.h b/include/utils/WiFiUtils.h index 9620b7f8..90934b90 100644 --- a/include/utils/WiFiUtils.h +++ b/include/utils/WiFiUtils.h @@ -5,7 +5,7 @@ boolean isNetworkActive(); uint8_t getNumAPClients(); bool startAPMode(); -#ifdef ESP8266 +#ifndef WIFI_ASYNC void routerConnect(); boolean RouterFind(std::vector jArray); #else diff --git a/platformio.ini b/platformio.ini index 00fd3a7f..5b6945af 100644 --- a/platformio.ini +++ b/platformio.ini @@ -456,7 +456,7 @@ upload_speed = 921600 monitor_speed = 115200 build_flags = -Dbk7231n="bk7231n" - -DLT_LOGLEVEL=LT_LEVEL_DEBUG + -DLT_LOGLEVEL=LT_LEVEL_FATAL -DLT_DEBUG_ALL=1 -DPROJECT_DATA_DIR="data_svelte" -DLT_USE_TIME=1 diff --git a/src/Main.cpp b/src/Main.cpp index d05248f9..18fd4a31 100644 --- a/src/Main.cpp +++ b/src/Main.cpp @@ -201,7 +201,7 @@ void setup() { initErrorMarker(SETUPINET_ERRORMARKER); // подключаемся к роутеру -#ifdef ESP8266 +#ifndef WIFI_ASYNC routerConnect(); #else WiFiUtilsItit(); @@ -237,7 +237,7 @@ void setup() { // инициализация задач переодического выполнения periodicTasksInit(); -#if defined(ESP8266) +#if !defined(WIFI_ASYNC) // Перенесли после получения IP, так как теперь работа WiFi асинхронная // запуск работы udp addThisDeviceToList(); @@ -306,7 +306,7 @@ void setup() { } void loop() { -#if !defined(ESP8266) +#if defined(WIFI_ASYNC) static bool udpFirstFlag = true; // Перенесли после получения IP, так как теперь работа WiFi асинхронная if (isNetworkActive() && udpFirstFlag) { diff --git a/src/WsServer.cpp b/src/WsServer.cpp index e8201934..a4f5268a 100644 --- a/src/WsServer.cpp +++ b/src/WsServer.cpp @@ -143,7 +143,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) sendFileToWsByFrames("/widgets.json", "widget", "", num, WEB_SOCKETS_FRAME_SIZE); sendFileToWsByFrames("/config.json", "config", "", num, WEB_SOCKETS_FRAME_SIZE); sendStringToWs("settin", settingsFlashJson, num); -#ifndef ESP8266 +#ifdef WIFI_ASYNC ssidListHeapJson = "{}"; jsonWriteStr_(ssidListHeapJson, "0", "Scanning..."); #endif @@ -161,7 +161,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) sendStringToWs("errors", errorsHeapJson, num); // если не было создано приема данных по udp - то создадим его addThisDeviceToList(); -#ifndef ESP8266 +#ifdef WIFI_ASYNC settingsFlashJson = readFile(F("settings.json"), 4096); settingsFlashJson.replace("\r\n", ""); Serial.println(settingsFlashJson); @@ -183,7 +183,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) // запуск асинхронного сканирования wifi сетей при нажатии выпадающего // списка if (headerStr == "/scan|") { -#ifdef ESP8266 +#ifndef WIFI_ASYNC std::vector jArray; jsonReadArray(settingsFlashJson, "routerssid", jArray); RouterFind(jArray); diff --git a/src/modules/API.cpp b/src/modules/API.cpp index c37672b5..6e4dde81 100644 --- a/src/modules/API.cpp +++ b/src/modules/API.cpp @@ -1,35 +1,13 @@ #include "ESPConfiguration.h" -void* getAPI_Cron(String subtype, String params); -void* getAPI_Loging(String subtype, String params); -void* getAPI_LogingDaily(String subtype, String params); -void* getAPI_IoTMath(String subtype, String params); -void* getAPI_owmWeather(String subtype, String params); void* getAPI_Timer(String subtype, String params); -void* getAPI_Variable(String subtype, String params); -void* getAPI_VButton(String subtype, String params); -void* getAPI_AnalogAdc(String subtype, String params); void* getAPI_BL0937(String subtype, String params); -void* getAPI_UART(String subtype, String params); -void* getAPI_AnalogBtn(String subtype, String params); -void* getAPI_ButtonIn(String subtype, String params); -void* getAPI_ButtonOut(String subtype, String params); +void* getAPI_BL0942(String subtype, String params); void* getAPI(String subtype, String params) { void* tmpAPI; -if ((tmpAPI = getAPI_Cron(subtype, params)) != nullptr) return tmpAPI; -if ((tmpAPI = getAPI_Loging(subtype, params)) != nullptr) return tmpAPI; -if ((tmpAPI = getAPI_LogingDaily(subtype, params)) != nullptr) return tmpAPI; -if ((tmpAPI = getAPI_IoTMath(subtype, params)) != nullptr) return tmpAPI; -if ((tmpAPI = getAPI_owmWeather(subtype, params)) != nullptr) return tmpAPI; if ((tmpAPI = getAPI_Timer(subtype, params)) != nullptr) return tmpAPI; -if ((tmpAPI = getAPI_Variable(subtype, params)) != nullptr) return tmpAPI; -if ((tmpAPI = getAPI_VButton(subtype, params)) != nullptr) return tmpAPI; -if ((tmpAPI = getAPI_AnalogAdc(subtype, params)) != nullptr) return tmpAPI; if ((tmpAPI = getAPI_BL0937(subtype, params)) != nullptr) return tmpAPI; -if ((tmpAPI = getAPI_UART(subtype, params)) != nullptr) return tmpAPI; -if ((tmpAPI = getAPI_AnalogBtn(subtype, params)) != nullptr) return tmpAPI; -if ((tmpAPI = getAPI_ButtonIn(subtype, params)) != nullptr) return tmpAPI; -if ((tmpAPI = getAPI_ButtonOut(subtype, params)) != nullptr) return tmpAPI; +if ((tmpAPI = getAPI_BL0942(subtype, params)) != nullptr) return tmpAPI; return nullptr; } \ No newline at end of file diff --git a/src/utils/WiFiUtils.cpp b/src/utils/WiFiUtils.cpp index 5b7bf79d..6ebcc37d 100644 --- a/src/utils/WiFiUtils.cpp +++ b/src/utils/WiFiUtils.cpp @@ -6,7 +6,7 @@ #define TRIESONE 20 // количество секунд ожидания подключения к одной сети из несколких #define TRIES 30 // количество секунд ожидания подключения сети если она одна -#ifndef ESP8266 +#ifdef WIFI_ASYNC std::vector _ssidList; std::vector _passwordList; // номер сети, для перебирания в момент подключения к сетям из массива @@ -397,7 +397,7 @@ void routerConnect() #endif bool startAPMode() { -#ifndef ESP8266 +#ifdef WIFI_ASYNC wifiConnecting = false; currentNetwork = 0; connectionAttempts = 0; @@ -427,7 +427,7 @@ bool startAPMode() WIFI_SCAN, 30 * 1000, [&](void *) { -#ifdef ESP8266 +#ifndef WIFI_ASYNC std::vector jArray; jsonReadArray(settingsFlashJson, "routerssid", jArray); for (int8_t i = 0; i < jArray.size(); i++) @@ -449,7 +449,7 @@ bool startAPMode() return true; } -#if defined(ESP8266) +#ifndef WIFI_ASYNC boolean RouterFind(std::vector jArray) { bool res = false; From 6765f265ac6f3cc71ef6d0252bdd11e97775b09c Mon Sep 17 00:00:00 2001 From: Mit4el Date: Thu, 27 Mar 2025 23:11:34 +0300 Subject: [PATCH 2/4] fix uart bk7231n --- include/classes/IoTUart.h | 2 ++ src/classes/IoTUart.cpp | 8 ++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/include/classes/IoTUart.h b/include/classes/IoTUart.h index e45697ca..576f7b27 100644 --- a/include/classes/IoTUart.h +++ b/include/classes/IoTUart.h @@ -28,6 +28,8 @@ class IoTUart : public IoTItem { protected: #ifdef ESP8266 SoftwareSerial* _myUART; +#elif LIBRETINY + SerialClass* _myUART; #else Stream* _myUART; #endif diff --git a/src/classes/IoTUart.cpp b/src/classes/IoTUart.cpp index d6678634..f4b39e65 100644 --- a/src/classes/IoTUart.cpp +++ b/src/classes/IoTUart.cpp @@ -9,11 +9,11 @@ IoTUart::IoTUart(const String& parameters) : IoTItem(parameters) { jsonRead(parameters, "speed", _speed); jsonRead(parameters, "line", _line); -#ifdef ESP8266 +#if defined (ESP8266) _myUART = new SoftwareSerial(_rx, _tx); _myUART->begin(_speed); #endif -#ifdef ESP32 +#if defined (ESP32) if (_line >= 0) { _myUART = new HardwareSerial(_line); ((HardwareSerial*)_myUART)->begin(_speed, SERIAL_8N1, _rx, _tx); @@ -22,6 +22,10 @@ IoTUart::IoTUart(const String& parameters) : IoTItem(parameters) { ((SoftwareSerial*)_myUART)->begin(_speed); } #endif +#if defined (LIBRETINY) + _myUART = new SerialClass(_rx, _tx); + _myUART->begin((unsigned long)_speed); +#endif } void IoTUart::loop() { From 940f68a90f1cef39de4935bba3dcd677e02884ba Mon Sep 17 00:00:00 2001 From: Mit4el Date: Thu, 27 Mar 2025 23:15:30 +0300 Subject: [PATCH 3/4] upd version --- include/Const.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/Const.h b/include/Const.h index 2010e944..155bcac5 100644 --- a/include/Const.h +++ b/include/Const.h @@ -2,7 +2,7 @@ #include "BuildTime.h" // Версия прошивки -#define FIRMWARE_VERSION 457 +#define FIRMWARE_VERSION 460 #ifdef esp8266_1mb_ota #define FIRMWARE_NAME "esp8266_1mb_ota" From ff7a3550d28559c42e8072f5b166c2a3b542b593 Mon Sep 17 00:00:00 2001 From: Mit4el Date: Sat, 29 Mar 2025 20:32:13 +0300 Subject: [PATCH 4/4] fix sync time bk7231n --- src/NTP.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/NTP.cpp b/src/NTP.cpp index c6b3a227..bac99e72 100644 --- a/src/NTP.cpp +++ b/src/NTP.cpp @@ -64,6 +64,10 @@ void synchTime() { if (sntp_enabled()) { sntp_stop(); } + sntp_setoperatingmode(SNTP_OPMODE_POLL); + sntp_setservername(0, jsonReadStr(settingsFlashJson, F("ntp")).c_str()); + sntp_setservername(1, "pool.ntp.org"); + sntp_setservername(2, "ru.pool.ntp.org"); sntp_init(); #else