In het verleden worden firmware -updates in ingebedde systemen waren een kritieke taak. Maar de meeste IoT -apparaten en ingebedde apparaten zijn via internet verbonden om de firmware op afstand bij te werken door ontwikkelaars. Apparaten die verbinding kunnen maken met internet, hebben het voordeel dat ze zichzelf bijwerken. Dus dit soort firmware programmeren in ESP32 wordt OTA genoemd (over de lucht), wat helpt om de ingebedde apparaten up-to-date te houden met minimale gebruikersinterventie. Bovendien biedt Over-the-Air veel functies en is het een kosteneffectieve techniek voor ontwikkelaars om hun apparaten te laten updaten. Dit artikel onderzoekt de OTA -firmware Update procedure over het ESP32 Development Board.
Wat is OTA -programmering in ESP32/ ESP32 OTA?
ESP32 OTA is de mogelijkheid om een nieuw programma via het ESP32 -ontwikkelingsbordproces via internet te uploaden of bij te werken zonder verbinding te maken met een computer. Bovendien kan dit proces ook de vereiste tijd verminderen om elke ESP -module in onderhoud bij te werken. Het maakt dus draadloze updates mogelijk via internet of andere soorten draadloze netwerken.
Het ESP32 Development Board besteedt aandacht aan een firmware -update door deze te downloaden met behulp van protocollen zoals HTTPS, MQTT of HTTP. Daarna verifieert het en flitst het in een toegewezen partitie binnen het geheugen van het ESP32 -bord. OTA -updates zijn belangrijk voor ingebedde apparaten of IoT -apparaten, met name wanneer apparaten moeilijk toegang hebben of op externe locaties.
ESP32 ota kernonderdelen
ESP32 OTA gebruikt verschillende belangrijke componenten voor firmware -updates zonder het apparaat fysiek te verbinden. De kerndelen van deze OTA helpen dus bij het verzenden en ontvangen van updates. Bovendien, asyncelegantota (of) de ESP HTTPS OTA Libraries & Frameworks van Espressif verkorten de implementatieprocedure.
Data -partitie van OTA
Deze partitie binnen het Flash -geheugen van de ESP32 -bord slaat eenvoudig de bijgewerkte informatie van OTA op, zoals de firmware -afbeelding en een teller om te volgen welke slot meer recent is geschreven.
Communicatiemechanisme
OTA -updates zijn voornamelijk afhankelijk van draadloze communicatieprotocollen zoals Bluetooth of wifi, waar Bluetooth wordt gebruikt voor meer gelokaliseerde en kleinere updates, en WiFi wordt vaak gebruikt.

