Com actualitzar el firmware ESP32 a l'aire (OTA) mitjançant Arduino IDE & Web Server

Proveu El Nostre Instrument Per Eliminar Problemes





En el passat, les actualitzacions del firmware a sistemes incrustats van ser una tasca crítica. Però la majoria dels dispositius IoT i dispositius incrustats estan connectats a Internet per actualitzar el firmware de forma remota pels desenvolupadors. Els dispositius capaços de connectar -se a Internet tenen el benefici d’actualitzar -se. Per tant, aquest tipus de programació de firmware a ESP32 es coneix com a OTA (a l'aire lliure), que ajuda a mantenir actualitzats els dispositius incrustats amb una intervenció mínima de l'usuari.  A més, Over-the-Air ofereix moltes funcions i és una tècnica rendible per als desenvolupadors per actualitzar els seus dispositius. Aquest article explora el Firmware OTA Actualitzar el procediment sobre la Junta de Desenvolupament ESP32.


Què és la programació OTA a ESP32/ ESP32 OTA?

ESP32 OTA és la possibilitat de penjar o actualitzar un nou programa al procés de la placa de desenvolupament ESP32 a Internet sense connectar -se a un ordinador. A més, aquest procés també pot reduir el temps requerit per actualitzar tots els mòduls ESP en manteniment. Per tant, permet actualitzacions sense fils a Internet o altres tipus de xarxes sense fils.



La placa de desenvolupament ESP32 presta atenció a una actualització del firmware descarregant -la mitjançant protocols Com https, mqtt o http. Després d'això, la verifica i la fa parpellejar en una partició assignada dins de la memòria de la placa ESP32.  Les actualitzacions OTA són importants per a dispositius incrustats o dispositius IoT, sobretot quan els dispositius són difícils d’accedir o en llocs remots.

ESP32 OTA Core Parts

ESP32 OTA utilitza diversos components clau per a les actualitzacions del firmware sense connectar el dispositiu físicament. Així, les parts bàsiques d’aquest OTA ajuden a transmetre i rebre actualitzacions. A més, Asyncelegantota (OR) les biblioteques i marcs ESP HTTPS OTA de espressif escurcen el procediment d’implementació.



Partició de dades d’OTA

Aquesta partició dins de la memòria flash de la placa ESP32 simplement emmagatzema la informació actualitzada de l'OTA, com la imatge del firmware i un comptador per rastrejar quina ranura s'ha escrit més recentment.

Mecanisme de comunicació

Les actualitzacions OTA depenen principalment de protocols de comunicació sense fils com Bluetooth o WiFi, on s’utilitza Bluetooth per a actualitzacions més localitzades i més petites, i WiFi s’utilitza habitualment.

  Pcbway

Arquitectura del servidor client

Un client, com una aplicació per a mòbils o un PC, inicia l’actualització i envia el firmware al servidor ESP32.

Biblioteques i marcs

Asyncelegantota i les biblioteques ESP HTTPS OTA proporcionen funcionalitats pre-construïdes per gestionar el procediment OTA i reduir el desenvolupament.

Carregador d'arrencada

Aquest carregador d'arrencada gestiona la transició al firmware més recent després d'una actualització OTA amb èxit.

OTA segura

Les actualitzacions d’OTA segures impliquen la verificació d’imatges de signatura del firmware per assegurar la seva integritat i autenticitat.

En essència, les actualitzacions ESP32 OTA impliquen una combinació de programari (particions, biblioteques i firmware) i protocols de comunicació (Wi-Fi o Bluetooth). Així, actualitzeu perfectament el firmware del dispositiu sense accés físic.

Treballant

La programació ESP32 OTA permet que el firmware/programari ESP32 actualitzi sense fils a un ordinador sense connexió física. De manera que es pot fer enviant una nova imatge de firmware a través d’una xarxa com Wi-Fi, i després d’escriure-la a la memòria flash de l’ESP32. Per tant, la Junta de Desenvolupament ESP32 es reinicia i el més recent firmware s'està executant.

Implementació de ESP32 OTA

Per implementar les actualitzacions a l’aire per a la Junta de Desenvolupament ESP32, s’ha de penjar un esbós bàsic OTA. Després d'això, s'utilitza un servidor web per penjar el firmware més recent. Així, tota aquesta instal·lació del procediment ESP32 OTA implica una configuració de connexió Wi-Fi, una instal·lació de biblioteques i, després, es carrega un fitxer binari compilat a la placa ESP32.

Procediment pas a pas de la implementació ESP32 OTA:

  • Primer, necessiteu instal·lar el paquet de la placa ESP32 dins de l’IDE ​​Arduino.
  • Després d’això, incloure les biblioteques específiques i altres necessàries d’ESP32.
  • S'ha de penjar l'esbós bàsic OTA, que normalment conté un servidor web principalment per a les actualitzacions OTA.
  • Obriu el navegador i permeti l’adreça IP del servidor web d’ESP32.
  • Trieu el fitxer .bin a la interfície del servidor web que desitgeu penjar.
  • Feu clic al botó de càrrega per iniciar l'actualització OTA.
  • Ara l'ESP32 està connectat a la vostra xarxa Wi-Fi.
  • Open Aard es reiniciarà a través del firmware recentment carregat.
  • La biblioteca Arduinoota s'ha d'utilitzar al nucli ESP32 per simplificar el procediment OTA.
  • També podeu utilitzar l'exemple de Basicota donat per la biblioteca o fer la vostra pròpia sol·licitud OTA.
  • Ara, la biblioteca Arduinoota simplement us permet penjar el darrer esbós OTA al vostre ESP32.

Utilitzeu un servidor web

  • A la biblioteca ARDUINO ESP32, l'exemple OtaWebUpDater proporciona una interfície web per penjar el firmware.
  • L’esbós es recopila per generar un fitxer .bin, després es pot penjar a través del servidor web.
  • Aquesta tècnica permet actualitzacions OTA senzilles i més accessibles.
  • A més, assegureu -vos que teniu un mínim de dues particions OTA dins del vostre tauler ESP32.
  • Utilitzeu altres tècniques com el Cloud Arduino IoT, principalment per a les actualitzacions OTA.
  • El procediment OTA sobreescriu el firmware existent en una partició dedicada OTA assegurant que el firmware en funcionament es mantingui estable.

ESP32 OTA Interfacing amb Arduino

La característica principal dels microcontroladors habilitats WiFi (ESP32 i ESP8266 ) és la programació OTA. Aquests dispositius actualitzen el firmware sense fils. Utilitzant OTA, es pot enviar una actualització a diversos microcontroladors que es troben en una xarxa similar. Aquesta funció s'utilitza per enviar actualitzacions per resoldre els errors incloent algunes funcions a diversos microcontroladors, caixes de configuració, ordinadors, telèfons mòbils, etc.

Generalment, les actualitzacions OTA tenen un paper clau en el Internet de les coses Per actualitzar els dispositius connectats a Internet de forma remota amb nous configuracions i programari. Aquí utilitzarem la programació OTA amb la placa ESP32 a Arduino IDE amb l’OTA Web actualitzador.

Els components necessaris per a la interfície ESP32 OTA amb la Junta Arduino inclouen la junta ESP32 i la IDE Arduino.

  ESP32 OTA Interfacing amb Arduino
 ESP32 OTA Interfacing amb Arduino

Codi OTA

A continuació, es mostra el codi OTA de la Junta de Desenvolupament ESP32.

#include

#include

const char* host = 'ESP32';  ssid = 'xxx'; contrasenya = 'xxxx';

Webserver Server (80);

/* Pàgina d’inici de sessió*/

Const char* logindex =

''

'

'

'

'

'

'

'
'

'
'

'

'

'

'

'

'

'

'

'

'

'
'

'
'

'

'

'

'

'

'

'
'

'
'

'

'

'

'

'

'

'

'

''

''

'';

/*

* Pàgina de l'índex del servidor

*/

const char* serverIndex =

'”;

/*

* Funció de configuració

*/

void Setup (void) {

Serial.Begin (115200);

// Connecta’t a la xarxa wifi

Wifi.begin (ssid, contrasenya);

Serial.println ('');

// espera la connexió

while (wifi.status ()! = wl_connected) {

retard (500);

Serial.print ('.');

}

Serial.println ('');

Serial.print (“connectat a”);

Serial.println (SSID);

Serial.print ('Adreça IP:');

Serial.println (wifi.Localip ());

/*Utilitzeu MDNS per a la resolució de nom de l'amfitrió*/

if (! mdns.begin (host)) {// c2e2f8f35ba56eedbbc296b8125c387d1182e239

Serial.println ('Error de configuració de MDNS Responder!');

mentre que (1) {

retard (1000);

}

}

Serial.println ('MDNs Responder va començar');

/ *de retorn de la pàgina d'índex que s'emmagatzema a ServerIndex */

server.on ('/', http_get, [] () {

server.SendHeader ('Connexió', 'Close');

server.send (200, 'text/html', loginindex);

});

server.on ('/servidorIndex', http_get, [] () {

server.SendHeader ('Connexió', 'Close');

server.send (200, 'text/html', serverIndex);

});

/ *Manejar el fitxer de firmware de càrrega */

server.on ('/actualitzar', http_post, [] () {

server.SendHeader ('Connexió', 'Close');

server.send (200, 'text/plana', (update.haserror ())? 'Fall': 'D'acord');

ESP.RESTART ();

} {

Httpupload & upload = server.upload ();

if (loadoad.status == upload_file_start) {

Serial.printf ('Actualització: %s \ n', upload.fileName.c_str ());

if (! update.begin (update_size_unknown)) {// Comença amb la mida màxima disponible

Update.printError (serial);

}

} else if (upload.status == upload_file_write) {

/* Firmware intermitent a ESP*/

if (update.write (upload.buf, upload.currentsize)! = upload.currentsize) {

Update.printError (serial);

}

} else if (upload.status == upload_file_end) {

if (update.end (true)) {// true per definir la mida al progrés actual

Serial.printf ('Actualitzar l'èxit: %u \ nrebooting ... \ n', upload.totalSize);

} else {

Update.printError (serial);

}}}

server.Begin ();

}

void Loop (void) {

server.Handleclient ();

retard (1);

}

Programació OTA Treballant

Per utilitzar la funció de programació OTA, cal penjar un esbós a través del port sèrie. Aquest esbós inclou el codi HTML per fer un actualitzador web OTA. Més endavant, podeu penjar fàcilment el codi amb el navegador. Un cop carregat el codi mitjançant un port sèrie, es crearà un servidor web on podeu seleccionar i penjar un esbós nou a través d’un navegador web.

Connecteu la placa ESP32 al portàtil per penjar el codi principal i, a continuació, obriu el IDE Arduino i trieu el tipus de placa com a ESP32 Dev Kit i trieu el port sèrie adequat.

Modifiqueu el nom del Wi-Fi i la contrasenya dins del codi original.

El codi OTA s'ha de penjar a la placa ESP32. Un cop carregat el codi amb èxit, obriu el monitor en sèrie. Després d'això, s'ha de canviar la taxa de Baud de 115200 al monitor de sèrie. Premeu el botó de restabliment per sobre del mòdul ESP32 i ha d'imprimir l'adreça IP de la placa ESP32.

Obriu el navegador predeterminat per enganxar l'adreça IP ESP32. Per tant, ha d'obrir la pàgina del servidor web per a OTA. Aquí el nom d'usuari i la contrasenya per defecte són administradors. Ara, introduïu els detalls d’inici de sessió, feu clic a la pàgina d’inici de sessió i, a continuació, s’obrirà una fitxa nova per penjar el codi.

Avantatges

Els avantatges de ESP32 OTA inclouen els següents.

  • Aquest enfocament centralitzat permet que una única actualització es pugui estendre en diversos ESP32 en una xarxa similar.
  • OTA permet actualitzar les actualitzacions de firmware remot sense utilitzar accés físic a la placa de desenvolupament per fer -lo perfecte per a desplegaments IoT.
  • OTA elimina el requisit de connexions físiques per actualitzar la placa ESP32 simplificant el procediment d'actualització, especialment per a dispositius inaccessibles o remots.
  • Les actualitzacions es poden aconseguir de forma remota, cosa que disminueix el temps dedicat a la protecció i al funcionament.
  • Una única font envia actualitzacions a nombrosos ESP32 en una xarxa similar i racionalitza el procediment d'actualització per a desplegaments enormes.
  • OTA permet actualitzacions simultànies a diversos dispositius, fent-lo molt eficient per a projectes a gran escala.
  • Les actualitzacions es poden planificar i executar en hores fora del pic, cosa que redueix el problema al funcionament del dispositiu.
  • Les actualitzacions OTA inclouen pegats de seguretat i millores que protegeixen de les vulnerabilitats.
  • La funcionalitat OTA es pot integrar en projectes basats en ESP32 amb les biblioteques Arduinoota.
  • La programació OTA us permet actualitzar un nou programa a l'ESP32 sense cap connexió amb l'ordinador.

Desavantatges

El desavantatges de ESP32 OTA Incloeu el següent.

  • La imatge de fàbrica de la placa ESP32 no conté la capacitat OTA. Així, primer, heu de penjar aquest firmware mitjançant una connexió en sèrie abans d’utilitzar actualitzacions OTA.
  • A més, alguns models ESP32 més antics tenen limitacions de memòria, particularment aquelles que tenen 1 MB de memòria flash.
  • Cada esbós carregat en una placa ESP32 ha de contenir el codi requerit per permetre la funcionalitat OTA. El dispositiu sense aquest codi ja no estarà disponible per a les actualitzacions OTA mitjançant un servidor web.
  • Moltes plaques modernes ESP32 tenen memòria suficient, però els models ESP32 més petits o més antics podrien complir les limitacions a través de l’OTA, sobretot si l’esbós penjat es troba a prop del límit de memòria existent.
  • Si els usuaris pengen el codi sense contrasenya, el dispositiu pot arribar a ser inabastable per a futures actualitzacions OTA, possiblement requerint una re-càrrega del croquis OTA necessari mitjançant Serial.
  • Si bé els usuaris poden afegir un nom d’usuari i una paraula secreta per a la seguretat, aquesta mesura pot no protegir completament la pàgina de càrrega OTA d’un accés no autoritzat si algú identifica l’URL específic.
  • La implementació incorrecta del codi OTA pot comportar possibles problemes, ja que pot desactivar la futura funcionalitat OTA.

Aplicacions

Les aplicacions de ESP32 OTA inclouen les següents.

  • Les aplicacions OTA ESP32 permeten al firmware del dispositiu actualitzar de forma remota sense cap connexió física al dispositiu. Així doncs, això és útil per als dispositius IoT instal·lats en llocs inaccessibles, disminuint els temps d’inactivitat i manteniment. OTA permet que les actualitzacions de programari, les solucions d’errors i les millores de funcions es despleguin de manera ràpida i eficaç.
  • Les actualitzacions ESP32 OTA són essencials en diverses aplicacions, principalment en sistemes incrustats i desplegaments IoT.
  • Aquestes actualitzacions són importants per al manteniment i la millora dels sistemes d'automatització industrials sense tancar tot el procés.
  • OTA permet als dispositius domèstics intel·ligents rebre actualitzacions remotes de firmware garantint les millors millores de rendiment i funcions.
  • Les actualitzacions OTA són significatives per actualitzar els sistemes de firmware i seguiment dels sensors remots, garantint que es mantinguin precisos i funcionals.
  • OTA Update proporciona un mètode adequat per gestionar i mantenir els dispositius en qualsevol aplicació IoT, allà on l’accés remot sigui poc pràctic o limitat.
  • Els usuaris actualitzen panys intel·ligents, càmeres de seguretat i sistemes de seguretat per assegurar -se que siguin segurs i funcionals.
  • Les indústries utilitzen ESP32 OTA per actualitzar el programari i els sistemes de màquines en processos d'automatització.
  • Els tècnics actualitzen el programari del dispositiu a les estacions meteorològiques, la supervisió ambiental i les aplicacions remotes.
  • Aquesta OTA actualitza el programari en equips de granja intel·ligent, sistemes de reg, etc.
  • Gestiona i actualitza els dispositius domèstics intel·ligents de forma remota en automatització domèstica com panys, sistemes de seguretat, llums intel·ligents, etc.

Conclusió:

Per tant, Les actualitzacions ESP32 OTA proporcionen Un mètode convenient per actualitzar el firmware i altres fitxers sense fils en dispositius ESP32 eliminant les connexions físiques. Per tant, aquest mètode és útil per a desplegaments remots i redueix el manteniment, permetent solucions i millores de les funcions sense cap connexió física. ESP32 OTA Update proporciona una valuosa tècnica per mantenir i actualitzar els dispositius ESP32 de forma remota, simplificar el manteniment i reduir el procés d’actualització. Aquí teniu una pregunta: què és el consell ESP32?

'

'

ESP32 Pàgina d'inici de sessió '

'
'

'

nom d'usuari:
contrasenya: