I det siste oppdateres firmware innebygde systemer var en kritisk oppgave. Men de fleste av IoT -enhetene og innebygde enhetene er tilkoblet via Internett for å oppdatere firmware eksternt av utviklere. Enheter som kan koble seg til Internett har fordelen av å oppdatere seg selv. Så denne typen firmware -programmering i ESP32 blir referert til som OTA (over-the-air), som hjelper til med å holde de innebygde enhetene oppdatert med minimum brukerinngrep. I tillegg tilbyr Over-the-Air mange funksjoner og er en kostnadseffektiv teknikk for utviklere å gjøre enhetene sine oppdatering. Denne artikkelen utforsker OTA firmware Oppdateringsprosedyre over ESP32 Development Board.
Hva er OTA -programmering i ESP32/ ESP32 OTA?
ESP32 OTA er muligheten til å laste opp eller oppdatere et nytt program i ESP32 Development Board -prosessen over Internett uten å koble til en datamaskin. I tillegg kan denne prosessen også redusere den nødvendige tiden for å oppdatere hver ESP -modul i vedlikehold. Dermed tillater det trådløse oppdateringer over Internett eller andre typer trådløse nettverk.
ESP32 Development Board er oppmerksom på en firmwareoppdatering ved å laste ned den ved hjelp av protokoller Som HTTPS, MQTT eller HTTP. Etter det verifiserer og blinker den inn i en tildelt partisjon innen minnet til ESP32 -styret. OTA -oppdateringer er viktige for innebygde enheter eller IoT -enheter, spesielt når enheter er vanskelige å få tilgang til eller på eksterne steder.
ESP32 OTA kjernedeler
ESP32 OTA bruker forskjellige nøkkelkomponenter for firmwareoppdateringer uten å koble enheten fysisk. Dermed hjelper kjernedelene av denne OTA med å overføre og motta oppdateringer. I tillegg, Asyncelegantota (eller) ESP HTTPS OTA -biblioteker og rammer fra espressif forkorter implementeringsprosedyren.
Datapartisjon av OTA
Denne partisjonen i ESP32 -styrets flashminne lagrer ganske enkelt den oppdaterte informasjonen til OTA, som firmware -bildet og en teller for å spore hvilket spor som ble skrevet til mer nylig.
Kommunikasjonsmekanisme
OTA -oppdateringer avhenger hovedsakelig av trådløse kommunikasjonsprotokoller som Bluetooth eller wifi, der Bluetooth brukes til mer lokaliserte og mindre oppdateringer, og WiFi brukes ofte.

