Mises à jour ESP32 OTA (Over-the-Air) – Bibliothèque ElegantOTA avec Arduino IDE

Mises à jour ESP32 OTA (Over-the-Air) – Bibliothèque ElegantOTA avec Arduino IDE

Ce tutoriel montre comment effectuer des mises à jour OTA (over-the-air) sur vos cartes ESP32 à l’aide de la bibliothèque ElegantOTA (version V3) avec l’IDE Arduino. Cette bibliothèque configure un serveur Web qui vous permet de mettre à jour le firmware (une nouvelle esquisse) de votre carte sans fil. De cette façon, vous n’avez pas besoin d’une connexion entre l’ESP32 et votre ordinateur pour télécharger un nouveau croquis. Cette bibliothèque permet également de télécharger des fichiers sur le système de fichiers (LittleFS ou SPIFFS) sans fil.

Mises à jour ESP32 OTA (Over-the-Air) – Bibliothèque ElegantOTA avec Arduino IDE

À la fin de ce didacticiel, vous serez en mesure d’ajouter facilement des fonctionnalités OTA à vos projets de serveur Web avec l’ESP32 pour télécharger sans fil de nouveaux micrologiciels et fichiers sur le système de fichiers à l’avenir.

Table des matières

Tout au long de ce didacticiel, nous aborderons :

Nous vous recommandons de suivre toutes les étapes du tutoriel pour comprendre le fonctionnement de la bibliothèque ElegantOTA et comment vous pouvez l’utiliser dans vos projets. Pour montrer comment procéder, nous allons télécharger des fichiers pour créer différents projets de serveur Web.

Programmation ESP32 OTA (Over-the-Air)

La mise à jour OTA (Over-the-Air) est le processus de chargement d’un nouveau micrologiciel sur la carte ESP32 à l’aide d’une connexion Wi-Fi plutôt que d’une communication série. Cette fonctionnalité est extrêmement utile en cas d’absence d’accès physique à la carte ESP32. Vous n’avez pas besoin d’une connexion entre votre ordinateur et le tableau pour télécharger un nouveau code.

Serveur Web Async ElegantOTA Comment ça marche ESP32

Il existe différentes manières d’effectuer des mises à jour OTA. Dans ce didacticiel, nous expliquerons comment procéder à l’aide de la bibliothèque ElegantOTA (version V3 — il s’agit du successeur de la bibliothèque obsolète AsyncElegantOTA). À notre avis, c’est l’un des moyens les meilleurs et les plus simples d’effectuer des mises à jour OTA.

La bibliothèque ElegantOTA crée un serveur Web auquel vous pouvez accéder sur votre réseau local pour télécharger de nouveaux micrologiciels ou fichiers sur le système de fichiers (SPIFFS ou LittleFS). Les fichiers que vous téléchargez doivent être au format .bin. Nous vous montrerons plus tard dans ce tutoriel comment convertir vos fichiers au format .bin.

Le seul inconvénient de la programmation OTA est que vous devez ajouter le code pour OTA dans chaque croquis que vous téléchargez afin de pouvoir utiliser OTA à l’avenir. Dans le cas de la bibliothèque ElegantOTA, elle ne comprend que trois lignes de code.

Bibliothèque éléganteOTA

Logo élégantOTA

Voici quelques fonctionnalités intéressantes de cette bibliothèque :

  • Il est compatible avec la bibliothèque WebServer.h intégrée et avec plusieurs forks de la bibliothèque ESPAsyncWebServer.
  • Il vous suffit d’ajouter trois lignes de code pour ajouter des fonctionnalités OTA à votre serveur Web « normal » ;
  • Il vous permet de mettre à jour non seulement le nouveau firmware de la carte, mais également les fichiers du système de fichiers ESP32 (LittleFS ou SPIFFS) ;
  • Il fournit une interface de serveur Web belle et moderne ;
  • Il est disponible en version professionnelle payante qui ajoute plus de fonctionnalités.

Mises à jour OTA avec la bibliothèque ElegantOTA – Résumé rapide

Pour ajouter des fonctionnalités OTA à vos projets à l’aide de la bibliothèque ElegantOTA, suivez ces étapes :

1) Installez les bibliothèques ElegantOTA, AsyncTCP et ESPAsyncWebServer ;

2) Incluez la bibliothèque ElegantOTA en haut du croquis Arduino :

#include ;

3) Ajoutez la ligne suivante dans la configuration avant server.begin();

