[ Príspevkov: 5 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.02.14
Prihlásený: 22.12.24
Príspevky: 450
Témy: 197 | 197
Bydlisko: Poprad-okolie

Over The Air (OTA) je označenie pre metódy distribúcie nového firmvéru a konfigurácie pre bezdrôtové zariadenia. Výhodou je možnosť distribuovať nový softvér prostredníctvom centrálneho bodu, ktorý dokáže odosielať softvér do všetkých zariadení, ktoré podporujú danú metódu. V praxi sa s OTA stretávame predovšetkým z operačných systémov Windows, Android, či iOS, kedy centrálny bod distribuuje aktualizáciu operačného systému a všetky zariadenia dokážu na aktualizáciu upozorniť používateľa.
OTA (Over The Air) - ESP32 - Arduino IDE
Na základe počiatočnej konfigurácie zariadenia je možné aktualizáciu stiahnuť a nainštalovať okamžite, alebo po jej potvrdení od používateľa. Metódy vzdialenej aktualizácie softvéru si našli uplatnenie aj v IoT (Internet of Things) odvetví. Inteligentné zariadenia je taktiež možné vzdialene aktualizovať, napríklad cez LAN sieť, internet s využitím centrálneho bodu, alebo inou implementáciou podporujúcou OTA.
OTA (Over The Air) - ESP32 - Arduino IDE
Platforma ESP32 sa taktiež radí k IoT platformám, ktoré podporujú vzdialenú aktualizáciu softvéru. Nakoľko sa dá programovať v rôznych jazykoch (Wiring [Arduino], ESP-IDF, MicroPython, Lua, Node.Js a ďalších), vyhotovil som krátky prehľad možnosti OTA metód v jazyku Wiring (Arduino) a ESP-IDF (Espressif IoT Development Framework).

ESP32 má k dispozícii flash pamäť, ktorá môže byť prispôsobená podľa potreby pre akúkoľvek aplikáciu. V prípade využívania OTA sa cez Partition tables implementuje do flash pamäte jej rozdelenie podľa pravidiel v tejto tabuľke. Štandardne bez OTA sa využíva pamäť pre program - factory_app o veľkosti 1MB a 3MB sú vyhradené pre SPIFFS sektor (Prípad Arduino IDE).

ESP32 má štandardne 4MB flash pamäť, existujú aj 8MB/16MB verzie. Vo väčšine prípadov s využitím OTA sa do flash pamäte pridajú partície pre OTA_1, OTA_2, OTA_DATA, pričom OTA_1,2 partície majú v ESP-IDF veľkosť 1MB. Pre OTA_DATA je štandardne vyhradený priestor o veľkosti 2kB. Partition table je opísaná jednoduchým .csv súborom. Prípadne existujú aj partition tables pre max app, kedy je takmer celá flash pamäť vyhradená iba pre hlavnú - factory_app.

Partícia OTA_DATA je zodpovedná za to, ktorá partícia bude aktuálne bootovateľná, obsahuje jej názov. Ak je partícia prázdna, nabootuje sa factory app. V prípade, že factory app neexistuje (prípad Arduino core s OTA partíciami), nabootuje sa OTA_0. OTA_DATA partícia je prepísaná pri aktualizácii softvéru pred bootovaním a reštartom ESP32.
OTA (Over The Air) - ESP32 - Arduino IDE
OTA v Arduino IDE
Príklady implementácii v jazyku Wiring obsahujú možnosť aktualizovať softvér cez LAN sieť prostredníctvom OTA sieťového portu priamo z Arduino IDE. Pre príklad aktualizácie softvéru cez LAN sieť - Basic OTA sa vyžaduje, aby používateľ, ktorý program do zariadenia nahráva bol v rovnakej sieti, ako ESP32. Údaje o WiFi sieti sú nastavené v zdrojovom kóde a sú súčasťou príkladu.

Prvý krát musí byť OTA program nahratý do ESP32 fyzicky prostredníctvom USB kábla (alebo programátora). Aby bolo možné následne nahrať aktualizovaný program do ESP32 cez OTA metódu, vyžaduje sa, aby mal používateľ nainštalovaný jazyk Python, ktorý riadi celý proces aktualizácie (nahrávania nového programu cez sieť) do ESP32. Po prvotnom nahratí OTA príkladu sa v Arduino IDE v časti Nástroje → Porty zobrazí okrem COM portov aj sieťový port, prostredníctvom ktorého je možné pristúpiť na ESP32 a nahrávať skrz neho nový program.

Sieťový port je v tvare esp32-MAC_ADRESA at IP_ADRESA, prípadne je možné definovať Hostname prostredníctvom mDNS služby, ktorú je možné taktiež na ESP32 spustiť a sieťový port sa zobrazí v tvare: HOSTNAME at IP_ADRESA.
OTA (Over The Air) - ESP32 - Arduino IDE
Nový program je možné po úspešnej aktualizácii nahrať priamo z vývojového prostredia Arduino IDE. Je nutné dodať, že nový program musí taktiež obsahovať OTA časť predchádzajúceho programu, ak chce používateľ do budúcna program opäť aktualizovať. V prípade nahratia akéhokoľvek programu bez OTA časti sa program nahrá, spustí bez možnosti ďalšej aktualizácie (OTA nie je obsiahnutá v programe).

ESP32 vždy príjme nový program prostredníctvom OTA aktualizácie aj v prípade nahratia duplicitného (rovnakého) programu. V programe je možné spustiť aj ďalšie funkcionality, napríklad zvolenie špecifického OTA portu, overenie aktualizácie od overeného zdroja prostredníctvom vopred známeho hesla, alebo jeho hashu v md5 formáte. Druhým spôsobom možnosti aktualizovať softvér je využitie OTA Web Updater príkladu.

Principiálne funguje tak, že sa ESP32 pripojí do WiFi siete a spustí jednoduché webové rozhranie na webovom serveri na HTTP porte, na ktorý je možné pristúpiť prostredníctvom prehliadača. Pristupovať je možné na IP adresu ESP32, alebo cez doménové meno, ktoré je možné nastaviť cez mDNS službu - na obrázku lokálne doménové meno esp32webupdate.
OTA (Over The Air) - ESP32 - Arduino IDE
Tu však platí, že v prípade HTTP portu je adresa webstránky v tvare domenové_meno.local pre jej správne načítanie v prehliadači. Súčasťou webového rozhrania je formulár, prostredníctvom ktorého je možné nahrať binárny súbor nového programu a tým aktualizovať softvér. Binárny súbor je možné vygenerovať v Arduino IDE a uložiť ho pre jeho neskoršie nahratie prostredníctvom formulára.
OTA (Over The Air) - ESP32 - Arduino IDE
Aj tu platí, že pre budúcu aktualizáciu musí nový súbor okrem novej časti programu obsahovať aj OTA Web Updater. Prvý krát sa program nahráva prostredníctvom USB kábla / programátora. Formulár príjme akýkoľvek binárny súbor, aj duplicitný. Pre vyššiu bezpečnosť je možné využiť login formulár nad pôvodným nahrávacím formulárom. Výhodou je aj možnosť pripojiť sa na ESP32 aj z inej siete, internetu v prípade, že ESP32 funguje na verejnej IP adrese.

Pokročilejšie implementácie OTA sú obsiahnuté vo frameworku ESP-IDF, ku ktorým je možné použiť aj rôzne ďalšie vývojárske nástroje, ktoré umožňujú spustiť hardvérové i softvérové zabezpečovacie mechanizmy pre integritu firmvéru.

Integritu je možné zabezpečiť vloženým digitálnym podpisom do binárky firmvéru, jeho overením na úrovni Bootloadera pri bootovaní, alebo už pri samotnom prebrazí aktualizácie. OTA v ESP-IDF využíva Remote aktualizácie - distribuované vzdialeným serverom, z ktorého si ESP32 dostupný firmvér stiahne.

ESP-IDF obsahuje mechanizmy pre overenie verzie firmvéru a v prípade, že je totožná ako verzia existujúceho - bežiaceho softvéru, nezmení sa boot príznak aj v prípade, že je obsahovo aktualizácia iná.


Offline

Zmazaný užívateľ
Zmazaný užívateľ
Obrázok užívateľa

Druhej polovici clanku som nerozumel, ja som bol vzdy viac hardverovy tip. Ale ty vyzeras, ze vies o com hovoris. Vedel by si mi naprogramovat OTA aktualizaciu na Galaxy S6? Je mi jedno, ci cez ESP-IDF, alebo
ESP32, len nech nemusim flashovat, vraj sa pri tom moze vela veci pokazit.

Pouzivam to na druhu simku, napr. Ked nieco objednavam z netu, aby obchody a kuriery nemali moje cislo. Ide mi o bezpečnosť.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.02.14
Prihlásený: 22.12.24
Príspevky: 450
Témy: 197 | 197
Bydlisko: Poprad-okolie
Napísal autor témyOffline : 11.08.2020 7:37 | OTA (Over The Air) - ESP32 - Arduino IDE

Celý článok sa zaujíma iba o mikrokontróler ESP32. Je to čip osadený na rôznych vývojových doskách, napr Devkit V1. V princípe je to ako Arduino, jednoduchý mikrokontróler na obsluhu vstupov, výstupov s WiFi a Bluetooth konekvitiou.
Pre ESP32 využívam v Diplomovke ESP-IDF framework, tam používam aj OTA aktualizácie prostredníctvom remote servera.
Tam si to flashovanie a všetko riadi samotné ESP, ku čomu má uspôsobené aj partície na flashke a ďalšie vývojárske bezpečnostné nástroje, ktoré je možné nezávisle na firmvéri zapínať (Secure Boot, Digitálny podpis atď).

S programovaním pre Android nemám vôbec žiadnu skúsenosť.
Tie Android zariadenia sú tam spomenuté iba vo všeobecnej rovine, že sa s tým aj bežný používateľ stretne.
Potreboval by si skôr niečo priamo pre tvoj Android core...


Offline

Užívateľ
Užívateľ
OTA (Over The Air) - ESP32 - Arduino IDE

Registrovaný: 03.11.06
Prihlásený: 28.12.24
Príspevky: 1762
Témy: 41 | 41
Bydlisko: Prešov
NapísalOffline : 08.08.2024 13:48 | OTA (Over The Air) - ESP32 - Arduino IDE

Ahoj, dik za tieto zaujimave IoT clanky.

Existuje nejaky sposob, aby nebolo potrebne pridavat OTA kod do kazdeho noveho firmwaru? Napriklad, ze OTA kod bude neustale na factory particii a pri potrebe OTA aktualizacie sa nejakym sposobom forcne prepisanie otadata particie s 0xFF, aby sa nabootoval OTA firmware z factory particie?


_________________
Oldcore user
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.02.14
Prihlásený: 22.12.24
Príspevky: 450
Témy: 197 | 197
Bydlisko: Poprad-okolie
Napísal autor témyOffline : 27.08.2024 23:23 | OTA (Over The Air) - ESP32 - Arduino IDE

Ahoj, presne viem, čo myslíš, videl som to u STM32.

Žiaľ u ESP32 som to nevidel a nemyslím si, že so štandradným Arduino Core by to tak fungovalo.
V ESP-IDF frameworku si nie som istý. Určite do nejakej miery by to šlo.


 [ Príspevkov: 5 ] 


OTA (Over The Air) - ESP32 - Arduino IDE



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Hladinomer - Arduino, ESP32, ESP8266 + ultrazvuk

v Články

0

1767

22.09.2019 0:01

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Kurzy (krypto)mien - Arduino / ESP32 / ESP8266

v Články

0

1457

15.11.2019 1:03

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

ThingSpeak - IoT platforma pre Arduino / ESP8266 / ESP32

v Články

0

1789

16.01.2020 23:59

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Senzorická sieť v LAN sieti - Arduino + Ethernet / ESP32 / ESP8266

v Články

0

1523

21.02.2020 23:13

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Ovládanie hlasom pre Arduino/NodeMCU/ESP32/Raspberry/Orange Pi ... projekty

v Mikropočítače

1

2475

16.09.2017 9:16

ado130

V tomto fóre nie sú ďalšie neprečítané témy.

remote desktop over the internet

v Sieťové a internetové programy

1

807

06.11.2008 16:02

Numline1

V tomto fóre nie sú ďalšie neprečítané témy.

Predám PS2 F 1, Need for Speed Pro Street,Over the Hedge

v Predám

0

549

16.05.2014 15:20

M@Xo

V tomto fóre nie sú ďalšie neprečítané témy.

Wings over Europe (Wings over Vietnam)

v Počítačové hry

0

899

10.08.2009 12:44

KViki

V tomto fóre nie sú ďalšie neprečítané témy.

Error 633 modem ota e51

v Operačné systémy Microsoft

0

592

27.03.2010 15:30

deod

V tomto fóre nie sú ďalšie neprečítané témy.

OTA: Desire HD a Incredible S

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Novinky

30

2175

09.05.2011 21:57

Semp

V tomto fóre nie sú ďalšie neprečítané témy.

"No physical memory is available at the location required for the windows boot manager. The system cannot continue"

v Notebooky a netbooky

2

998

04.11.2016 17:30

Lessik

V tomto fóre nie sú ďalšie neprečítané témy.

iPad Air 2. generácie 2 GB !!! Ďalší iPad Air zrejme dostane väčšiu pamäť RAM

[ Choď na stránku:Choď na stránku: 1, 2, 3, 4 ]

v Novinky

100

4902

26.10.2014 12:33

Daron

V tomto fóre nie sú ďalšie neprečítané témy.

GRBL, UNO+ ESP32

v Mikropočítače

0

1033

15.05.2021 23:23

stevo512

V tomto fóre nie sú ďalšie neprečítané témy.

ESP32 - PHY Ethernet LAN8720

v Články

0

2060

20.10.2022 21:00

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Ovládanie ESP32 prostredníctvom UDP datagramov

v Články

0

1349

31.08.2019 0:13

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Grand Theft Auto: The Trilogy – The Definitive Edition

v Novinky

3

1164

23.10.2021 13:12

KocuR



© 2005 - 2024 PCforum, edited by JanoF