mirror of
https://github.com/ok-home/ota_ws_update.git
synced 2025-11-13 22:03:27 +03:00
readme
This commit is contained in:
29
README-RU.md
29
README-RU.md
@@ -4,18 +4,23 @@
|
|||||||
| ESP32 ESP32S3 ESP32C3 |
|
| ESP32 ESP32S3 ESP32C3 |
|
||||||
| ----------------- |
|
| ----------------- |
|
||||||
|
|
||||||
# ESP32 OTA обновление через websocket с простым WEB интерфейсом
|
# ESP32 OTA обновление через WebsSocket с простым WEB интерфейсом. Опционально PreEncrypted режим.
|
||||||
- Подключается как компонент к вашей программе
|
- Подключается как компонент к вашей программе
|
||||||
- Использует websocket протокол
|
- Не требует внешних серверов для хранения прошивок OTA, предназначен в первую очередь для работы в локальной сети.
|
||||||
- Подключается к любому web серверу на esp32, использующему websocket протокол, например (esp-idf examples/protocols/http_server/ws_echo_server)
|
- Использует WebsSocket или WebsSocket Secure протокол.
|
||||||
|
- Подключается к любому web серверу на esp32, использующему WebSocket протокол, например (esp-idf examples/protocols/http_server/ws_echo_server) или (esp-idf examples/protocols/https_server/wss_server) как URI handler.
|
||||||
|
- в зависимости от протокола сервера (http/https) будет выбран протокол обмена (ws/wss)
|
||||||
|
- режим PreEncrypted (espressif/esp_encrypted_img) подключается в Menuconfig
|
||||||
|
- для PreEncrypted режима требуется увеличение размера стека httpd_config_t config.stack_size = 4096*4;
|
||||||
|
- Подробности использования PreEncrypted режима https://components.espressif.com/components/espressif/esp_encrypted_img
|
||||||
- Пример - example_ota_ws
|
- Пример - example_ota_ws
|
||||||
- Web интерфейс
|
- Web интерфейс
|
||||||
- Выбор файла прошивки
|
- Выбор файла прошивки
|
||||||
- Загрузка прошивки в esp32
|
- Загрузка прошивки в esp32
|
||||||
- Контроль загрузки прошивки
|
- Контроль загрузки прошивки
|
||||||
- После обновления прошивки - подтверждение обновления или откат на предыдущую версию
|
- После обновления прошивки - подтверждение обновления или откат на предыдущую версию
|
||||||
- Выбор URI страницы OTA в menuconfig
|
- Выбор URI страницы OTA в Menuconfig
|
||||||
- Обновление скачивается частями, размер фрагмента закачки в menuconfig
|
- Обновление скачивается частями, размер фрагмента закачки в Menuconfig
|
||||||
- Пример подключения
|
- Пример подключения
|
||||||
```
|
```
|
||||||
#include "ota_ws_update.h" // handler definition
|
#include "ota_ws_update.h" // handler definition
|
||||||
@@ -48,8 +53,14 @@ ota_0, app, ota_0, , 1M
|
|||||||
ota_1, app, ota_1, , 1M
|
ota_1, app, ota_1, , 1M
|
||||||
```
|
```
|
||||||
- Параметры menuconfig
|
- Параметры menuconfig
|
||||||
- CONFIG_PARTITION_TABLE_CUSTOM=y
|
- PARTITION_TABLE_CUSTOM=y
|
||||||
- CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
- PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
||||||
- CONFIG_HTTPD_WS_SUPPORT=y
|
- HTTPD_WS_SUPPORT=y
|
||||||
- CONFIG_APP_ROLLBACK_ENABLE=y
|
- APP_ROLLBACK_ENABLE=y
|
||||||
|
- OTA_DEFAULT_URI - адрес web интерфейса OTA
|
||||||
|
- OTA_DEFAULT_WS_URI - адрес ws/wss интерфейса OTA
|
||||||
|
- OTA_CHUNK_SIZE - размер фрагментов заказчки
|
||||||
|
- OTA_PRE_ENCRYPTED_MODE - включение PreEncrypted режима
|
||||||
|
- OTA_PRE_ENCRYPTED_RSA_KEY_LOCATION - место хранения rsa_private_key ( в каталоге компонента или в каталоге проекта )
|
||||||
|
- OTA_PRE_ENCRYPTED_RSA_KEY_DIRECTORY - директория хранения rsa_private_key
|
||||||
|
|
||||||
|
|||||||
72
README.md
72
README.md
@@ -4,18 +4,23 @@
|
|||||||
| ESP32 ESP32S3 ESP32C3 |
|
| ESP32 ESP32S3 ESP32C3 |
|
||||||
| ----------------- |
|
| ----------------- |
|
||||||
|
|
||||||
# ESP32 OTA update via websocket with a simple WEB interface
|
# ESP32 OTA update via WebsSocket with a simple WEB interface. Optional PreEncrypted mode.
|
||||||
- Connects as a component to your program
|
- Connects as a component to your program
|
||||||
- Uses websocket protocol
|
- Does not require external servers for storing OTA firmware, designed primarily for working on a local network.
|
||||||
- Connects to any web server on esp32 that uses the websocket protocol, for example (esp-idf examples/protocols/http_server/ws_echo_server)
|
- Uses WebsSocket or WebsSocket Secure protocol.
|
||||||
|
- Connects to any web server on esp32 that uses the WebSocket protocol, for example (esp-idf examples/protocols/http_server/ws_echo_server) or (esp-idf examples/protocols/https_server/wss_server) as a URI handler.
|
||||||
|
- depending on the server protocol (http/https), the exchange protocol (ws/wss) will be selected
|
||||||
|
- PreEncrypted mode (espressif/esp_encrypted_img) is enabled in Menuconfig
|
||||||
|
- PreEncrypted mode requires an increase in the stack size httpd_config_t config.stack_size = 4096*4;
|
||||||
|
- Details of using PreEncrypted mode https://components.espressif.com/components/espressif/esp_encrypted_img
|
||||||
- Example - example_ota_ws
|
- Example - example_ota_ws
|
||||||
- Web interface
|
- Web interface
|
||||||
- Select firmware file
|
- Select firmware file
|
||||||
- Upload firmware to esp32
|
- Upload firmware to esp32
|
||||||
- Firmware download control
|
- Firmware download control
|
||||||
- After updating the firmware - confirm the update or roll back to the previous version
|
- After updating the firmware - confirm the update or roll back to the previous version
|
||||||
- Select OTA page URI in menuconfig
|
- Select OTA page URI in Menuconfig
|
||||||
- The update is downloaded in fragments, the size of the download fragment is in menuconfig
|
- The update is downloaded in parts, the size of the download fragment is in Menuconfig
|
||||||
- Connection example
|
- Connection example
|
||||||
```
|
```
|
||||||
#include "ota_ws_update.h" // handler definition
|
#include "ota_ws_update.h" // handler definition
|
||||||
@@ -23,33 +28,38 @@
|
|||||||
// start webserver from esp-idf "examples/protocols/http_server/ws_echo_server"
|
// start webserver from esp-idf "examples/protocols/http_server/ws_echo_server"
|
||||||
static httpd_handle_t start_webserver(void)
|
static httpd_handle_t start_webserver(void)
|
||||||
{
|
{
|
||||||
httpd_handle_t server = NULL;
|
httpd_handle_t server = NULL;
|
||||||
httpd_config_t config = HTTPD_DEFAULT_CONFIG();
|
httpd_config_t config = HTTPD_DEFAULT_CONFIG();
|
||||||
// Start the httpd server
|
// Start the httpd server
|
||||||
ESP_LOGI(TAG, "Starting server on port: '%d'", config.server_port);
|
ESP_LOGI(TAG, "Starting server on port: '%d'", config.server_port);
|
||||||
if (httpd_start(&server, &config) == ESP_OK) {
|
if (httpd_start(&server, &config) == ESP_OK) {
|
||||||
ESP_LOGI(TAG, "Registering URI handlers");
|
ESP_LOGI(TAG, "Registering URI handlers");
|
||||||
/****************** Registering the ws handler ****************/
|
/****************** Registering the ws handler ****************/
|
||||||
ota_ws_register_uri_handler(server);
|
ota_ws_register_uri_handler(server);
|
||||||
// end register ota_ws handler
|
// end register ota_ws handler
|
||||||
return server;
|
return server;
|
||||||
}
|
}
|
||||||
ESP_LOGI(TAG, "Error starting server!");
|
ESP_LOGI(TAG, "Error starting server!");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
- Example partitions.csv
|
- Example partitions.csv
|
||||||
```
|
```
|
||||||
# Name, Type, SubType, Offset, Size, Flags
|
# Name, Type, SubType, Offset, Size, Flags
|
||||||
nvs, data, nvs, 0x9000, 0x4000
|
nvs, data, nvs, 0x9000, 0x4000
|
||||||
otadata, data, ota, , 0x2000
|
otadata, data, ota, , 0x2000
|
||||||
phy_init, data, phy, , 0x1000
|
phy_init, data, phy, , 0x1000
|
||||||
ota_0, app, ota_0, , 1M
|
ota_0, app, ota_0, , 1M
|
||||||
ota_1, app, ota_1, , 1M
|
ota_1, app, ota_1, , 1M
|
||||||
```
|
```
|
||||||
- menuconfig options
|
- menuconfig parameters
|
||||||
- CONFIG_PARTITION_TABLE_CUSTOM=y
|
- PARTITION_TABLE_CUSTOM=y
|
||||||
- CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
- PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
||||||
- CONFIG_HTTPD_WS_SUPPORT=y
|
- HTTPD_WS_SUPPORT=y
|
||||||
- CONFIG_APP_ROLLBACK_ENABLE=y
|
- APP_ROLLBACK_ENABLE=y
|
||||||
|
- OTA_DEFAULT_URI - OTA web interface address
|
||||||
|
- OTA_DEFAULT_WS_URI - ws/wss address of the OTA interface
|
||||||
|
- OTA_CHUNK_SIZE - size of order fragments
|
||||||
|
- OTA_PRE_ENCRYPTED_MODE - enable PreEncrypted mode
|
||||||
|
- OTA_PRE_ENCRYPTED_RSA_KEY_LOCATION - rsa_private_key storage location (in the component directory or in the project directory)
|
||||||
|
- OTA_PRE_ENCRYPTED_RSA_KEY_DIRECTORY - rsa_private_key storage directory
|
||||||
Reference in New Issue
Block a user