ElegantOTA.begin(&server);

4) Dans la boucle(), ajoutez la ligne suivante :

ElegantOTA.loop();

5) Ouvrez votre navigateur et accédez à http:///update, où se trouve votre adresse IP ESP32 pour accéder à la page du serveur Web pour les mises à jour OTA.

Continuez à lire le didacticiel pour connaître les étapes plus détaillées.

Comment fonctionne le programme de mise à jour Web OTA ?

Le premier croquis doit être téléchargé à l’aide d’une connexion série. Ce croquis doit inclure le code permettant de configurer OTA Web Updater, vous permettant de télécharger de nouveaux croquis via un navigateur Web.

L’OTA Web Updater crée un serveur Web sur lequel vous pouvez télécharger des croquis sans fil.

Si votre code n’inclut pas de routine OTA, vous ne pourrez pas utiliser le serveur Web pour télécharger de nouveaux croquis sans fil.

Après cela, assurez-vous que chaque croquis que vous téléchargez inclut des routines OTA afin de pouvoir continuer à mettre à jour la carte sans fil à l’avenir.

Installation de la bibliothèque ElegantOTA

Pour installer la bibliothèque ElegantOTA dans l’IDE Arduino, accédez à Sketch > Inclure la bibliothèque > Gérer les bibliothèques, recherchez ElegantOTA et installez la bibliothèque ElegantOTA d’Ayush Sharma.

Installation de l'IDE Arduino de la bibliothèque ElegantOTA

Activation du mode asynchrone

Pour que la bibliothèque ElegantOTA fonctionne en mode asynchrone (avec la bibliothèque ESPAsyncWebServer), vous devez suivre la procédure suivante.

1) Accédez au répertoire de vos bibliothèques Arduino.

2) Ouvrez le dossier ElegantOTA puis ouvrez le dossier src.

3) Localisez la macro ELEGANTOTA_USE_ASYNC_WEBSERVER dans le fichier ElegantOTA.h et définissez-la sur 1 comme suit :

define ELEGANTOTA_USE_ASYNC_WEBSERVER 1
la bibliothèque Elegantota active le mode asynchrone

4) Enregistrez les modifications dans le fichier ElegantOTA.h.

5) Vous pouvez désormais utiliser ElegantOTA en mode asynchrone pour vos mises à jour OTA et avec la bibliothèque ESPAsyncWebServer.

Installer les bibliothèques AsyncTCP et ESPAsyncWebServer

Pour tester les exemples de ce tutoriel, vous devez également installer les bibliothèques AsyncTCP et ESPAsyncWebServer.

Remarque : la bibliothèque ElegantOTA fonctionne avec différentes versions forkées des bibliothèques de serveur Web ESPAsyncWebServer et AsyncTCP, vous n’avez donc pas nécessairement besoin d’utiliser les mêmes que celles que nous utilisons.

Suivez les instructions suivantes pour installer ces bibliothèques.

Cliquez sur les liens ci-dessous pour télécharger les dossiers .zip des bibliothèques.

Ces bibliothèques ne peuvent pas être installées via Arduino Library Manager, vous devez donc copier les fichiers .zip de la bibliothèque dans le dossier des bibliothèques d’installation Arduino. Alternativement, dans votre IDE Arduino, vous pouvez accéder à Sketch > Inclure une bibliothèque > Ajouter une bibliothèque .zip et sélectionner les bibliothèques que vous venez de télécharger.

Exemple de base ElegantOTA ESP32

Commençons par un exemple basique (basé sur l’un des exemples de la bibliothèque). Le code suivant crée un simple serveur Web avec l’ESP32. L’URL root affiche du texte et l’URL /update affiche l’interface permettant de mettre à jour le micrologiciel et le système de fichiers.

Copiez le code suivant sur votre IDE Arduino.

/*********
  Rui Santos & Sara Santos - Raspberryme.com
  Complete project details at https://Raspberryme.com/esp32-ota-elegantota-arduino/
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Softwar
*********/

#include 
#include 
#include 
#include 
#include 

const char* ssid = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";

AsyncWebServer server(80);

void setup(void) {
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.println("");

  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request) {
    request->send(200, "text/plain", "Hi! I am ESP32.");
  });

  server.begin();
  Serial.println("HTTP server started");

  ElegantOTA.begin(&server);    // Start ElegantOTA
}

void loop(void) {
  ElegantOTA.loop();
}

