Parlons Arduino > Modélisation, Architectures logicielles et matérielles

IDE Arduino une alternative plus riche sans être complexe

(1/6) > >>

fcot2002:
Bonjour @ tous !

On voit ici beaucoup de beaux développements, qu'en est-il de vos outils ?

J'ai découvert "PlateformIO", complet, simple, etc. Sans compter la chaîne YT de Tommy qui est une mine d'or et francophone qui plus est.



Au plaisir

bobyAndCo:
PlateformIO est effectivement un environnement de développement intéressant. Dire qu’il est simple, je ne suis pas certain. Beaucoup plus complet, oui avec en particulier des possibilités de debug en mode trace.

Un vrai plus aussi pour moi, la possibilité d’associer les bibliothèques au projet, (ce qui est facultatif toute fois) par exemple pour des bibliothèques qui portent le même nom mais s’adressent à des cartes différents (ESP ou Arduino par exemple).

Il faut aussi bien régler le compilateur car parfois, de simples warnings empêchent la compilation.

Mais je n’ai toujours pas trouvé comment téléverser un sketch en mode OTA. Si quelqu’un peut me dire ça me rendrait un grand service.

fcot2002:
Salut Christophe,

Apparemment et sauf erreur de ma part il compile dans l'IDE Arduino si j'en crois la vidéo.

Qu'entends-tu par OTA ?

Bon week-end

bobyAndCo:
L’OTA (over the air) permet le téléversement du sketch par le WiFi. Plus de câble donc entre l'ordinateur et la carte, qui doit toute fois permettre le WiFi bien sûr ! Interessant si la carte est difficile d'accès comme dans le cas de mon pont tournant.

ethal:
Bonjour,

je suis sur mac, j' utilise VSCODE avec l'extension PlatformIO,

pour le chargement en OTA sur un esp32:


--- Code: ---#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:
}

--- Fin du code ---

et surtout dans le fichier platformio.ini du projet mettre ces deux lignes:


--- Code: ---upload_protocol = espota
upload_port = "Adresse IP du ESP32 ou son Hostname définie plus haut"

--- Fin du code ---


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,



Navigation

[0] Index des messages

[#] Page suivante

Utiliser la version classique