Cum se actualizează firmware -ul ESP32 peste -Air (OTA) folosind Arduino IDE și Server Web

Încercați Instrumentul Nostru Pentru Eliminarea Problemelor





În trecut, firmware -ul se actualizează sisteme încorporate au fost o sarcină critică. Dar majoritatea dispozitivelor IoT și a dispozitivelor încorporate sunt conectate prin internet pentru a actualiza firmware -ul de la distanță de către dezvoltatori. Dispozitivele capabile să se conecteze la internet au beneficiul de a se actualiza. Deci, acest tip de programare de firmware în ESP32 este denumit OTA (Over-the-Air), care ajută la menținerea dispozitivelor încorporate la zi cu intervenția minimă a utilizatorului.  În plus, over-the-air oferă o mulțime de caracteristici și este o tehnică rentabilă pentru dezvoltatori pentru a face dispozitivele lor actualizate. Acest articol explorează OTA firmware Actualizare procedură prin consiliul de dezvoltare ESP32.


Ce este programarea OTA în ESP32/ ESP32 OTA?

ESP32 OTA este posibilitatea de a încărca sau de a actualiza un nou program în procesul de bord de dezvoltare ESP32 pe internet, fără a se conecta la un computer. În plus, acest proces poate reduce, de asemenea, timpul necesar pentru a actualiza fiecare modul ESP în întreținere. Astfel, permite actualizări wireless pe internet sau alte tipuri de rețele wireless.



Consiliul de dezvoltare ESP32 acordă atenție unei actualizări a firmware -ului, descărcând -o folosind Protocoale Ca HTTPS, MQTT sau HTTP. După aceea, îl verifică și îl clipi într -o partiție alocată în memoria plăcii ESP32.  Actualizările OTA sunt semnificative pentru dispozitivele încorporate sau pentru dispozitivele IoT, în special atunci când dispozitivele sunt dificil de accesat sau în locații îndepărtate.

ESP32 OTA CORE PIESTE

ESP32 OTA folosește diverse componente cheie pentru actualizări ale firmware -ului fără a conecta dispozitivul fizic. Astfel, părțile de bază ale acestui OTA ajută la transmiterea și primirea actualizărilor. În plus, asyncelegantata (OR) ESP HTTPS OTA Libraries & Frameworks de la espressif scurtează procedura de implementare.



Partiția de date a OTA

Această partiție din memoria flash a tabloului ESP32 stochează pur și simplu informațiile actualizate ale OTA, cum ar fi imaginea firmware -ului și un contor pentru a urmări ce slot a fost scris mai recent.

Mecanism de comunicare

Actualizările OTA depind în principal de protocoale de comunicare wireless, cum ar fi Bluetooth sau WiFi, unde Bluetooth este utilizat pentru actualizări mai localizate și mai mici, iar WiFi este utilizat în mod obișnuit.

  PCBWAY

Arhitectură client-server

Un client, precum o aplicație mobilă sau un computer, inițiază actualizarea și trimite firmware -ul către serverul ESP32.

Biblioteci și cadre

Asyncelegantatota și ESP HTTPS OTA Bibliotecile oferă funcționalități pre-construite pentru a gestiona procedura OTA și pentru a scurta dezvoltarea.

Bootloader

Acest bootloader gestionează trecerea la cel mai recent firmware după o actualizare OTA de succes.

SAFE OTA

Actualizările OTA sigure implică verificarea imaginii semnăturii firmware -ului pentru a -și asigura integritatea și autenticitatea.

În esență, actualizările ESP32 OTA implică o combinație de software (partiții, biblioteci și firmware) și protocoale de comunicare (Wi-Fi sau Bluetooth). Astfel, actualizează perfect firmware -ul dispozitivului fără acces fizic.

Lucru

Programarea ESP32 OTA permite firmware -ului/software -ului ESP32 să se actualizeze fără fir la un computer fără conexiune fizică. Așadar, acest lucru se poate face prin trimiterea unei noi imagini de firmware pe o rețea precum Wi-Fi, iar după aceea, scrierea acesteia în memoria flash a ESP32. Astfel, consiliul de dezvoltare ESP32 repornește și cel mai recent firmware.

Implementarea ESP32 OTA