Afficher le code brut

Insérez vos informations d’identification réseau et le code devrait fonctionner immédiatement.

const char* ssid = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";

Comment fonctionne le code ?

Commencez par inclure les bibliothèques requises.

#include 
#include 
#include 
#include 
#include 

Insérez vos informations d’identification réseau dans les variables suivantes afin que l’ESP32 puisse se connecter au Wi-Fi sur votre réseau local.

const char* ssid = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";

Créez un objet AsyncWebServer sur le port 80 :

AsyncWebServer server(80);

Dans setup(), initialisez le Serial Monitor :

Serial.begin(115200);

Initialiser le Wi-Fi :

WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.println("");

// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
  delay(500);
  Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());

Ensuite, gérez les demandes des clients. Les lignes suivantes, envoyez du texte Salut ! Je suis ESP32. lorsque vous accédez à l’URL root (/) :

server.on("/", HTTP_GET, [](AsyncWebServerRequest *request) {
  request->send(200, "text/plain", "Hi! I am ESP32.");
});

Si votre serveur Web doit traiter davantage de requêtes, vous pouvez les ajouter (nous vous le montrerons dans l’exemple suivant).

Initialisez le serveur :

server.begin();

Ensuite, ajoutez la ligne suivante pour démarrer ElegantOTA :

ElegantOTA.begin(&server);    // Start ElegantOTA

Dans la boucle(), ajoutez la ligne suivante :

ElegantOTA.loop();

Accéder au serveur Web

Après avoir téléchargé le code sur la carte, ouvrez le moniteur série à un débit en bauds de 115 200. Appuyez sur le bouton RST intégré de l’ESP32. Il devrait afficher l’adresse IP de l’ESP comme suit (la vôtre peut être différente) :

Serveur Web ESP32 ElegantOTA Obtention de l'adresse IP du moniteur série

Sur votre réseau local, ouvrez votre navigateur et saisissez l’adresse IP ESP32. Vous devriez accéder à la page Web root (/) avec du texte affiché.

OTA de base du serveur Web ESP32

Désormais, si vous souhaitez modifier le code de votre serveur web via OTA, rendez-vous sur l’adresse IP ESP suivie de /update. La page Web suivante devrait se charger.

Page du serveur Web ElegantOTA ESP32

Pour télécharger du nouveau code sur votre carte ou des fichiers sur le système de fichiers, vous devez les télécharger au format .bin. Suivez la section suivante pour savoir comment générer un fichier .bin à partir de votre croquis dans l’IDE Arduino.

Téléchargez un nouveau code sur l’ESP32 via OTA

Chaque fichier que vous téléchargez via OTA doit être au format .bin. Vous pouvez générer un fichier .bin à partir de votre croquis à l’aide de l’IDE Arduino.

Une fois votre esquisse ouverte, il vous suffit de sélectionner la carte ESP32 que vous utilisez dans Outils > Carte, puis d’aller dans Esquisse > Exporter le binaire compilé. Un fichier .bin sera généré à partir de votre croquis.

Fichier bin d'exportation Arduino IDE

Le fichier généré sera enregistré sous votre dossier de projet dans une série d’autres dossiers. Le fichier avec l’extension .ino.bin est celui que vous devez télécharger sur votre tableau à l’aide de la page Web ElegantOTA.

Télécharger une nouvelle esquisse de serveur Web via OTA – Exemple

Imaginez qu’après avoir téléchargé le croquis précédent, vous souhaitiez en télécharger un nouveau qui vous permet de contrôler une LED via une interface Web comme ce projet. Voici les étapes à suivre :

1. Copiez le code suivant sur votre IDE Arduino. N’oubliez pas d’insérer vos informations d’identification réseau.

/*********
  Rui Santos & Sara Santos - Raspberryme.com
  Complete project details at https://Raspberryme.com/esp32-ota-elegantota-arduino/
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Softwar
*********/

// Import required libraries
#include 
#include 
#include 
#include 
#include 

// Replace with your network credentials
const char* ssid = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";

bool ledState = 0;
const int ledPin = 2;

// Create AsyncWebServer object on port 80
AsyncWebServer server(80);
AsyncWebSocket ws("/ws");

const char index_html[] PROGMEM = R"rawliteral(


  ESP Web Server
  
  
  
ESP Web Server




  
  
    
      

Output - GPIO 2

state: %STATE%

