Bonjour,
je suis sur mac, j' utilise VSCODE avec l'extension PlatformIO,
pour le chargement en OTA sur un esp32:
#include <Arduino.h>
#include <WiFiClientSecure.h>
#include <ESPmDNS.h>
#include <ArduinoOTA.h>
#define SSID "nom de mon reseau wifi"
#define PASS "password de mon reseau wifi"
#define HOSTNAME "nom sur le reseau de votre ESP32 , en général : truc.local"
void setup() {
WiFi.mode(WIFI_STA);
WiFi.begin(SSID, PASS);
WiFi.setHostname(HOSTNAME);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
ArduinoOTA.setHostname(WiFi.getHostname());
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();
}
void loop() {
ArduinoOTA.handle();
// put your main code here, to run repeatedly:
}
et surtout dans le fichier platformio.ini du projet mettre ces deux lignes:
upload_protocol = espota
upload_port = "Adresse IP du ESP32 ou son Hostname définie plus haut"
La première fois charger en USB sans mettre les deux ligne de code ci dessus:
ensuite mettre les deux lignes dans le fichier PlatformIO.ini comme décrit ci-dessus,
maintenant les téléchargements ce feront en mode OTA,