Pentru a implementa actualizări în aer liber pentru ESP32 Development Board, trebuie încărcată o schiță OTA de bază. După aceea, un server web este utilizat pentru a încărca cel mai recent firmware. Așadar, această întreagă instalare a procedurii ESP32 OTA implică o configurare a conexiunii Wi-Fi, instalarea bibliotecii și, după aceea, un fișier binar compilat este încărcat în placa ESP32.

Procedura pas cu pas a implementării OTA ESP32:

  • În primul rând, trebuie să instalați pachetul de bord ESP32 în IDE Arduino.
  • După aceea, includeți bibliotecile specifice și alte necesare ale ESP32.
  • Schița OTA de bază trebuie încărcată, care conține în mod normal un server web în principal pentru actualizări OTA.
  • Deschideți browserul și permiteți adresa IP a serverului Web din ESP32.
  • Alegeți fișierul .bin din interfața serverului web pe care doriți să o încărcați.
  • Faceți clic pe butonul de încărcare pentru a porni actualizarea OTA.
  • Acum ESP32 este conectat la rețeaua dvs. Wi-Fi.
  • Deschis Aard va reporni prin intermediul firmware -ului recent încărcat.
  • Biblioteca Arduinoota trebuie utilizată în nucleul ESP32 pentru a simplifica procedura OTA.
  • De asemenea, puteți utiliza exemplul Basicota dat de bibliotecă sau puteți face propria aplicație OTA.
  • Acum, biblioteca Arduinoota vă permite pur și simplu să încărcați cea mai recentă schiță OTA în ESP32.

Utilizați un server web

  • În biblioteca ESP32 Arduino, exemplul OTAWEBUPDATER oferă o interfață web pentru încărcarea firmware -ului.
  • Schița este compilată pentru a genera un fișier .bin, după care poate fi încărcat prin intermediul serverului web.
  • Această tehnică permite actualizări OTA simple și mai accesibile.
  • În plus, asigurați -vă că aveți minimum două partiții OTA în placa dvs. ESP32.
  • Utilizați alte tehnici precum Cloud -ul Arduino IoT, în principal pentru actualizările OTA.
  • Procedura OTA suprascrie firmware -ul existent într -o partiție OTA dedicată, asigurându -se că firmware -ul care rulează rămâne stabil.

ESP32 OTA interfață cu Arduino

Principala caracteristică a microcontrolerelor activate WIF (ESP32 și ESP8266 ) este o programare OTA. Aceste dispozitive își actualizează firmware -ul fără fir. Folosind OTA, o actualizare poate fi trimisă la diverse microcontrolere care se află într -o rețea similară. Această caracteristică este utilizată pentru a trimite actualizări pentru rezolvarea erorilor prin includerea unor caracteristici la mai multe microcontrolere, casete de set-top, computere, telefoane mobile etc.

În general, actualizările OTA joacă un rol cheie în Internetul lucrurilor Pentru a actualiza dispozitivele conectate la Internet de la distanță cu setări și software noi. Aici vom folosi programarea OTA cu placa ESP32 din Arduino IDE cu OTA Web Updater.

Componentele necesare pentru interfațarea OTA ESP32 cu placa Arduino includ placa ESP32 și IDE Arduino.

  ESP32 OTA interfață cu Arduino
 ESP32 OTA interfață cu Arduino

Cod OTA

Codul OTA pentru consiliul de dezvoltare ESP32 este prezentat mai jos.

#include

#include

const char* gazdă = „esp32”;  SSID = „XXX”; parolă = „xxxx”;

WebServer Server (80);

/* pagina de conectare*/

Const char* logIndex =

'

'



'

'





'

'

„”

„”

”;

/*

* Pagina indexului serverului

*//

const char* serverIndex =

”;

/*

* Funcția de configurare

*//

void setup (void) {

Serial.begin (115200);

// Conectați -vă la rețeaua WiFi

Wifi.begin (SSID, parolă);

Serial.println („”);

// așteptați conexiunea

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

întârziere (500);

Serial.print („.”);

}

Serial.println („”);

Serial.print („conectat la”);

Serial.println (SSID);

Serial.print („Adresa IP:„);

Serial.println (wifi.localip ());

/*Utilizați MDNS pentru rezoluția numelui gazdă*/

if (! mdns.begin (gazdă)) {// c2e2f8f35ba56eedbbc296b8125c387d1182e239

Serial.println („Eroare la configurarea MDNS Responder!”);

while (1) {

întârziere (1000);

}

}