Toggle

)rawliteral"; void notifyClients() { ws.textAll(String(ledState)); } void handleWebSocketMessage(void *arg, uint8_t *data, size_t len) { AwsFrameInfo *info = (AwsFrameInfo*)arg; if (info->final && info->index == 0 && info->len == len && info->opcode == WS_TEXT) { data[len] = 0; if (strcmp((char*)data, "toggle") == 0) { ledState = !ledState; notifyClients(); } } } void onEvent(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventType type, void *arg, uint8_t *data, size_t len) { switch (type) { case WS_EVT_CONNECT: Serial.printf("WebSocket client #%u connected from %s\n", client->id(), client->remoteIP().toString().c_str()); break; case WS_EVT_DISCONNECT: Serial.printf("WebSocket client #%u disconnected\n", client->id()); break; case WS_EVT_DATA: handleWebSocketMessage(arg, data, len); break; case WS_EVT_PONG: case WS_EVT_ERROR: break; } } void initWebSocket() { ws.onEvent(onEvent); server.addHandler(&ws); } String processor(const String& var){ Serial.println(var); if(var == "STATE"){ if (ledState){ return "ON"; } else{ return "OFF"; } } return String(); } void setup(){ // Serial port for debugging purposes Serial.begin(115200); pinMode(ledPin, OUTPUT); digitalWrite(ledPin, LOW); // Connect to Wi-Fi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi.."); } // Print ESP Local IP Address Serial.println(WiFi.localIP()); initWebSocket(); // Route for root / web page server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){ request->send_P(200, "text/html", index_html, processor); }); // Start server server.begin(); ElegantOTA.begin(&server); // Start ElegantOTA } void loop() { ws.cleanupClients(); digitalWrite(ledPin, ledState); ElegantOTA.loop(); }

Afficher le code brut

Il s’agit du même code que celui utilisé dans ce projet, mais il contient les lignes de code nécessaires pour gérer ElegantOTA :

#include 
ElegantOTA.begin(&server);
ElegantOTA.loop();

2. Enregistrez votre croquis : Fichier > Enregistrer et donnez-lui un nom. Par exemple : Web_Server_LED_OTA_ESP32.

3. Générez un fichier .bin à partir de votre esquisse. Tout d’abord, sélectionnez le modèle de carte que vous utilisez dans Outils > Carte. Ensuite, allez dans Sketch > Exporter le binaire compilé.

Arduino IDE, fichier bin d'exportation

Accédez à votre dossier de croquis. Vous devriez avoir un dossier de construction. Dans ce dossier, vous aurez un autre dossier lié à votre modèle de carte. Ouvrez ce dossier. Il y aura plusieurs fichiers. Vous devez télécharger le fichier avec l’extension ino.bin.

fichier bin pour les mises à jour ESP32 OTA

4. Maintenant, vous devez télécharger ce fichier à l’aide de la page ElegantOTA. Accédez à votre adresse IP ESP suivie de /update. Assurez-vous que l’option du micrologiciel est sélectionnée. Cliquez sur Choisir un fichier et sélectionnez le fichier .ino.bin que vous venez de générer.

ESP32 ElegantOTA Téléchargement du nouveau firmware

5. Après quelques secondes, vous devriez recevoir un message de réussite. Ensuite, cliquez sur le bouton Retour.

ESP32 ElegantOTA Téléchargement du nouveau micrologiciel réussi

6. Vous pouvez maintenant accéder à l’URL root (/) pour accéder au nouveau serveur Web. C’est la page que vous devriez voir lorsque vous accédez à l’adresse IP ESP sur l’URL root (/).

Serveur Websocket ESP32 - sorties de contrôle

Vous pouvez cliquer sur le bouton pour allumer et éteindre la LED intégrée de l’ESP32.

  LED embarquée ESP32 allumée et éteinte

Comme nous avons également ajouté des fonctionnalités OTA à ce nouveau serveur Web, nous pourrons télécharger une nouvelle esquisse ultérieurement si nécessaire. Il vous suffit de vous rendre sur l’adresse IP ESP32 suivie de /update.

Félicitations, vous avez téléchargé un nouveau code sur votre ESP32 via Wi-Fi à l’aide d’ElegantOTA.

Continuez à lire si vous souhaitez savoir comment télécharger des fichiers sur le système de fichiers ESP32 (LittleFS) à l’aide de la bibliothèque ElegantOTA.

Télécharger des fichiers sur le système de fichiers via OTA vers l’ESP32

