Coder Social home page Coder Social logo

s-labc / asyncelegantota-ru Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 1.0 822 KB

Русскоязычная адаптация библиотеки AsyncElegantOTA

Home Page: https://github.com/ayushsharma82/AsyncElegantOTA

License: MIT License

Python 0.77% C++ 2.60% C 88.06% JavaScript 1.32% HTML 0.32% Vue 6.94%
esp32 arduino esp8266 ota-update

asyncelegantota-ru's Introduction


Это репо является копией этого https://github.com/ayushsharma82/AsyncElegantOTA с русскоязычным переводом интефейса веб-страницы и сообщений. Ресурс [buy me a coffee](https://www.buymeacoffee.com/) не работает у нас, я убрал его плагин со страницы. Все остальоне как в оригинале. Про то как устроена страница обновления и как ее изменять написано тут https://github.com/ayushsharma82/AsyncElegantOTA/issues/68. Ниже идет практически дословный перевод текста автора оригинальной библиотеки.


Выпоняет асинхронное обновление через OTA у ESP8266 и ESP32

AsyncElegantOTA предоставляет красивый интерфейс для загрузки обновлений `.bin` по воздуху в модули ESP с точным статусом и прогрессом, отображаемым в пользовательском интерфейсе. Библиотека показывает текущий процесс загрузки, а после завершения отобразит статус. Эта версия библиотеки использует AsyncWebServer. Спасибо @me-no-dev за прекрасную библиотеку веб-сервера.





Как установить

Ручная установка

Для Windows: Скачать Репо и извлечь .zip в Документы>Arduino>Libraries>{создать папку "AsyncElegantOTA-ru"}

Для Linux: Скачать Репо и извлечь .zip в Sketchbook>Libraries>{создать каталог "AsyncElegantOTA-ru"}

Ручная установка через IDE

Скачать Репо, Скетч > Подключить библиотеку > Добавить .Zip библиотеку > Вывбрать скаченный файл .zip.


Документация

AsyncElegantOTA — очень простая библиотека, которая выполняет все, что нужно одной строчкой. Честно говоря, это просто библиотека-оболочка, которая внедряет собственную элегантную веб-страницу вместо уродливой страницы загрузки, которая по умолчанию входит в библиотеку Arduino.

Подключите библиотеку AsyncElegantOTA #include <AsyncElegantOTA.h> в начале скетча Arduino.

В методе setup() вставьте это - AsyncElegantOTA.begin(&server); перед этим - server.begin();

Вот и все!

Теперь скопируйте IP адрес из Монитора Порта и перейдите по ссылке http://<IP адрес>/update через браузер. Например http://192.168.1.123/update


Дополнительная безопасность:

Если вы хотите добавить логин с паролем на веб-страницу OTA, замените AsyncElegantOTA.begin(&server); на AsyncElegantOTA.begin(&server, "username", "password");. Это предотвратит несанкционированные запросы веб-страницы и загрузку прошивки на MCU.


Проблема с антивирусом: Если на вашем компьютере установлен антивирус с брандмауэром, индикатор выполнения на веб-странице мгновенно покажет 100% из-за кэширования запросов антивирусом. Для этого нет решения, если вы не хотите отключить антивирус или добавить локальные IP-адреса в исключения. То же самое будет с iOS, Safari, они будут кэшировать исходящие запросы.


Руководства

Руководства для AsyncElegantOTA доступны на RandomNerdTutorials.

ESP8266

Arduino IDE:

https://randomnerdtutorials.com/esp8266-nodemcu-ota-over-the-air-arduino/

PlatformIO (ручной метод):

https://randomnerdtutorials.com/esp8266-nodemcu-ota-over-the-air-vs-code/


ESP32

Arduino IDE:

https://randomnerdtutorials.com/esp32-ota-over-the-air-arduino/

PlatformIO (ручной метод):

https://randomnerdtutorials.com/esp32-ota-over-the-air-vs-code/


PlatformIO автоматический метод

  • Скопируйте файл «platformio_upload.py» из этого репозитория в ту же папку, где находится ваш файл platformio.ini.
  • Установите метод загрузки для вашего проекта в файле platformio.ini:
extra_scripts = platformio_upload.py
upload_protocol = custom
upload_url = <Ваш URL-адрес для загрузки, например http://192.168.1.123/update>

Примеры

Для ESP8266:

#include <ESP8266WiFi.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include <AsyncElegantOTA_RU.h>

const char* ssid = "........";
const char* password = "........";

AsyncWebServer server(80);

void setup(void) {
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.println();

  // Ожидание подключения
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println();
  Serial.print("Подключен к: ");
  Serial.println(ssid);
  Serial.print("IP адрес: ");
  Serial.println(WiFi.localIP());

  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request) {
    request->send(200, "text/plain", "Hi! I am ESP8266.");
  });

  AsyncElegantOTAru.begin(&server);
  Serial.println("AsyncElegantOTAru запущен");
  
  server.begin();
  Serial.println("HTTP сервер запущен");
}

void loop(void) {
}


Для ESP32:

#include <WiFi.h>
#include <AsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include <AsyncElegantOTA_RU.h>

const char* ssid = "........";
const char* password = "........";

AsyncWebServer server(80);

void setup(void) {
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.println();

  // Ожидание подключения
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println();
  Serial.print("Подключен к: ");
  Serial.println(ssid);
  Serial.print("IP адрес: ");
  Serial.println(WiFi.localIP());

  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request) {
    request->send(200, "text/plain", "Hi! I am ESP32.");
  });

  AsyncElegantOTAru.begin(&server);
  Serial.println("AsyncElegantOTAru запущен");

  server.begin();
  Serial.println("HTTP сервер запущен");
}

void loop(void) {
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.