Przy zamkniętym urządzeniu wygodnie jest wgrać nowy program przez sieć. ElegantOTA dodaje do działającego programu ESP32 panel aktualizacji dostępny w przeglądarce. Pierwsze uruchomienie nadal wymaga przygotowania firmware i zwykle przewodu USB.

Co musi być gotowe przed aktualizacją

Wybierz w środowisku kompilacji właściwą płytkę i układ partycji obsługujący OTA. W pamięci musi zmieścić się nowa aplikacja. Samo zwiększenie rozmiaru pliku BIN albo zmiana nazwy pliku nie rozwiąże braku miejsca. Zachowaj ustawienia użyte do pierwszego wgrania: wariant układu, flash, PSRAM oraz partycje.

Następnie uruchom zwykłe połączenie WiFi i sprawdź adres IP płytki w monitorze szeregowym. Na tym etapie nie trzeba jeszcze aktualizować żadnego programu. Telefon lub komputer z przeglądarką musi mieć dostęp do tej samej sieci lokalnej.

Elementy programu

W prostym projekcie opartym na synchronicznym WebServer potrzebujesz biblioteki ElegantOTA i obsługi serwera w pętli. Poniżej jest fragment integracji do istniejącego szkicu, po zestawieniu WiFi; nazwy otaUser i otaPassword oznaczają własne, niepuste dane dostępowe:

#include <WebServer.h>
#include <ElegantOTA.h>

WebServer server(80);

// W setup(), gdy WiFi już działa:
// ElegantOTA.begin(&server, otaUser, otaPassword);
// server.begin();

// W loop():
// server.handleClient();
// ElegantOTA.loop();

Umieść wywołania wskazane w komentarzach w odpowiednich funkcjach swojego programu. Nie twórz drugiej funkcji setup() ani drugiej instancji serwera, jeśli projekt już je ma. W wariancie asynchronicznym używa się innego typu serwera i innej integracji.

Aktualna dokumentacja wymaga ElegantOTA.loop() także do obsługi restartu po aktualizacji. Panel otwiera się pod http://ADRES_IP/update, a niekoniecznie pod samym adresem głównym. Zobacz instrukcję integracji autora.

Pierwsza aktualizacja krok po kroku

  1. Wgraj program zawierający obsługę OTA przez USB i sprawdź, czy panel działa.
  2. Zmień drobiazg widoczny po uruchomieniu, np. numer wersji wypisywany w logu.
  3. Skompiluj program dla tych samych ustawień płytki i wyeksportuj plik aplikacji.
  4. Otwórz panel /update, zaloguj się i wybierz właściwy typ aktualizacji.
  5. Wgraj plik, poczekaj na zakończenie oraz restart, a następnie sprawdź numer wersji.

Nie wybieraj pełnego obrazu flash z bootloaderem jako zwykłej aktualizacji aplikacji. Zachowaj poprzednią wersję programu i dostęp do USB na wypadek błędnej konfiguracji WiFi w nowym wsadzie. Kolejna wersja również musi zawierać obsługę ElegantOTA; wgranie programu bez niej usunie panel aktualizacji.

Panel aktualizacji jest dostępem do programu

Włącz uwierzytelnianie. ElegantOTA aktywuje je, gdy podasz niepusty login i hasło; szczegóły opisuje dokumentacja zabezpieczenia panelu. HTTP Basic Authentication nie szyfruje połączenia HTTP. Nie wystawiaj tego serwera bezpośrednio do Internetu; używaj zaufanej sieci lokalnej lub zabezpieczonego dostępu do niej.

Ten poradnik opisuje integrację programową. Przed użyciem OTA w urządzeniu sterującym napędem lub przekaźnikiem przygotuj także bezpieczny stan wyjść podczas restartu i testuj go bez podłączonego obciążenia.