Dans cette section, vous apprendrez à télécharger des fichiers sur le système de fichiers ESP32 (LittleFS) à l’aide de la bibliothèque ElegantOTA.

Plugin de téléchargement du système de fichiers ESP32

Avant de continuer, vous devez avoir installé le plug-in ESP32 Filesystem Uploader dans votre IDE Arduino. Suivez le didacticiel suivant avant de continuer :

Serveur Web avec des fichiers de LittleFS

Imaginez le scénario dans lequel vous devez télécharger des fichiers sur le système de fichiers ESP32, par exemple : des fichiers de configuration ; Fichiers HTML, CSS et JavaScript pour mettre à jour la page du serveur Web ; ou tout autre fichier que vous souhaiterez peut-être enregistrer dans le système de fichiers LittleFS via OTA.

Pour vous montrer comment procéder, nous allons créer un nouveau serveur Web qui sert les fichiers de LittleFS : fichiers HTML et CSS pour créer une page Web qui contrôle à distance la LED intégrée de l’ESP32 à l’aide d’une interface différente.

Copiez le code suivant sur votre IDE Arduino.

/*********
  Rui Santos & Sara Santos - Raspberryme.com
  Complete project details at https://Raspberryme.com/esp32-ota-elegantota-arduino/
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Softwar
*********/

#include 
#include 
#include 
#include 
#include "LittleFS.h"
#include 

// Replace with your network credentials
const char* ssid = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";

// Create AsyncWebServer object on port 80
AsyncWebServer server(80);

// Set LED GPIO
const int ledPin = 2;

// Stores LED state
String ledState;

// Initialize LittleFS
void initLittleFS() {
  if (!LittleFS.begin(true)) {
    Serial.println("An error has occurred while mounting LittleFS");
  }
  else {
    Serial.println("LittleFS mounted successfully");
  }
}

// Initialize WiFi
void initWiFi() {
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.print("Connecting to WiFi ..");
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print('.');
    delay(1000);
  }
  Serial.println(WiFi.localIP());
}

// Replaces placeholder with LED state value
String processor(const String& var) {
  if(var == "STATE") {
    if(digitalRead(ledPin)) {
      ledState = "ON";
    }
    else {
      ledState = "OFF";
    }
    return ledState;
  }
  return String();
}

void setup() {
  Serial.begin(115200);
  initWiFi();
  initLittleFS();

  // Set GPIO2 as an OUTPUT
  pinMode(2, OUTPUT);

  // Route for root / web page
  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request) {
    request->send(LittleFS, "/index.html", "text/html", false, processor);
  });

  server.serveStatic("/", LittleFS, "/");

  // Route to set GPIO state to HIGH
  server.on("/on", HTTP_GET, [](AsyncWebServerRequest *request) {
    digitalWrite(ledPin, HIGH);
    request->send(LittleFS, "/index.html", "text/html", false, processor);
  });

  // Route to set GPIO state to LOW
  server.on("/off", HTTP_GET, [](AsyncWebServerRequest *request) {
    digitalWrite(ledPin, LOW);
    request->send(LittleFS, "/index.html", "text/html", false, processor);
  });

  // Start server
  server.begin();

  ElegantOTA.begin(&server);    // Start ElegantOTA

}

void loop() {
  ElegantOTA.loop();
}

Afficher le code brut

Remarque : cet exemple est couvert et expliqué dans notre eBook : Créer des serveurs Web avec l’ESP32 et l’ESP8266.

Insérez vos informations d’identification réseau dans les variables suivantes et enregistrez le code.

const char* ssid = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";

Mettre à jour le micrologiciel

Créez un fichier .ino.bin à partir de cette esquisse comme indiqué précédemment (cette esquisse comprend également les lignes de code nécessaires pour fournir des fonctionnalités OTA).

Arduino IDE, fichier bin d'exportation

Accédez à l’adresse IP de l’ESP32 suivie de /update et téléchargez le nouveau firmware.

Ensuite, nous verrons comment télécharger les fichiers.

Mettre à jour le système de fichiers

Sous le dossier du projet, créez un dossier appelé data et déplacez les fichiers HTML et CSS suivants (cliquez sur les liens pour télécharger les fichiers) :

Pour trouver votre dossier de projet, vous pouvez simplement accéder à Sketch > Show Sketch Folder.

Voici la structure des dossiers de votre projet et l’endroit où le dossier de données doit se trouver :