Serial.println („MDNS Responder a început”);

/ *Return Index Pagina stocată în serverIndex */

server.on („/”, http_get, [] () {

server.sendheader („conexiune”, „închide”);

server.send (200, „text/html”, loginIndex);

});

server.on („/serverIndex”, http_get, [] () {

server.sendheader („conexiune”, „închide”);

Server.Send (200, „Text/Html”, serverIndex);

});

/ *manipularea fișierului firmware de încărcare *//

server.on („/actualizare”, http_post, [] () {

server.sendheader („conexiune”, „închide”);

server.send (200, „text/simplu”, (update.haserror ())? „eșuează”: „ok”);

Esp.restart ();

} {

Httpupload & upload = server.upload ();

if (upload.status == upload_file_start) {

Serial.printf („actualizare: %s \ n”, upload.filename.c_str ());

if (! Update.begin (update_size_unknown)) {// Începeți cu dimensiunea maximă disponibilă

Update.printerror (serial);

}

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

/* firmware intermitent la esp*/

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

Update.printerror (serial);

}

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

if (update.end (true)) {// adevărat pentru a seta dimensiunea la progresul curent

Serial.printf („Actualizare succes: %u \ nrebooting… \ n”, upload.totalsize);

} else {

Update.printerror (serial);

}}}

server.begin ();

}

void loop (void) {

server.handleclient ();

întârziere (1);

}

Programarea OTA funcționează

Pentru a utiliza funcția de programare OTA, o schiță trebuie încărcată prin portul serial. Această schiță include codul HTML pentru a realiza un OTA Web Updater. Mai târziu, puteți încărca cu ușurință codul cu browserul. După ce codul este încărcat printr -un port serial, va fi creat un server web unde puteți selecta și încărca o nouă schiță printr -un browser web.

Conectați placa ESP32 la laptop pentru a încărca codul primar, apoi deschideți IDE Arduino și alegeți tipul de placă ca ESP32 Dev Kit și alegeți portul serial potrivit.

Modificați numele Wi-Fi și parola din codul original.

Codul OTA trebuie încărcat pe placa dvs. ESP32. După ce codul este încărcat cu succes, deschideți monitorul în serie. După aceea, rata de transfer de 115200 trebuie modificată pe monitorul în serie. Apăsați butonul de resetare deasupra modulului ESP32 și trebuie să imprimă adresa IP a plăcii ESP32.

Deschideți browserul implicit pentru a lipi adresa IP ESP32. Deci trebuie să deschidă pagina serverului web pentru OTA. Aici numele de utilizator și parola sunt în mod implicit sunt admin. Acum, introduceți detaliile de conectare, faceți clic pe pagina de conectare și apoi se va deschide o nouă filă pentru a încărca codul.

Avantaje

Avantajele ESP32 OTA includ următoarele.

  • Această abordare centralizată permite o singură actualizare să se răspândească în diverse ESP32 într -o rețea similară.
  • OTA permite îmbunătățiri ale firmware -ului la distanță, fără a utiliza acces fizic la placa de dezvoltare pentru a -l face perfect pentru implementările IoT.
  • OTA elimină cerința conexiunilor fizice pentru a actualiza placa ESP32 prin simplificarea procedurii de actualizare, în special pentru dispozitive inaccesibile sau la distanță.
  • Actualizările pot fi obținute de la distanță, ceea ce scade timpul petrecut pentru protecție și funcționare.
  • O singură sursă trimite actualizări la numeroase ESP32 într -o rețea similară și simplifică procedura de actualizare pentru implementări uriașe.
  • OTA permite actualizări simultane la mai multe dispozitive, făcând-o foarte eficientă pentru proiecte la scară largă.
  • Actualizările pot fi planificate și executate în orele de vârf, ceea ce reduce problemele la funcționarea dispozitivului.
  • Actualizările OTA includ patch -uri de securitate și îmbunătățiri care protejează de vulnerabilități.
  • Funcționalitatea OTA poate fi integrată în proiecte bazate pe ESP32 cu bibliotecile Arduinoota.
  • Programarea OTA vă permite să actualizați un nou program în ESP32 fără nicio conexiune la computer.

Dezavantaje