Client-server-architectuur
Een client, zoals een mobiele app of pc, initieert de update en verzendt de firmware naar de ESP32 -server.
Bibliotheken en frameworks
Asyncelegantota & de ESP HTTPS OTA-bibliotheken bieden vooraf gebouwde functionaliteiten om de OTA-procedure aan te kunnen en de ontwikkeling te verkorten.
Bootloader
Deze bootloader behandelt de overgang naar de nieuwste firmware na een succesvolle OTA -update.
Veilige OTA
Veilige OTA -updates omvatten de firmware -handtekeningverificatie om de integriteit en authenticiteit ervan te waarborgen.
In wezen omvatten ESP32 OTA-updates een combinatie van software (partities, bibliotheken en firmware) en communicatieprotocollen (Wi-Fi of Bluetooth). Daarom wordt het de firmware van het apparaat naadloos bijgewerkt zonder fysieke toegang.
Werk
Met ESP32 OTA -programmering kan de firmware/software van de ESP32 draadloos bijwerken naar een computer zonder een fysieke verbinding. Dus dit kan worden gedaan door een nieuwe firmware-afbeelding te verzenden via een netwerk zoals Wi-Fi, en daarna het schrijven in het flash-geheugen van de ESP32. De ESP32 Development Board reboots en de nieuwste firmware wordt dus uitgevoerd.
Implementatie van ESP32 OTA
Om over-the-air updates voor het ESP32 Development Board te implementeren, moet een eenvoudige OTA-schets worden geüpload. Daarna wordt een webserver gebruikt om de nieuwste firmware te uploaden. Dus deze hele installatie van de ESP32 OTA-procedure omvat een Wi-Fi-verbindingsinstellingen, bibliotheekinstallatie en daarna wordt een gecompileerd binair bestand geüpload naar het ESP32-bord.
Stapsgewijze procedure van ESP32 OTA-implementatie:
- Moet eerst het ESP32 -bordpakket in de Arduino IDE installeren.
- Neem daarna de specifieke en andere noodzakelijke bibliotheken van ESP32 op.
- De basis OTA -schets moet worden geüpload, die normaal gesproken een webserver bevat, voornamelijk voor OTA -updates.
- Open de browser en staat het webserver IP -adres van ESP32 toe.
- Kies het .bin -bestand in de webserverinterface die u wenst te uploaden.
- Klik op de knop Upload om de OTA -update te starten.
- Nu is de ESP32 verbonden met uw Wi-Fi-netwerk.
- Open Aard zal opnieuw opstarten door de nieuw geüploade firmware.
- De Arduinoota -bibliotheek moet in de ESP32 -kern worden gebruikt om de OTA -procedure te vereenvoudigen.
- U kunt ook het Basicota -voorbeeld gebruiken dat door de bibliotheek wordt gegeven of uw eigen OTA -applicatie maken.
- Nu kunt u de Arduinoota -bibliotheek eenvoudigweg de nieuwste schets OTA uploaden naar uw ESP32.
Gebruik een webserver
- In de ESP32 Arduino Library biedt het voorbeeld van OtawebupDater een webinterface om firmware te uploaden.
- De schets is samengesteld om een .bin -bestand te genereren, daarna kan deze worden geüpload via de webserver.
- Deze techniek zorgt voor eenvoudige en meer toegankelijke OTA -updates.
- Zorg er bovendien voor dat u minimaal twee OTA -partities hebt binnen uw ESP32 -bord.
- Gebruik andere technieken zoals de Arduino IoT Cloud, voornamelijk voor OTA -updates.
- De OTA -procedure overschrijft de bestaande firmware binnen een speciale OTA -partitie door ervoor te zorgen dat de lopende firmware stabiel blijft.
ESP32 OTA Interfacing met Arduino
Het belangrijkste kenmerk van WIFI-compatibele microcontrollers (ESP32 & ESP8266 ) is OTA -programmering. Deze apparaten upgraden hun firmware draadloos. Met behulp van OTA kan een update worden verzonden naar verschillende microcontrollers die zich op een vergelijkbaar netwerk bevinden. Deze functie wordt gebruikt om updates te verzenden voor het oplossen van de bugs door enkele functies op te nemen naar verschillende microcontrollers, settopboxen, computers, mobiele telefoons, enz.
Over het algemeen spelen OTA -updates een sleutelrol in de Internet of Things Om op afstand op internet verbonden apparaten op afstand bij te werken met nieuwe instellingen en software. Hier gaan we OTA -programmering gebruiken met het ESP32 -bord in Arduino IDE met de OTA Web Updater.
De vereiste componenten voor ESP32 OTA interface met het Arduino Board zijn het ESP32 -bord en de Arduino IDE.

