Télécharger un fichier en mode OTA

Bonsoir à toutes et à tous,

En me basant sur l'exemple "BasicOTA.ino", et en l'implantant dans mon application de routeur, j'ai réussi à faire de l'OTA sur mon ESP32 : je peux mettre à jour mon sketch.ino :slightly_smiling_face:.

Dans l'exemple "BasicOTA.ino", il y a ces lignes :

      if (ArduinoOTA.getCommand() == U_FLASH) {
        type = "sketch";
      } else {  // U_SPIFFS
        type = "filesystem";
      }

qui montre que l'on peut faire de l'OTA soit avec le sketch, soit avec un fichier.

Mais je n'ai pas vu où et comment faire cette sélection. Des idées ?

Cordialement.

Pierre

je crois que c'est l'IDE qui envoie le code U_FLASH ou U_SPIFFS quand vous choisissez le port réseau comme port de destination en fonction de ce qu'il faut uploader

C'est là le problème, si je clique sur téléverser, c'est le sketch qui est uploaded, mais je clique où pour que ce soit un fichier ?

Cordialement.

Pierre.

Je ne sais pas, je n'ai jamais utilisé cela sur ESP8286 (ils sont au fond d'un tiroir, les ESP32 c'est bcp mieux). Sur ESP32 j'ai utilisé ElegantOTA

Je n'ai jamais parlé de ESP8286 que je sache !

Faudra que j'essaie le Crtl+Shift+P demain pour voir.

Cordialement.

Pierre.

Vous avez dit

Ce sketch commence par

Donc j’ai pensé esp8286

Voilà le sketch BasicOTA.ino qui se trouve sur mon PC en allant chercher dans Fichier/exemples/ArduinoOTA/BasicOTA de l'IDE Arduino. On y trouve aucune trace de ESP8286 :

#include <WiFi.h>
#include <ESPmDNS.h>
#include <NetworkUdp.h>
#include <ArduinoOTA.h>

const char *ssid = "..........";
const char *password = "..........";

void setup() {
  Serial.begin(115200);
  Serial.println("Booting");
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.waitForConnectResult() != WL_CONNECTED) {
    Serial.println("Connection Failed! Rebooting...");
    delay(5000);
    ESP.restart();
  }

  // Port defaults to 3232
  // ArduinoOTA.setPort(3232);

  // Hostname defaults to esp3232-[MAC]
  // ArduinoOTA.setHostname("myesp32");

  // No authentication by default
  // ArduinoOTA.setPassword("admin");

  // Password can be set with it's md5 value as well
  // MD5(admin) = 21232f297a57a5a743894a0e4a801fc3
  // ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3");

  ArduinoOTA
    .onStart([]() {
      String type;
      if (ArduinoOTA.getCommand() == U_FLASH) {
        type = "sketch";
      } else {  // U_SPIFFS
        type = "filesystem";
      }

      // NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end()
      Serial.println("Start updating " + type);
    })
    .onEnd([]() {
      Serial.println("\nEnd");
    })
    .onProgress([](unsigned int progress, unsigned int total) {
      Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
    })
    .onError([](ota_error_t error) {
      Serial.printf("Error[%u]: ", error);
      if (error == OTA_AUTH_ERROR) {
        Serial.println("Auth Failed");
      } else if (error == OTA_BEGIN_ERROR) {
        Serial.println("Begin Failed");
      } else if (error == OTA_CONNECT_ERROR) {
        Serial.println("Connect Failed");
      } else if (error == OTA_RECEIVE_ERROR) {
        Serial.println("Receive Failed");
      } else if (error == OTA_END_ERROR) {
        Serial.println("End Failed");
      }
    });

  ArduinoOTA.begin();

  Serial.println("Ready");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  ArduinoOTA.handle();
}

NOTA : l'utilisation du chargement de fichier vers l'ESP32 via Ctrl+Shift+P ne donne rien en mode WiFi.

Cordialement.

Pierre.

OK il s'agit alors d'une autre bibliothèque

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.