Tidigare uppdaterar firmware i inbäddade system var en kritisk uppgift. Men de flesta av IoT -enheter och inbäddade enheter är anslutna via Internet för att uppdatera firmware på distans av utvecklare. Enheter som kan ansluta till Internet har fördelen att uppdatera sig själva. Så den här typen av firmware -programmering i Esp32 kallas OTA (över-luften), vilket hjälper till att hålla de inbäddade enheterna uppdaterade med minsta användarintervention. Dessutom erbjuder Over-the-Air många funktioner och är en kostnadseffektiv teknik för utvecklare att få sina enheter att uppdatera. Den här artikeln utforskar OTA -firmware Uppdatera proceduren över ESP32 -utvecklingsnämnden.
Vad är OTA -programmering i ESP32/ ESP32 OTA?
ESP32 OTA är förmågan att ladda upp eller uppdatera ett nytt program i ESP32 -utvecklingskortprocessen över internet utan att ansluta till en dator. Dessutom kan denna process också minska den nödvändiga tiden för att uppdatera varje ESP -modul i underhåll. Således tillåter det trådlösa uppdateringar via Internet eller andra typer av trådlösa nätverk.
ESP32 Development Board ägnar uppmärksamhet åt en firmware -uppdatering genom att ladda ner den med protokoll som HTTPS, MQTT eller HTTP. Efter det verifierar och blinkar den till en tilldelad partition inom minnet av ESP32 -kortet. OTA -uppdateringar är betydande för inbäddade enheter eller IoT -enheter, särskilt när enheter är svåra att komma åt eller på avlägsna platser.
ESP32 OTA -kärndelar
ESP32 OTA använder olika nyckelkomponenter för firmwareuppdateringar utan att ansluta enheten fysiskt. Således hjälper kärndelarna i denna OTA att överföra och ta emot uppdateringar. Dessutom förkortar Asyncelegantota (eller) ESP HTTPS OTA -bibliotek och ramar från Espressif implementeringsförfarandet.
Datapartition av OTA
Denna partition inom ESP32 -styrelsens flashminne lagrar helt enkelt den uppdaterade informationen om OTA, som firmware -bilden och en räknare för att spåra vilken plats som skrevs till mer nyligen.
Kommunikationsmekanism
OTA -uppdateringar beror främst på trådlösa kommunikationsprotokoll som Bluetooth eller WiFi, där Bluetooth används för mer lokaliserade och mindre uppdateringar, och WiFi används ofta.
Klientserverarkitektur
En klient, som en mobilapp eller dator, initierar uppdateringen och skickar firmware till ESP32 -servern.
Bibliotek och ramverk
Asyncelegantota & ESP HTTPS OTA-bibliotek ger förbyggda funktionaliteter för att hantera OTA-proceduren och förkorta utvecklingen.
Startladdare
Denna bootloader hanterar övergången till den senaste firmware efter en framgångsrik OTA -uppdatering.
Säker OTA
Säkra OTA -uppdateringar involverar firmware Signature Image Verification för att säkerställa dess integritet och äkthet.
I huvudsak involverar ESP32 OTA-uppdateringar en kombination av programvara (partitioner, bibliotek och firmware) och kommunikationsprotokoll (Wi-Fi eller Bluetooth). Således uppdaterar den sömlöst enhetens firmware utan fysisk åtkomst.
Arbetssätt
ESP32 OTA -programmering gör det möjligt för ESP32: s firmware/programvara att uppdatera trådlöst till en dator utan en fysisk anslutning. Så detta kan göras genom att skicka en ny firmware-bild över ett nätverk som Wi-Fi, och därefter skriver det in i flashminnet för ESP32. Således startar ESP32 Development Board och den senaste firmware.
Implementering av ESP32 OTA
För att implementera övre luftuppdateringar för ESP32-utvecklingskortet måste en grundläggande OTA-skiss laddas upp. Därefter används en webbserver för att ladda upp den senaste firmware. Så hela denna installation av ESP32 OTA-proceduren involverar en Wi-Fi-anslutningsinställning, biblioteksinstallation, och därefter laddas en sammanställd binär fil upp till ESP32-kortet.
Steg-för-steg-förfarande för ESP32 OTA-implementering:
- Först måste du installera ESP32 -kortpaketet i Arduino IDE.
- Därefter inkludera de specifika och andra nödvändiga biblioteken i ESP32.
- Den grundläggande OTA -skissen måste laddas upp, som normalt innehåller en webbserver huvudsakligen för OTA -uppdateringar.
- Öppna webbläsaren och låt webbservern IP -adressen för ESP32.
- Välj .Bin -filen i webbservergränssnittet som du vill ladda upp.
- Klicka på knappen Ladda upp för att starta OTA -uppdateringen.
- Nu är ESP32 ansluten till ditt Wi-Fi-nätverk.
- Open Aard kommer att starta om genom den nyligen uppladdade firmware.
- Arduinoota -biblioteket måste användas i ESP32 -kärnan för att förenkla OTA -proceduren.
- Du kan också använda Basicota -exemplet som ges av biblioteket eller göra din egen OTA -applikation.
- Nu tillåter Arduinoota -biblioteket helt enkelt att ladda upp den senaste skiss OTA till din ESP32.
Använd en webbserver
- I ESP32 Arduino -biblioteket tillhandahåller OtawebUpDater -exemplet ett webbgränssnitt för att ladda upp firmware.
- Skissen sammanställs för att generera en .bin -fil, därefter kan den laddas upp via webbservern.
- Denna teknik möjliggör enkla och mer tillgängliga OTA -uppdateringar.
- Se dessutom till att du har minst två OTA -partitioner inom ditt ESP32 -kort.
- Använd andra tekniker som Arduino IoT -molnet, främst för OTA -uppdateringar.
- OTA -proceduren skriver över den befintliga firmware inom en dedikerad OTA -partition genom att säkerställa att den löpande firmware förblir stabil.
ESP32 OTA gränssnitt med Arduino
Huvudfunktionen i WiFi-aktiverade mikrokontroller (ESP32 & Esp8266 ) är OTA -programmering. Dessa enheter uppgraderar sin firmware trådlöst. Med OTA kan en uppdatering skickas till olika mikrokontroller som finns i ett liknande nätverk. Den här funktionen används för att skicka uppdateringar för att lösa buggarna genom att inkludera några funktioner till flera mikrokontroller, set-top-lådor, datorer, mobiltelefoner etc.
Generellt spelar OTA -uppdateringar en nyckelroll i Internet of Things För att uppdatera internetanslutna enheter på distans med nya inställningar och programvara. Här kommer vi att använda OTA -programmering med ESP32 -kortet i Arduino IDE med OTA Web Updater.
De erforderliga komponenterna för ESP32 OTA -gränssnitt med Arduino -styrelsen inkluderar ESP32 -styrelsen och Arduino IDE.