OTA -code
De OTA -code voor de ESP32 Development Board wordt hieronder gegeven.
#include
#include
const char* host = 'ESP32'; ssid = 'xxx'; wachtwoord = 'xxxx';
WebServer Server (80);
/* inlogpagina*/
Const char* logindex =
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
''
''
'';
/*
* Serverindexpagina
*/
const char* serverIndex =
'';
/*
* Setup -functie
*/
void setup (void) {
Serial.Begin (115200);
// verbinding maken met het wifi -netwerk
Wifi.Begin (SSID, wachtwoord);
Serial.println ('');
// Wacht op verbinding
terwijl (wifi.status ()! = wl_Connected) {
vertraging (500);
Serial.print ('.');
}
Serial.println ('');
Serial.print ('verbonden met');
Serial.println (SSID);
Serial.print ('IP -adres:');
Serial.println (wifi.localip ());
/*Gebruik MDNS voor resolutie van de hostnaam*/
if (! mdns.begin (host)) {// c2e2f8f35ba56eedbbc296b8125c387d1182e239
Serial.println ('Fout instellen van MDNS -responder!');
terwijl (1) {
vertraging (1000);
}
}
Serial.println ('MDNS -responder gestart');
/ *Retourneer indexpagina die is opgeslagen in 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);
});
/ *omgaan met het uploaden van firmwarebestand */
server.on ('/update', http_post, [] () {
Server.Sendheader ('Connection', 'Close');
Server.Send (200, 'Text/Plain', (update.HasError ())? 'Fail': '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)) {// Begin met max beschikbaar maat
Update.printerror (serieel);
}
} anders if (upload.status == upload_file_write) {
/* Knipperende firmware naar ESP*/
if (update.write (upload.buf, upload.currentize)! = upload.currentsize) {
Update.printerror (serieel);
}
} anders if (upload.status == upload_file_end) {
if (update.end (true)) {// true om de grootte in te stellen op de huidige voortgang
Serial.printf ('Succes bijwerken: %u \ nroting… \ n', upload.totalize);
} else {
Update.printerror (serieel);
}}}
server.begin ();
}
void loop (void) {
server.handleClient ();
vertraging (1);
}
OTA -programmering werkt
Om de OTA -programmeerfunctie te gebruiken, moet een schets worden geüpload via de seriële poort. Deze schets bevat de HTML -code om een OTA -web -updater te maken. Later kunt u de code eenvoudig uploaden met de browser. Zodra de code is geüpload via een seriële poort, wordt een webserver gemaakt waar u een nieuwe schets kunt selecteren en uploaden via een webbrowser.
Sluit het ESP32 -bord aan op de laptop om de primaire code te uploaden, open vervolgens de Arduino IDE en kies het type bord als ESP32 Dev Kit en kies de juiste seriële poort.
Wijzig de naam van het Wi-Fi & wachtwoord in de oorspronkelijke code.
De OTA -code moet worden geüpload naar uw ESP32 -bord. Zodra de code succesvol is geüpload, opent u de seriële monitor. Daarna moet de baudrate van 115200 worden gewijzigd op de seriële monitor. Druk op de resetknop boven de ESP32 -module en moet het IP -adres van het ESP32 -bord afdrukken.
Open de standaardbrowser om het ESP32 IP -adres te plakken. Het moet dus de webserverpagina openen voor OTA. Hier zijn gebruikersnaam en wachtwoord standaard admin. Voer nu de inloggegevens in, klik op de inlogpagina en vervolgens wordt een nieuw tabblad geopend om de code te uploaden.
Voordelen
De voordelen van ESP32 OTA omvatten het volgende.
- Met deze gecentraliseerde aanpak kunnen een enkele update zich verspreiden naar verschillende ESP32's op een soortgelijk netwerk.
- OTA maakt upgrades van externe firmware mogelijk zonder fysieke toegang tot het ontwikkelingsbord te gebruiken om het perfect te maken voor IoT -implementaties.
- OTA verwijdert de vereiste van fysieke verbindingen om het ESP32 -bord bij te werken door de updateprocedure te vereenvoudigen, met name voor ontoegankelijke of externe apparaten.
- Updates kunnen op afstand worden bereikt, wat de tijd die wordt besteed aan bescherming en werking vermindert.
- Een enkele bron stuurt updates naar tal van ESP32's op een soortgelijk netwerk en stroomlijnt de updateprocedure voor enorme implementaties.
- OTA staat gelijktijdige updates voor verschillende apparaten toe door het zeer efficiënt te maken voor grootschalige projecten.
- Updates kunnen worden gepland en uitgevoerd in daluren, wat de problemen voor de werking van het apparaat vermindert.
- OTA -updates omvatten beveiligingspatches en verbeteringen die beschermen tegen kwetsbaarheden.
- OTA-functionaliteit kan worden geïntegreerd in ESP32-gebaseerde projecten met Arduinoota-bibliotheken.
- Met OTA -programmering kunt u een nieuw programma bijwerken naar de ESP32 zonder enige verbinding met de computer.
Nadelen
De Nadelen van ESP32 OTA Neem het volgende op.
- Het fabrieksbeeld van het ESP32 -bord bevat geen OTA -mogelijkheden. Daarom moet u deze firmware uploaden via een seriële verbinding voordat u OTA -updates gebruikt.
- Bovendien hebben sommige oudere ESP32 -modellen geheugenbeperkingen, met name die met 1 MB flash -geheugen.
- Elke geüploade schets in een ESP32 -bord moet de vereiste code bevatten om OTA -functionaliteit mogelijk te maken. Het apparaat zonder deze code is niet langer beschikbaar voor OTA -updates via een webserver.
- Veel moderne ESP32 -boards hebben voldoende geheugen, maar kleinere of oudere ESP32 -modellen kunnen voldoen aan beperkingen via OTA, vooral als de geüploade schets in de buurt van de bestaande geheugenlimiet is.
- Als gebruikers zonder wachtwoord code uploaden, kan het apparaat onbereikbaar worden voor toekomstige OTA-updates, waardoor mogelijk een opnieuw upload van de benodigde OTA-schets via serie vereist is.
- Hoewel gebruikers een gebruikersnaam en een geheim woord voor veiligheid kunnen toevoegen, kan deze maatregel de OTA -uploadpagina niet volledig beschermen tegen ongeautoriseerde toegang als iemand de specifieke URL identificeert.
- Onjuiste implementatie van de OTA -code kan leiden tot mogelijke problemen, omdat dit toekomstige OTA -functionaliteit kan uitschakelen.
Toepassingen
De toepassingen van ESP32 OTA omvatten het volgende.
- ESP32 OTA -applicaties laten de firmware van het apparaat op afstand bijwerken zonder enige fysieke verbinding met het apparaat. Dit is dus vooral handig voor IoT -apparaten die op ontoegankelijke locaties zijn geïnstalleerd, waardoor downtime en onderhoudskosten dalen. OTA maakt software -updates, bugfixes en functieverbeteringen mogelijk snel en efficiënt worden geïmplementeerd.
- ESP32 OTA -updates zijn essentieel in verschillende toepassingen, voornamelijk in ingebedde systemen en IoT -implementaties.
- Deze updates zijn belangrijk voor het onderhoud en upgraden van industriële automatiseringssystemen zonder het hele proces af te sluiten.
- Met OTA kunnen Smart Home -apparaten externe firmware -upgrades ontvangen door te zorgen voor de beste prestatie- en functieverbeteringen.
- OTA -updates zijn belangrijk om de firmware- en monitoringsystemen van de externe sensoren bij te werken door ervoor te zorgen dat ze nauwkeurig en functioneel blijven.
- OTA -update biedt een geschikte methode om apparaten in elke IoT -toepassing te verwerken en te bewaren, waar externe toegang onpraktisch of beperkt is.
- Gebruikers werken slimme sloten, beveiligingscamera's en beveiligingssystemen bij om ervoor te zorgen dat ze veilig en functioneel blijven.
- Industrieën gebruiken ESP32 OTA om de software en systemen van machines in automatiseringsprocessen bij te werken.
- Technici werken de software van het apparaat bij in weerstations, milieumonitoring en externe applicaties.
- Deze OTA werkt software bij in slimme boerderijapparatuur, irrigatiesystemen, enz.
- Het beheert en werkt Smart Home -apparaten op afstand bij in huisautomatisering zoals sloten, beveiligingssystemen, slimme lichten, enz.
Conclusie:
Dus, ESP32 OTA -updates bieden Een handige methode om firmware en andere bestanden draadloos bij te werken op ESP32 -apparaten door de fysieke verbindingen te verwijderen. Deze methode is dus voornamelijk nuttig voor externe implementaties en vermindert onderhoud door bugfixes en verbeteringen van functies mogelijk te maken zonder enige fysieke verbinding. ESP32 OTA -update biedt een waardevolle techniek om ESP32 -apparaten op afstand te onderhouden en bij te werken, onderhoud te vereenvoudigen en het updateproces te verkorten. Hier is een vraag voor u: wat is het ESP32 -bord?