Dezavantaje ale ESP32 OTA include următoarele.

  • Imaginea din fabrică a plăcii ESP32 nu conține capacitate OTA. Astfel, în primul rând, trebuie să încărcați acest firmware printr -o conexiune în serie înainte de a utiliza actualizări OTA.
  • În plus, unele modele ESP32 mai vechi au limitări de memorie, în special cele care au 1 MB de memorie flash.
  • Fiecare schiță încărcată într -o placă ESP32 trebuie să conțină codul necesar pentru a permite funcționalitatea OTA. Dispozitivul fără acest cod nu va mai fi disponibil pentru actualizări OTA printr -un server web.
  • Multe plăci ESP32 moderne au suficientă memorie, dar modelele ESP32 mai mici sau mai vechi ar putea îndeplini limitările prin OTA, în special dacă schița încărcată este aproape de limita de memorie existentă.
  • Dacă utilizatorii încarcă cod fără parolă, dispozitivul poate deveni de neatins pentru viitoarele actualizări OTA, necesitând posibil o reaprovizionare a schiței OTA necesare prin serial.
  • În timp ce utilizatorii pot adăuga un nume de utilizator și un cuvânt secret pentru siguranță, această măsură ar putea să nu protejeze pe deplin pagina de încărcare OTA de accesul neautorizat dacă cineva identifică adresa URL specifică.
  • Implementarea necorespunzătoare a codului OTA poate duce la probleme potențiale, deoarece poate dezactiva funcționalitatea OTA viitoare.

Aplicații

Aplicațiile ESP32 OTA includ următoarele.

  • Aplicațiile ESP32 OTA permit firmware -ului dispozitivului să se actualizeze de la distanță fără nicio conexiune fizică la dispozitiv. Așadar, acest lucru este util în principal pentru dispozitivele IoT instalate în locații inaccesibile, scăzând costurile de oprire și întreținerea. OTA permite actualizări software, remedieri de erori și îmbunătățiri ale caracteristicilor să fie implementate rapid și eficient.
  • Actualizările ESP32 OTA sunt esențiale în diverse aplicații, în principal în sisteme încorporate și implementări IoT ..
  • Aceste actualizări sunt semnificative pentru întreținerea și modernizarea sistemelor de automatizare industrială, fără a închide întregul proces.
  • OTA permite dispozitivelor de casă inteligente să primească upgrade -uri de firmware la distanță, asigurând cele mai bune performanțe și îmbunătățiri ale caracteristicilor.
  • Actualizările OTA sunt semnificative pentru a actualiza sistemele de firmware și monitorizare a senzorilor de la distanță, asigurându -se că acestea rămân corecte și funcționale.
  • Actualizarea OTA oferă o metodă adecvată pentru a gestiona și păstra dispozitivele în orice aplicație IoT, oriunde accesul la distanță este nepractic sau limitat.
  • Utilizatorii actualizează încuietori inteligente, camere de securitate și sisteme de securitate pentru a se asigura că rămân siguri și funcționale.
  • Industriile angajează ESP32 OTA pentru a actualiza software -ul și sistemele de mașini în procesele de automatizare.
  • Tehnicienii actualizează software -ul dispozitivului în stațiile meteorologice, monitorizarea mediului și aplicațiile la distanță.
  • Acest OTA actualizează software -ul în echipamente de fermă inteligentă, sisteme de irigare etc.
  • Gestionează și actualizează dispozitive inteligente pentru casă de la distanță în automatizarea casei, cum ar fi încuietori, sisteme de securitate, lumini inteligente etc.

Concluzie:

Astfel, Actualizările ESP32 OTA oferă O metodă convenabilă pentru a actualiza firmware și alte fișiere fără fir pe dispozitivele ESP32 prin eliminarea conexiunilor fizice. Așadar, această metodă este utilă în principal pentru implementările de la distanță și reduce întreținerea, permițând remedierea erorilor și îmbunătățiri ale caracteristicilor fără nicio conexiune fizică. Actualizarea ESP32 OTA oferă o tehnică valoroasă pentru a menține și actualiza dispozitivele ESP32 de la distanță, simplificarea întreținerii și scurtarea procesului de actualizare. Iată o întrebare pentru dvs .: Care este consiliul ESP32?

Pagina de conectare ESP32


Nume utilizator:
Parolă: