Sådan opdateres ESP32 Firmware over -luften (OTA) ved hjælp af Arduino IDE & Web Server

Prøv Vores Instrument Til At Fjerne Problemer





Tidligere opdaterer firmware i indlejrede systemer var en kritisk opgave. Men de fleste af IoT -enhederne og indlejrede enheder er tilsluttet via Internettet for at opdatere firmwaren eksternt af udviklere. Enheder, der er i stand til at oprette forbindelse til internettet, har fordelen ved at opdatere sig selv. Så denne form for firmwareprogrammering i ESP32 kaldes OTA (over-the-air), som hjælper med at holde de indlejrede enheder ajour med minimum brugerintervention.  Derudover tilbyder over-the-air en masse funktioner og er en omkostningseffektiv teknik for udviklere til at få deres enheder til at opdatere. Denne artikel udforsker OTA firmware Opdateringsprocedure over ESP32 Development Board.


Hvad er OTA -programmering i ESP32/ ESP32 OTA?

ESP32 OTA er evnen til at uploade eller opdatere et nyt program til ESP32 Development Board -processen over internettet uden at oprette forbindelse til en computer. Derudover kan denne proces også reducere den krævede tid til at opdatere hvert ESP -modul i vedligeholdelse. Det tillader således trådløse opdateringer over internettet eller andre typer trådløse netværk.



ESP32 Development Board er opmærksom på en firmwareopdatering ved at downloade den ved hjælp af protokoller Som HTTPS, MQTT eller HTTP. Derefter verificerer det og blinker det til en tildelt partition inden for hukommelsen fra ESP32 -bestyrelsen.  OTA -opdateringer er betydningsfulde for indlejrede enheder eller IoT -enheder, især når enheder er vanskelige at få adgang til eller på fjerntliggende steder.

ESP32 OTA Core Parts

ESP32 OTA bruger forskellige nøglekomponenter til firmwareopdateringer uden at tilslutte enheden fysisk. Således hjælper de kerne dele af denne OTA med at overføre og modtage opdateringer. Derudover forkorter asyncelegantota (eller) ESP HTTPS OTA -bibliotekerne & rammer fra espressif implementeringsproceduren.



Dataopdeling af OTA

Denne partition inden for ESP32 -bestyrelsens flashhukommelse gemmer simpelthen de opdaterede oplysninger om OTA, ligesom firmwarebilledet og en tæller for at spore, hvilken slot der blev skrevet til for nylig.

Kommunikationsmekanisme

OTA -opdateringer afhænger hovedsageligt af trådløse kommunikationsprotokoller som Bluetooth eller WiFi, hvor Bluetooth bruges til mere lokaliserede og mindre opdateringer, og WiFi ofte bruges.

  PCBWAY

Klient-serverarkitektur

En klient, som en mobilapp eller pc, indleder opdateringen og sender firmwaren til ESP32 -serveren.

Biblioteker og rammer

Asyncelegantota & ESP HTTPS OTA-bibliotekerne giver forudbyggede funktionaliteter til at håndtere OTA-proceduren og forkorte udviklingen.

Bootloader

Denne bootloader håndterer overgangen til den nyeste firmware efter en vellykket OTA -opdatering.

Sikker ota

Safe OTA -opdateringer involverer firmwaresignaturbilledbekræftelse for at sikre dens integritet og ægthed.

I det væsentlige involverer ESP32 OTA-opdateringer en kombination af software (partitioner, biblioteker og firmware) og kommunikationsprotokoller (Wi-Fi eller Bluetooth). Således opdaterer den problemfrit enhedens firmware uden fysisk adgang.

Arbejder

ESP32 OTA -programmering giver ESP32's firmware/software mulighed for at opdatere trådløst til en computer uden en fysisk forbindelse. Så dette kan gøres ved at sende et nyt firmwarebillede over et netværk som Wi-Fi, og efter at det at skrive det ind i flashhukommelsen på ESP32. Således genstarter ESP32 Development Board Board & den nyeste firmware.

Implementering af ESP32 OTA

For at implementere over-the-air-opdateringer til ESP32 Development Board skal en grundlæggende OTA-skitse uploades. Derefter bruges en webserver til at uploade den nyeste firmware. Så hele denne installation af ESP32 OTA-proceduren involverer en Wi-Fi-forbindelsesopsætning, biblioteksinstallation, og derefter uploades en kompileret binær fil til ESP32-kortet.

Trin-for-trin-procedure for ESP32 OTA-implementering:

  • Først skal du installere ESP32 -tavlepakken i Arduino IDE.
  • Derefter skal du medtage de specifikke og andre nødvendige biblioteker i ESP32.
  • Den grundlæggende OTA -skitse skal uploades, som normalt indeholder en webserver hovedsageligt til OTA -opdateringer.
  • Åbn browseren, og lad webserverens IP -adresse i ESP32.
  • Vælg .bin -filen i webservergrænsefladen, som du ønsker at uploade.
  • Klik på knappen Upload for at starte OTA -opdateringen.
  • Nu er ESP32 tilsluttet dit Wi-Fi-netværk.
  • Åbn Aard genstarter gennem den nyligt uploadede firmware.
  • Arduinoota -biblioteket skal bruges i ESP32 -kernen for at forenkle OTA -proceduren.
  • Du kan også anvende Basicota -eksemplet, der er givet af biblioteket eller lave din egen OTA -applikation.
  • Nu giver Arduinoota -biblioteket simpelthen dig mulighed for at uploade den nyeste skitse OTA til din ESP32.

Brug en webserver

  • I ESP32 Arduino -biblioteket giver Otawebupdater -eksemplet en webgrænseflade til at uploade firmware.
  • Skitsen er samlet til at generere en .bin -fil, efter at den kan uploades via webserveren.
  • Denne teknik giver mulighed for enkle og mere tilgængelige OTA -opdateringer.
  • Sørg desuden for, at du har mindst to OTA -partitioner i dit ESP32 -kort.
  • Brug andre teknikker som Arduino IoT -skyen, hovedsageligt til OTA -opdateringer.
  • OTA -proceduren overskriver den eksisterende firmware inden for en dedikeret OTA -partition ved at sikre, at den løbende firmware forbliver stabil.

ESP32 OTA -grænseflade med Arduino

Hovedfunktionen ved WiFi-aktiverede mikrokontrollere (ESP32 & ESP8266 ) er OTA -programmering. Disse enheder opgraderer deres firmware trådløst. Ved hjælp af OTA kan en opdatering sendes til forskellige mikrokontrollere, der er på et lignende netværk. Denne funktion bruges til at sende opdateringer til løsning af fejlene ved at inkludere nogle funktioner til flere mikrokontrollere, set-top-bokse, computere, mobiltelefoner osv.

Generelt spiller OTA -opdateringer en nøglerolle i Internet af ting Sådan opdateres internetforbundne enheder eksternt med nye indstillinger og software. Her skal vi bruge OTA -programmering med ESP32 -bestyrelsen i Arduino IDE med OTA Web Updater.

De krævede komponenter til ESP32 OTA -grænseflade med Arduino -kortet inkluderer ESP32 -bestyrelsen og Arduino IDE.

  ESP32 OTA -grænseflade med Arduino
 ESP32 OTA -grænseflade med Arduino

OTA -kode

OTA -koden til ESP32 -udviklingsrådet er angivet nedenfor.

#include

#include

const char* host = “ESP32”;  SSID = “XXX”; Adgangskode = “xxxx”;

WebServer Server (80);

/* login side*/

Const char* logIndex =

'

“”

“”

ESP32 login side


“”



“”

“”

“ brugernavn: ”


“”



“”

“ adgangskode: ”


'



“”

“”

'

“”

“”

”;

/*

* Serverindeksside

*/

const char* serverIndex =

”;

/*

* Opsætningsfunktion

*/

void opsætning (void) {

Serial.begin (115200);

// Opret forbindelse til WiFi -netværket

Wifi.begin (SSID, adgangskode);

Serial.println (“”);

// Vent på forbindelse

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

forsinkelse (500);

Serial.print (“.”);

}

Serial.println (“”);

Serial.print (“tilsluttet”);

Serial.println (SSID);

Serial.print (“IP -adresse:“);

Serial.println (wifi.localip ());

/*Brug MDN'er til værtsnavnopløsning*/

if (! mdns.begin (vært)) {// c2e2f8f35ba56eedbbc296b8125c387d1182e239

Serial.println ('Fejlopsætning af MDNS Responder!');

mens (1) {

forsinkelse (1000);

}

}

