This commit is contained in:
ok-home
2023-09-26 20:38:08 +07:00
parent 2f95d3e60a
commit de7b268a38
2 changed files with 84 additions and 23 deletions

View File

@@ -7,45 +7,50 @@
# ESP32 OTA обновление через websocket с простым WEB интерфейсом
- Подключается как компонент к вашей программе
- Использует websocket протокол
- Подключается к любому web серверу на esp32, использующему websocket протокол, например (examples/protocols/http_server/ws_echo_server)
- Подключается к любому web серверу на esp32, использующему websocket протокол, например (esp-idf examples/protocols/http_server/ws_echo_server)
- Пример - example_ota_ws
- Web интерфейс
-- Выбор файла прошивки
-- Загрузка прошивки в esp32
-- Контроль загрузки прошивки
-- После обновления прошивки - подтверждение обновления или откат на предыдущую версию
-- выбор URI страницы в menuconfig
- Выбор файла прошивки
- Загрузка прошивки в esp32
- Контроль загрузки прошивки
- После обновления прошивки - подтверждение обновления или откат на предыдущую версию
- Выбор URI страницы OTA в menuconfig
- Обновление скачивается частями, размер фрагмента закачки в menuconfig
- Пример подключения
```
#include "ota_ws_update.h" // handler definition
``
// start webserver from esp-idf "examples/protocols/http_server/ws_echo_server"
static httpd_handle_t start_webserver(void)
{
httpd_handle_t server = NULL;
httpd_config_t config = HTTPD_DEFAULT_CONFIG();
// Start the httpd server
ESP_LOGI(TAG, "Starting server on port: '%d'", config.server_port);
if (httpd_start(&server, &config) == ESP_OK) {
// Registering the ws handler
ESP_LOGI(TAG, "Registering URI handlers");
httpd_register_uri_handler(server, &ws);
//register ota_ws handler
ota_ws_register_uri_handler(server);
// end register ota_ws handler
return server;
}
ESP_LOGI(TAG, "Error starting server!");
return NULL;
}
``
Функция ```console.log()```
выводит текст в консоль.
Сумму двух переменных
можно вывести так:
```javascript
const a = 1
const b = 2
console.log(a + b)
```
- Пример partitions.csv
```
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x4000
otadata, data, ota, , 0x2000
phy_init, data, phy, , 0x1000
ota_0, app, ota_0, , 1M
ota_1, app, ota_1, , 1M
```
- Параметры menuconfig
- CONFIG_PARTITION_TABLE_CUSTOM=y
- CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
- CONFIG_WS_TRANSPORT=y
- CONFIG_APP_ROLLBACK_ENABLE=y

56
README.md Normal file
View File

@@ -0,0 +1,56 @@
[En](/README.md)
| Supported Targets |
| ESP32 ESP32S3 ESP32C3 |
| ----------------- |
# ESP32 OTA update via websocket with a simple WEB interface
- Connects as a component to your program
- Uses websocket protocol
- Connects to any web server on esp32 that uses the websocket protocol, for example (esp-idf examples/protocols/http_server/ws_echo_server)
- Example - example_ota_ws
- Web interface
- Select firmware file
- Upload firmware to esp32
- Firmware download control
- After updating the firmware - confirm the update or roll back to the previous version
- Select OTA page URI in menuconfig
- The update is downloaded in fragments, the size of the download fragment is in menuconfig
- Connection example
```
#include "ota_ws_update.h" // handler definition
// start webserver from esp-idf "examples/protocols/http_server/ws_echo_server"
static httpd_handle_t start_webserver(void)
{
httpd_handle_t server = NULL;
httpd_config_t config = HTTPD_DEFAULT_CONFIG();
// Start the httpd server
ESP_LOGI(TAG, "Starting server on port: '%d'", config.server_port);
if (httpd_start(&server, &config) == ESP_OK) {
// Registering the ws handler
ESP_LOGI(TAG, "Registering URI handlers");
//register ota_ws handler
ota_ws_register_uri_handler(server);
// end register ota_ws handler
return server;
}
ESP_LOGI(TAG, "Error starting server!");
return NULL;
}
```
- Example partitions.csv
```
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x4000
otadata, data, ota, , 0x2000
phy_init, data, phy, , 0x1000
ota_0, app, ota_0, , 1M
ota_1, app, ota_1, , 1M
```
- menuconfig options
- CONFIG_PARTITION_TABLE_CUSTOM=y
- CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
- CONFIG_WS_TRANSPORT=y
- CONFIG_APP_ROLLBACK_ENABLE=y