Klient-serverarkitektur
En klient, som en mobilapp eller PC, setter i gang oppdateringen og sender firmware til ESP32 -serveren.
Biblioteker og rammer
Ayncelegantota & ESP HTTPS OTA-biblioteker gir forhåndsbygde funksjoner for å håndtere OTA-prosedyren og forkorte utviklingen.
Bootloader
Denne bootloader håndterer overgangen til den nyeste firmware etter en vellykket OTA -oppdatering.
Trygt Ota
Trygge OTA -oppdateringer involverer firmware signaturbildeverifisering for å sikre dens integritet og autentisitet.
I hovedsak involverer ESP32 OTA-oppdateringer en kombinasjon av programvare (partisjoner, biblioteker og firmware) og kommunikasjonsprotokoller (Wi-Fi eller Bluetooth). Dermed oppdaterer den sømløst enhetens firmware uten fysisk tilgang.
Jobber
ESP32 OTA -programmering lar ESP32s firmware/programvare oppdatere trådløst til en datamaskin uten fysisk forbindelse. Så dette kan gjøres ved å sende et nytt firmwarebilde over et nettverk som Wi-Fi, og etter det å skrive det inn i flashminnet til ESP32. Dermed starter ESP32 Development Board på nytt og den nyeste firmware kjører.
Implementering av ESP32 OTA
For å implementere over-the-air-oppdateringer for ESP32 Development Board, må en grunnleggende OTA-skisse lastes opp. Etter det brukes en webserver til å laste opp den nyeste firmware. Så hele installasjonen av ESP32 OTA-prosedyren innebærer et Wi-Fi-tilkoblingsoppsett, bibliotekinstallasjon, og etter det lastes en samlet binærfil i ESP32-brettet.
Trinn-for-trinn-prosedyre for ESP32 OTA-implementering:
- Først må du installere ESP32 -brettpakken i Arduino IDE.
- Etter det, inkluder de spesifikke og andre nødvendige bibliotekene til ESP32.
- Den grunnleggende OTA -skissen må lastes opp, som normalt inneholder en webserver hovedsakelig for OTA -oppdateringer.
- Åpne nettleseren og la Web Server IP -adressen til ESP32.
- Velg .bin -filen i webservergrensesnittet du ønsker å laste opp.
- Klikk på opplastingsknappen for å starte OTA -oppdateringen.
- Nå er ESP32 koblet til Wi-Fi-nettverket.
- Åpne Aard vil starte på nytt gjennom den nylig opplastede firmware.
- Arduinoota -biblioteket må brukes i ESP32 -kjernen for å forenkle OTA -prosedyren.
- Du kan også bruke Basicota -eksemplet gitt av biblioteket eller lage din egen OTA -applikasjon.
- Nå lar Arduinoota -biblioteket deg ganske enkelt laste opp den nyeste skissen OTA til din ESP32.
Bruk en webserver
- I ESP32 Arduino -biblioteket gir Otawebupdater -eksemplet et nettgrensesnitt for å laste opp firmware.
- Skissen er samlet for å generere en .bin -fil, etter det kan den lastes opp gjennom webserveren.
- Denne teknikken gir enkle og mer tilgjengelige OTA -oppdateringer.
- I tillegg må du sørge for at du har minimum to OTA -partisjoner i ESP32 -brettet ditt.
- Bruk andre teknikker som Arduino IoT -skyen, hovedsakelig for OTA -oppdateringer.
- OTA -prosedyren overskriver den eksisterende firmware innen en dedikert OTA -partisjon ved å sikre at den løpende firmware holder seg stabil.
ESP32 OTA grensesnitt med Arduino
Hovedfunksjonen til WiFi-aktiverte mikrokontrollere (ESP32 & ESP8266 ) er OTA -programmering. Disse enhetene oppgraderer firmware trådløst. Ved hjelp av OTA kan en oppdatering sendes til forskjellige mikrokontrollere som er på et lignende nettverk. Denne funksjonen brukes til å sende oppdateringer for å løse feilene ved å inkludere noen funksjoner til flere mikrokontrollere, set-top-bokser, datamaskiner, mobiltelefoner osv.
Generelt spiller OTA -oppdateringer en nøkkelrolle i Tingenes internett For å oppdatere Internett-tilkoblede enheter eksternt med nye innstillinger og programvare. Her skal vi bruke OTA -programmering med ESP32 -styret i Arduino IDE med OTA Web Updater.
De nødvendige komponentene for ESP32 OTA -grensesnitt med Arduino -styret inkluderer ESP32 -styret og Arduino IDE.

