OTA - ESP32 - Fungovanie

Odpovědět
martinius96
Příspěvky: 579
Registrován: 01 srp 2017, 19:29
Reputation: 0
Bydliště: Poprad
Kontaktovat uživatele:

OTA - ESP32 - Fungovanie

Příspěvek od martinius96 » 29 zář 2019, 00:58

Ahoj, chcem konečne vyskúšať OTA pre ESP32, prvotne na ESP-IDF (zo školských dôvodov) a neskôr v Arduino core.
Mám niekoľko otázok a neviem, či funkčnosti OTA správne rozumiem.

Existuje viacero príkladov s OTA:
OTA BASIC - nový sketch nahrajem skrz Arduino IDE (V portoch sa mi objaví COM port na sieti)
OTA Web Updater - nový sketch nahrajem skrz formulár - HTML stránku, ktorá beží na ESP32 ako webserveri (nahrám binárny súbor)
ESP-IDF obsahuje aj HTTP/HTTPS OTA, kedy je sketch nahratý na webserveri v LAN sieti / na internete (do konfigurácie sa zadáva priama cesta k binárnemu súboru).

Zaujímalo by ma, či musí nový sketch obsahovať aj tú OTA časť, alebo nie? Stačí iba nahrať program aký chcem a OTA bude fungovať stále, ak som ju prvý krát nahral? Ak sa nemýlim, tak sa zmaže, keďže sa prepíše flash novým sketchom. Pri prvotnom nahrávaní OTA sketch sa musí vypáliť aj bootloader, ktorý je pozmenený, ak som tomu správne pochopil.
Ak ste pracovali s ESP-IDF tak by ma zaujímalo, ako ESP32 pozná, že binárka (ktorá je na tom istom webovom umiestnení) bola zmenená? Využíva sa nejaký hash checksum obsahu binárky? Vďaka...

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: OTA - ESP32 - Fungovanie

Příspěvek od jankop » 29 zář 2019, 19:29

Přestože jsem neviděl ESP32 ani z rychlíku, dovolím si odpovědět za esp8266. Myslím, že základní princip je tentýž.
Když flashneš přes OTA, tak ten binár musí obsahovat zase sekci OTA, jinak holt máš smůlu a přes WiFi už nic nenahraješ.
OTA Web Updater - nový sketch nahrajem skrz formulár - HTML stránku, ktorá beží na ESP32 ako webserveri (nahrám binárny súbor)
Tohle používám a funguje to velmi příjemně.
Pri prvotnom nahrávaní OTA sketch sa musí vypáliť aj bootloader, ktorý je pozmenený, ak som tomu správne pochopil.
No... u ESP8266 je bootloader v ROM, tam se tedy jisto-jistě nic nenahrává.
ako ESP32 pozná, že binárka (ktorá je na tom istom webovom umiestnení) bola zmenená?
V případě esp8266 se to nepozná a je na programátorovi, aby zajistil, aby se to neloudovalo pořád dokola, odhaduji, že totéž platí pro esp32.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 19 hostů