Serveur Web ESP32 avec fichiers du système de fichiers et structure de dossiers OTA
  • Web_Server_OTA_ESP32_Example_2
    • données
    • Web_Server_OTA_ESP32_Example_2.ino
    • construire
      • esp32.es32.esp32doit-devkit-v1 (ou similaire selon la carte sélectionnée)
        • Web_Server_OTA_ESP32_Example_2.ino.bin

Après cela, avec l’ESP32 déconnecté de votre ordinateur (c’est tout le but de l’OTA), imaginons que nous allons télécharger les fichiers sur le système de fichiers. Presse [Ctrl] + [Shift] + [P] pour ouvrir la palette de commandes. Une instruction appelée « Télécharger Little FS vers Pico/ESP8266/ESP32 » devrait être là (faites simplement défiler vers le bas ou recherchez le nom de l’instruction).

Si vous n’avez pas cette option, cela signifie que le plug-in Filesystem Uploader n’est pas installé dans votre IDE Arduino. Suivez le tutoriel suivant pour l’installer : Arduino IDE 2 : Installer ESP32 LittleFS Uploader (télécharger des fichiers sur le système de fichiers).

Téléchargez Little FS sur l'IDE Arduino Pico/ESP8266/ESP32

Vous obtiendrez une erreur car aucune carte ESP32 n’est connectée à votre ordinateur – ne vous inquiétez pas. Il créera toujours un fichier .bin à partir du dossier de données.

L'IDE Arduino crée un fichier bin à partir de l'image du système de fichiers

Dans la fenêtre de débogage, vous verrez l’emplacement du fichier .littlefs.bin. C’est ce fichier que vous devez télécharger (dans notre cas, le fichier s’appelle tmp-29172-heLR8chx1V9e-.littlefs.bin.

Dans notre cas, voici le chemin où se trouve ce fichier :

C:\Users\sarin\AppData\Local\Temp\tmp-29172-heLR8chx1V9e-.littlefs.bin.

Trouvez ce fichier sur votre ordinateur.

Fichier LittleFS .bin à télécharger via OTA

Pour faciliter les choses, vous pouvez copier ce fichier dans votre dossier de projet.

Maintenant que nous avons un fichier .litlefs.bin du dossier de données, nous pouvons télécharger ce fichier. Accédez à votre adresse IP ESP32 suivie de /update. Assurez-vous que l’option Système de fichiers est sélectionnée dans l’option Mode OTA.

ElegantOTA télécharger l'image du système de fichiers LittleFS

Ensuite, sélectionnez le fichier avec l’extension .littlefs.bin.

Une fois le téléchargement réussi, cliquez sur le bouton Retour. Et accédez à nouveau à l’URL root (/). Vous devriez avoir accès à la page Web suivante qui contrôle la LED intégrée de l’ESP32 avec deux boutons.

LED de contrôle du serveur Web ESP32 avec deux boutons avec capacités OTA

Si vous avez besoin de mettre à jour quelque chose sur votre projet, il vous suffit d’accéder à votre adresse IP ESP32 suivie de /update.

Félicitations! Vous avez téléchargé avec succès des fichiers sur le système de fichiers ESP32 à l’aide de la bibliothèque ElegantOTA.

Conclusion

Dans ce didacticiel, vous avez appris comment ajouter des fonctionnalités OTA à vos projets de serveur Web Async à l’aide de la bibliothèque ElegantOTA. Cette bibliothèque est simple à utiliser : il vous suffit d’ajouter trois lignes de code à votre projet.

De plus, cette bibliothèque vous permet également de télécharger sans effort de nouveaux micrologiciels ou fichiers sur le système de fichiers LittleFS à l’aide d’une page Web.

Nous espérons que vous avez trouvé ce tutoriel utile.

Apprenez-en plus sur l’ESP32 avec nos ressources :

Merci d’avoir lu.

Cette vidéo vous emmène dans l’histoire de Raspberry Pi :

YouTube video

  • ELEGOO 3PCS Carte de Développement ESP32 Type-C, 2,4 GHz WiFi + Bluetooth Dual Core Carte de Contrôle pour Arduino, Support MicroPython, NodeMCU, AP/STA/AP+STA, Puce CP2102
  • ELEGOO Carte Starter Kit de Démarrage ESP-32 avec Tutoriel et Carte de Développement Microcontrôleur Double Cœur USB-C Prise en Charge AP/STA/AP+STA, Compatible avec Arduino IDE