OTA -kode
OTA -koden for ESP32 Development Board er gitt nedenfor.
#include
#include
const char* vert = “esp32”; ssid = “xxx”; passord = “xxxx”;
WebServer Server (80);
/* påloggingsside*/
Const char* logindex =
“
”“”;
/*
* Serverindeksside
*/
const char* serverindex =
“”;
/*
* Oppsettfunksjon
*/
void setup (void) {
Serial.begin (115200);
// Koble til WiFi -nettverket
Wifi.begin (SSID, passord);
Serial.println (“”);
// Vent på tilkobling
mens (wifi.status ()! = wl_connected) {
forsinkelse (500);
Serial.print (“.”);
}
Serial.println (“”);
Serial.print (“koblet til”);
Serial.println (SSID);
Serial.print (“IP -adresse:“);
Serial.println (wifi.localip ());
/*Bruk MDN -er for oppløsning av vertsnavn*/
if (! mdns.begin (vert)) {// c2e2f8f35ba56eedbbc296b8125c387d1182e239
Serial.println (“Feil å sette opp MDNS Responder!”);
mens (1) {
forsinkelse (1000);
}
}
Serial.println (“MDNS Responder startet”);
/ *Returindeksside som er lagret 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 av opplasting av firmwarefil */
server.on (“/oppdatering”, http_post, [] () {
server.sendHeader (“Connection”, “Close”);
Server.send (200, “Text/Plain”, (update.hasError ())? “Feil”: “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 maks tilgjengelig størrelse
Update.printError (seriell);
}
} annet hvis (upload.status == upload_file_write) {
/* blinkende firmware til esp*/
if (update.write (upload.buf, upload.currentSize)! = upload.currentSize) {
Update.printError (seriell);
}
} annet hvis (upload.status == upload_file_end) {
if (update.end (true)) {// sant for å sette størrelsen til gjeldende fremgang
Serial.printf (“Oppdater suksess: %u \ nrebooting… \ n”, upload.totalSize);
} annet {
Update.printError (seriell);
}}}
server.begin ();
}
void loop (void) {
server.handleClient ();
forsinkelse (1);
}
OTA -programmering fungerer
For å bruke OTA -programmeringsfunksjonen, må en skisse lastes opp gjennom serieporten. Denne skissen inkluderer HTML -koden for å lage en OTA -weboppdatering. Senere kan du enkelt laste opp koden med nettleseren. Når koden er lastet opp gjennom en seriell port, vil det opprettes en webserver der du kan velge og laste opp en ny skisse gjennom en nettleser.
Koble ESP32 -brettet til den bærbare datamaskinen for å laste opp primærkoden, og åpne deretter Arduino IDE og velg typen tavle som ESP32 Dev Kit og velg riktig serieport.
Endre navnet på Wi-Fi og passordet i den opprinnelige koden.
OTA -koden må lastes opp til ESP32 -brettet ditt. Når koden er lastet opp, åpner du seriemonitoren. Etter det må baudfrekvensen på 115200 endres på seriemonitoren. Trykk på tilbakestillingsknappen over ESP32 -modulen, og den må skrive ut IP -adressen til ESP32 -brettet.
Åpne standard nettleseren for å lime inn IP32 IP -adressen. Så det må åpne webserver -siden for OTA. Her er brukernavn og passord som standard admin. Nå skriver du inn påloggingsdetaljene, klikker på påloggingssiden, og så åpnes en ny fane for å laste opp koden.
Fordeler
Fordelene med ESP32 OTA inkluderer følgende.
- Denne sentraliserte tilnærmingen lar en enkelt oppdatering spre seg til forskjellige ESP32 -er på et lignende nettverk.
- OTA gir mulighet for oppgraderinger av ekstern firmware uten å bruke fysisk tilgang til utviklingstavlen for å gjøre det perfekt for IoT -distribusjoner.
- OTA fjerner kravet til fysiske tilkoblinger for å oppdatere ESP32 -styret ved å forenkle oppdateringsprosedyren, spesielt for utilgjengelige eller eksterne enheter.
- Oppdateringer kan oppnås eksternt, noe som reduserer tiden som brukes på beskyttelse og drift.
- En enkelt kilde sender oppdateringer til en rekke ESP32 -er i et lignende nettverk og effektiviserer oppdateringsprosedyren for enorme distribusjoner.
- OTA tillater samtidig oppdateringer til flere enheter ved å gjøre det veldig effektivt for store prosjekter.
- Oppdateringer kan planlegges og utføres i høye timer, noe som reduserer problemer til driften av enheten.
- OTA -oppdateringer inkluderer sikkerhetsoppdateringer og forbedringer som beskytter mot sårbarheter.
- OTA-funksjonalitet kan integreres i ESP32-baserte prosjekter med Arduinoota-biblioteker.
- OTA -programmering lar deg oppdatere et nytt program i ESP32 uten noen tilknytning til datamaskinen.
Ulemper
De Ulemper ved ESP32 OTA inkluderer følgende.
- Fabrikkbildet av ESP32 -styret inneholder ikke OTA -evne. Først må du laste opp denne firmware gjennom en seriell forbindelse før du bruker OTA -oppdateringer.
- I tillegg har noen eldre ESP32 -modeller hukommelsesbegrensninger, spesielt de som har 1 MB flash -minne.
- Hver opplastet skisse til et ESP32 -brett må inneholde den nødvendige koden for å tillate OTA -funksjonalitet. Enheten uten denne koden vil ikke lenger være tilgjengelig for OTA -oppdateringer gjennom en webserver.
- Mange moderne ESP32 -brett har nok minne, men mindre eller eldre ESP32 -modeller kan oppfylle begrensninger gjennom OTA, spesielt hvis den opplastede skissen er i nærheten av den eksisterende minnegrensen.
- Hvis brukere laster opp kode uten passord, kan enheten bli utilgjengelig for fremtidige OTA-oppdateringer, og muligens kreve en last opp på den nødvendige OTA-skissen via serien.
- Selv om brukere kan legge til et brukernavn og et hemmelig ord for sikkerhet, kan dette tiltaket ikke fullstendig beskytte OTA -opplastingssiden mot uautorisert tilgang hvis noen identifiserer den spesifikke URL -en.
- Feil implementering av OTA -koden kan føre til potensielle problemer, da den kan deaktivere fremtidig OTA -funksjonalitet.
Applikasjoner
Applikasjonene til ESP32 OTA inkluderer følgende.
- ESP32 OTA -applikasjoner lar enhetens firmware oppdatere eksternt uten fysisk forbindelse til enheten. Så dette er hovedsakelig nyttig for IoT -enheter installert på utilgjengelige steder, og reduserer driftsstans og vedlikeholdskostnader. OTA tillater programvareoppdateringer, feilrettinger og forbedringer av funksjoner raskt og effektivt.
- ESP32 OTA -oppdateringer er viktige i forskjellige applikasjoner, hovedsakelig i innebygde systemer og IoT -distribusjoner ..
- Disse oppdateringene er viktige for vedlikehold av industrielle automatiseringssystemer og oppgradering uten å slå av hele prosessen.
- OTA lar smarte hjemmeenheter motta eksterne firmwareoppgraderinger ved å sikre de beste ytelses- og funksjonsforbedringene.
- OTA -oppdateringer er viktige for å oppdatere fjernsensorens firmware- og overvåkningssystemer, ved å sikre at de holder seg nøyaktige og funksjonelle.
- OTA -oppdatering gir en passende metode for å håndtere og oppbevare enheter i enhver IoT -applikasjon, uansett hvor fjerntilgang er upraktisk eller begrenset.
- Brukere oppdaterer smarte låser, sikkerhetskameraer og sikkerhetssystemer for å sikre at de forblir trygge og funksjonelle.
- Industrier bruker ESP32 OTA for å oppdatere programvaren og systemene til maskiner i automatiseringsprosesser.
- Teknikere oppdaterer enhetens programvare i værstasjoner, miljøovervåking og eksterne applikasjoner.
- Denne OTA oppdaterer programvare i smart gårdsutstyr, vanningsanlegg, etc.
- Den administrerer og oppdaterer smarte hjemmeenheter eksternt i hjemmeautomatisering som låser, sikkerhetssystemer, smarte lys osv.
Konklusjon:
Slik, ESP32 OTA -oppdateringer gir En praktisk metode for å oppdatere firmware og andre filer trådløst på ESP32 -enheter ved å fjerne de fysiske tilkoblingene. Så denne metoden er hovedsakelig nyttig for eksterne distribusjoner og reduserer vedlikehold ved å tillate feilrettinger og forbedringer av funksjoner uten fysisk forbindelse. ESP32 OTA -oppdatering gir en verdifull teknikk for å vedlikeholde og oppdatere ESP32 -enheter eksternt, forenkle vedlikehold og forkorte oppdateringsprosessen. Her er et spørsmål til deg: Hva er ESP32 -styret?