Serial.println (“Mdns responder startet”);

/ *Return Index -side, der er gemt i serverIndex */

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

Server.SendHeader (“Connection”, “Close”);

Server.Send (200, “Text/HTML”, LoginIndex);

});

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

Server.SendHeader (“Connection”, “Close”);

Server.Send (200, “Text/HTML”, ServerIndex);

});

/ *Håndtering af uploading af firmwarefil */

server.on (“/opdatering”, http_post, [] () {

Server.SendHeader (“Connection”, “Close”);

Server.send (200, 'tekst/almindelig', (opdatering.haserror ())? 'mislykkes': 'ok');

Esp.restart ();

} {

Httpupload & upload = server.upload ();

if (upload.status == upload_file_start) {

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

if (! Update.Begin (UPDATE_SIZE_UNKNOWN)) {// Start med Max tilgængelig størrelse

Update.PrinterSerror (seriel);

}

} andet hvis (upload.status == upload_file_write) {

/* blinkende firmware til esp*/

if (Update.Write (upload.buf, upload.currentsize)! = upload.currentsize) {

Update.PrinterSerror (seriel);

}

} andet hvis (upload.status == upload_file_end) {

if (update.end (sand)) {// sandt at indstille størrelsen til de aktuelle fremskridt

Serial.printf (“Update Success: %U \ NROOTING… \ n”, upload.totalsize);

} andet {

Update.PrinterSerror (seriel);

}}}

server.begin ();

}

void loop (void) {

server.HandleClient ();

forsinkelse (1);

}

OTA -programmering af arbejde

For at bruge OTA -programmeringsfunktionen skal en skitse uploades gennem den serielle port. Denne skitse inkluderer HTML -koden til at fremstille en OTA -webopdater. Senere kan du nemt uploade koden med browseren. Når koden er uploadet gennem en seriel port, oprettes en webserver, hvor du kan vælge og uploade en ny skitse gennem en webbrowser.

Tilslut ESP32 -kortet til den bærbare computer for at uploade den primære kode, åbn derefter Arduino IDE og vælg typen af ​​bord som ESP32 Dev Kit og vælg den rigtige serielle port.

Rediger navnet på Wi-Fi & Password i den originale kode.

OTA -koden skal uploades til dit ESP32 -kort. Når koden er uploadet med succes, skal du åbne den serielle skærm. Derefter skal baudhastigheden på 115200 ændres på den serielle monitor. Tryk på Reset -knappen over ESP32 -modulet, og det skal udskrive IP -adressen på ESP32 -kortet.

Åbn standardbrowseren for at indsætte ESP32 IP -adressen. Så det skal åbne webserversiden for OTA. Her er brugernavn og adgangskode som standard administrator. Indtast nu loginoplysningerne, klik på login -siden, og derefter åbnes en ny fane for at uploade koden.

Fordele

Fordelene ved ESP32 OTA inkluderer følgende.

  • Denne centraliserede tilgang giver en enkelt opdatering mulighed for at sprede sig til forskellige ESP32'er på et lignende netværk.
  • OTA giver mulighed for opgraderinger af fjernfirmware uden at bruge fysisk adgang til udviklingskortet for at gøre det perfekt til IoT -implementeringer.
  • OTA fjerner kravet om fysiske forbindelser for at opdatere ESP32 -kortet ved at forenkle opdateringsproceduren, især for utilgængelige eller fjernenheder.
  • Opdateringer kan opnås eksternt, hvilket reducerer den tid, der bruges på beskyttelse og drift.
  • En enkelt kilde sender opdateringer til adskillige ESP32'er på et lignende netværk og strømline opdateringsproceduren for enorme implementeringer.
  • OTA tillader samtidige opdateringer til flere enheder ved at gøre det meget effektivt til store projekter.
  • Opdateringer kan planlægges og udføres i off-peak timer, hvilket reducerer problemer til driften af ​​enheden.
  • OTA -opdateringer inkluderer sikkerhedsrettelser og forbedringer, der beskytter mod sårbarheder.
  • OTA-funktionalitet kan integreres i ESP32-baserede projekter med Arduinoota-biblioteker.
  • OTA -programmering giver dig mulighed for at opdatere et nyt program til ESP32 uden nogen forbindelse til computeren.