OTA -kod
OTA -koden för ESP32 -utvecklingsnämnden ges nedan.
#include
#include
const char* host = “ESP32”; SSID = “XXX”; lösenord = “xxxx”;
WebServer Server (80);
/* inloggningssida*/
Const char* logindex =
“
”“”;
/*
* Serverindexsida
*/
const char* serverindex =
“
“ '
“ '
“”
“
“”;
/*
* Inställningsfunktion
*/
void installation (void) {
Serie.begin (115200);
// Anslut till WiFi -nätverket
Wifi.begin (SSID, lösenord);
Serie.println (“”);
// vänta på anslutning
medan (wifi.status ()! = wl_connected) {
försening (500);
Serie.print (“.”);
}
Serie.println (“”);
Serial.print (“Ansluten till”);
Serial.println (SSID);
Serial.print (“IP -adress:”);
Serie.println (wifi.localip ());
/*Använd MDNS för värdnamnupplösning*/
if (! mdns.begin (värd)) {// c2e2f8f35ba56eedbbc296b8125c387d1182e239
Serial.println (“Fel att ställa in MDNS -responder!”);
medan (1) {
försening (1000);
}
}
Serial.println (“MDNS Responder startade”);
/ *Returnindexsida som lagras i serverindex */
server.on (“/”, http_get, [] () {
Server.SendHeader ('Anslutning', 'Stäng');
Server.Send (200, 'Text/HTML', LoginIndex);
});
server.on (“/serverindex”, http_get, [] () {
Server.SendHeader ('Anslutning', 'Stäng');
Server.Send (200, 'Text/HTML', serverindex);
});
/ *Hantera uppladdning av firmware -fil */
server.on (“/uppdatering”, http_post, [] () {
Server.SendHeader ('Anslutning', 'Stäng');
Server.Send (200, 'Text/Plain', (Update.HasError ())? 'Fail': 'OK');
Esp.restart ();
} {
Httpupload & uppladdning = server.upload ();
if (ladda upp.status == upload_file_start) {
Serie.printf (“Uppdatering: %s \ n”, uppladdning.fileName.c_str ());
if (! update.begin (UPDATE_SIZE_UNKNOWN)) {// Börja med max tillgänglig storlek
Uppdatering.printror (serie);
}
} annat om (uppladdning.status == upload_file_write) {
/* blinkande firmware till ESP*/
if (update.write (uppladdning.buf, uppladdning.CurrentSize)! = Ladda upp.Currentsize) {
Uppdatering.printror (serie);
}
} annars om (uppladdning.status == upload_file_end) {
if (update.end (true)) {// true för att ställa in storleken på den nuvarande framstegen
Serial.printf (“Uppdateringsframgång: %u \ nReBooting… \ n”, Ladda upp.Totalsize);
} annat {
Uppdatering.printror (serie);
}}}
server.begin ();
}
void loop (void) {
server.handLeClient ();
försening (1);
}
OTA -programmering
För att använda OTA -programmeringsfunktionen måste en skiss laddas upp genom serieporten. Denna skiss innehåller HTML -koden för att skapa en OTA -webbuppdatering. Senare kan du enkelt ladda upp koden med webbläsaren. När koden har laddats upp via en seriell port skapas en webbserver där du kan välja och ladda upp en ny skiss via en webbläsare.
Anslut ESP32 -kortet till den bärbara datorn för att ladda upp den primära koden, öppna sedan Arduino IDE och välj brädets typ som ESP32 Dev Kit & välj rätt seriell port.
Ändra namnet på Wi-Fi & lösenordet inom den ursprungliga koden.
OTA -koden måste laddas upp till ditt ESP32 -kort. När koden har laddats upp öppnar du seriell monitor. Därefter måste baudhastigheten på 115200 ändras på seriell monitor. Tryck på RESET -knappen ovanför ESP32 -modulen så måste den skriva ut IP -adressen för ESP32 -kortet.
Öppna standardwebbläsaren för att klistra in ESP32 IP -adressen. Så den måste öppna webbserverns sida för OTA. Här är användarnamn och lösenord som standard administratör. Ange nu inloggningsinformationen, klicka på inloggningssidan och sedan öppnas en ny flik för att ladda upp koden.
Fördelar
Fördelarna med ESP32 OTA inkluderar följande.
- Detta centraliserade tillvägagångssätt gör det möjligt för en enda uppdatering att spridas till olika ESP32 i ett liknande nätverk.
- OTA möjliggör uppgraderingar av fjärrfirmware utan att använda fysisk tillgång till utvecklingskortet för att göra det perfekt för IoT -distributioner.
- OTA tar bort kravet på fysiska anslutningar för att uppdatera ESP32 -kortet genom att förenkla uppdateringsproceduren, särskilt för otillgängliga eller fjärrenheter.
- Uppdateringar kan uppnås på distans, vilket minskar den tid som spenderas på skydd och drift.
- En enda källa skickar uppdateringar till många ESP32s i ett liknande nätverk och effektiviserar uppdateringsproceduren för enorma distributioner.
- OTA tillåter samtidiga uppdateringar till flera enheter genom att göra det mycket effektivt för storskaliga projekt.
- Uppdateringar kan planeras och köras inom topptimmar, vilket minskar problemen till enhetens drift.
- OTA -uppdateringar inkluderar säkerhetsuppdrag och förbättringar som skyddar mot sårbarheter.
- OTA-funktionalitet kan integreras i ESP32-baserade projekt med Arduinoota-bibliotek.
- OTA -programmering låter dig uppdatera ett nytt program i ESP32 utan någon anslutning till datorn.
Nackdelar
De Nackdelar med ESP32 OTA inkludera följande.
- Fabriksbilden av ESP32 -kortet innehåller inte OTA -kapacitet. Således måste du först ladda upp denna firmware genom en seriell anslutning innan du använder OTA -uppdateringar.
- Dessutom har vissa äldre ESP32 -modeller minnesbegränsningar, särskilt de som har 1 MB flashminne.
- Varje uppladdad skiss till ett ESP32 -kort måste innehålla den nödvändiga koden för att möjliggöra OTA -funktionalitet. Enheten utan den här koden kommer inte längre att vara tillgänglig för OTA -uppdateringar via en webbserver.
- Många moderna ESP32 -kort har tillräckligt med minne, men mindre eller äldre ESP32 -modeller kan uppfylla begränsningarna genom OTA, särskilt om den uppladdade skissen är nära den befintliga minnesgränsen.
- Om användare laddar upp koden utan lösenord kan enheten bli ouppnåelig för framtida OTA-uppdateringar, eventuellt kräver en omlastning av den nödvändiga OTA-skissen via serien.
- Medan användare kan lägga till ett användarnamn och ett hemligt ord för säkerhet, kanske denna åtgärd inte helt skyddar OTA -uppladdningssidan från obehörig åtkomst om någon identifierar den specifika URL: n.
- Felaktig implementering av OTA -koden kan leda till potentiella problem, eftersom det kan inaktivera framtida OTA -funktionalitet.
Ansökningar
Tillämpningarna av ESP32 OTA inkluderar följande.
- ESP32 OTA -applikationer tillåter enhetens firmware att uppdatera på distans utan någon fysisk anslutning till enheten. Så detta är främst användbart för IoT -enheter installerade på otillgängliga platser, vilket minskar driftstopp och underhållskostnader. OTA gör det möjligt att distribueras för programuppdateringar, bugfixar och förbättringar av funktioner snabbt och effektivt.
- ESP32 OTA -uppdateringar är viktiga i olika applikationer, främst i inbäddade system och IoT -distributioner ..
- Dessa uppdateringar är betydelsefulla för industriella automatiseringssystems underhåll och uppgradering utan att stänga av hela processen.
- OTA tillåter smarta hemenheter att få uppgraderingar av fjärrfirmware genom att säkerställa bästa prestanda och funktionsförbättringar.
- OTA -uppdateringar är betydelsefulla för att uppdatera fjärrsensors firmware- och övervakningssystem genom att säkerställa att de förblir korrekta och funktionella.
- OTA -uppdatering tillhandahåller en lämplig metod för att hantera och hålla enheter i alla IoT -applikationer, varhelst fjärråtkomst är opraktisk eller begränsad.
- Användare uppdaterar smarta lås, säkerhetskameror och säkerhetssystem för att säkerställa att de förblir säkra och funktionella.
- Branscher använder ESP32 OTA för att uppdatera programvaran och systemen för maskiner i automatiseringsprocesser.
- Tekniker uppdaterar enhetens programvara på väderstationer, miljöövervakning och fjärrapplikationer.
- Denna OTA uppdaterar programvara i smart lantbruksutrustning, bevattningssystem etc.
- Den hanterar och uppdaterar smarta hemenheter på distans i hemmenautomation som lås, säkerhetssystem, smarta ljus, etc.
Slutsats:
Således, ESP32 OTA -uppdateringar ger En bekväm metod för att uppdatera firmware och andra filer trådlöst på ESP32 -enheter genom att ta bort de fysiska anslutningarna. Så den här metoden är huvudsakligen till hjälp för fjärrdistributioner och minskar underhållet genom att tillåta bugfixar och förbättringar av funktioner utan någon fysisk anslutning. ESP32 OTA -uppdatering ger en värdefull teknik för att underhålla och uppdatera ESP32 -enheter på distans, förenkla underhåll och förkorta uppdateringsprocessen. Här är en fråga till dig: Vad är ESP32 -styrelsen?