Ulemper

De Ulemper ved ESP32 OTA Medtag følgende.

  • Fabriksbilledet af ESP32 -bestyrelsen indeholder ikke OTA -kapacitet. For det første skal du således uploade denne firmware gennem en seriel forbindelse, før du bruger OTA -opdateringer.
  • Derudover har nogle ældre ESP32 -modeller hukommelsesbegrænsninger, især dem, der har 1 MB flashhukommelse.
  • Hver uploadet skitse til et ESP32 -kort skal indeholde den krævede kode for at tillade OTA -funktionalitet. Enheden uden denne kode vil ikke længere være tilgængelig til OTA -opdateringer via en webserver.
  • Mange moderne ESP32 -tavler har nok hukommelse, men mindre eller ældre ESP32 -modeller opfylder muligvis begrænsninger gennem OTA, især hvis den uploadede skitse er i nærheden af ​​den eksisterende hukommelsesgrænse.
  • Hvis brugere uploader kode uden en adgangskode, kan enheden blive utilgængelig for fremtidige OTA-opdateringer, hvilket muligvis kræver en genudlæsning af den nødvendige OTA-skitse via serie.
  • Mens brugere kan tilføje et brugernavn og et hemmeligt ord for sikkerhed, beskytter denne foranstaltning muligvis ikke fuldt ud OTA -upload -siden mod uautoriseret adgang, hvis nogen identificerer den specifikke URL.
  • Forkert implementering af OTA -koden kan føre til potentielle problemer, da den kan deaktivere fremtidig OTA -funktionalitet.

Applikationer

Anvendelserne af ESP32 OTA inkluderer følgende.

  • ESP32 OTA -applikationer tillader enhedens firmware at opdatere eksternt uden fysisk forbindelse til enheden. Så dette er hovedsageligt nyttigt for IoT -enheder, der er installeret på utilgængelige steder, hvilket reducerer nedetid og vedligeholdelsesomkostninger. OTA giver mulighed for softwareopdateringer, fejlrettelser og funktionsforbedringer, der skal implementeres hurtigt og effektivt.
  • ESP32 OTA -opdateringer er vigtige i forskellige applikationer, hovedsageligt i indlejrede systemer og IoT -implementeringer ..
  • Disse opdateringer er betydningsfulde for industrielle automatiseringssystemers vedligeholdelse og opgradering uden at lukke hele processen.
  • OTA giver smarte hjemmeenheder mulighed for at modtage eksterne firmwareopgraderinger ved at sikre de bedste ydelse og funktionsforbedringer.
  • OTA -opdateringer er vigtige for at opdatere fjernsensorernes firmware- og overvågningssystemer ved at sikre, at de forbliver nøjagtige og funktionelle.
  • OTA -opdatering giver en passende metode til at håndtere og opbevare enheder i enhver IoT -applikation, uanset hvor fjernadgang er upraktisk eller begrænset.
  • Brugere opdaterer smarte låse, sikkerhedskameraer og sikkerhedssystemer for at sikre, at de forbliver sikre og funktionelle.
  • Industrier anvender ESP32 OTA til at opdatere softwaren og systemerne for maskiner i automatiseringsprocesser.
  • Teknikere opdaterer enhedens software i vejrstationer, miljøovervågning og fjernapplikationer.
  • Denne OTA opdaterer software inden for smart gårdsudstyr, kunstvandingssystemer osv.
  • Det administrerer og opdaterer smarte hjemmeenheder eksternt i hjemmeautomatisering som låse, sikkerhedssystemer, smarte lys osv.

Konklusion:

Således, ESP32 OTA -opdateringer giver En praktisk metode til at opdatere firmware og andre filer trådløst på ESP32 -enheder ved at fjerne de fysiske forbindelser. Så denne metode er hovedsageligt nyttig til fjernbetjeninger og reducerer vedligeholdelse ved at tillade fejlrettelser og forbedringer af funktioner uden nogen fysisk forbindelse. ESP32 OTA -opdatering giver en værdifuld teknik til at vedligeholde og opdatere ESP32 -enheder eksternt, forenkle vedligeholdelse og forkorte opdateringsprocessen. Her er et spørgsmål til dig: Hvad er ESP32 -bestyrelsen?