Go Down

Topic: Développement d'un SDK sous arduino (Read 1 time) previous topic - next topic

Rihame

Bonjour,

Je travail sur un projet qui consiste  à développer un SDK sous arduino qui permet de récupérer un fichier (.hex)  à partir d'un serveur puis l'executer ,le serveur est connécté à arduino à travairs wifi.
Le but est de faire une mis à jour automatique càd qu'à chaque fois que je met le fichier (.hex) dans le serveur l'arduino doit le reconnaitre et l'éxécuter.

Je travail avec un NodeMCUwifi.

Pourriez vous m'aider à me diriger  comment developper cet SDK?
 
Merci à vous.
   

Rihame

Merci pour votre réponse.

Conçernant le modèle d'arduino je travail avec un nodeMCU pour faire la connexion wifi avec le  serveur.

 pour la première solution si  j'ai bien compris je dois changer le programme du bootloader pour qu'il puisse à chaque REST chercher s'il ya un nouveau éxécutable pour l'écrire en flash,mais ma première question c'est comment récupérer automatiquement le fichier hex que j'ai stocké dans le serveur.

kamill

#2
Apr 26, 2017, 05:49 pm Last Edit: Apr 26, 2017, 05:49 pm by kamill
Bonjour,

Regardes ici: OTA update

Rihame

Donc vous voulez dire que la récupération du fichier hex pourra se faire à l'aide d'un protocole.
Est ce que je peux utiliser le protocole FTP vu que je veut récupérer un fichier ?

Rihame

je vous remecie encore, apparement on c'est mis d'accord sur la partie récupération,pour la partie éxécution du fichier hex j'ai pas bien compris les deux dernières propositions:

 (-soit par une modification du firmware du système de communication intégré, s'il peut être mis à contribution,
- soit par le rajout d'un système intelligent chargé de programmer l'Arduino via son bootloader ou l'ICSP. )

merci.

Artouste

Bonjour,

Regardes ici: OTA update
Bonsoir
OTA est "assez simple à mettre en oeuvre
Juste pour info tu pointe sur une version 2.0.0
il y a eu qq "changements"
AMHA il est préférable de regarder du coté de la 2.3.0


Rihame

Bonsoir,
 J'ai travaillé avec OTA pour mettre à jour mon firmware sur NodeMcu,et j'ai pu récupérer le fichier et l'exécuter sur ma carte le problème est que je dois toujours faire un reboot manuel pour exécuter le nouveau scketch,Je me demande  s'il y a une méthode pour faire un reboot automatique après la récupération du nouveau fichier.
Merci d'avance.

voici mon code:
Code: [Select]


#include <Arduino.h>

#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>

#include <ESP8266HTTPClient.h>
#include <ESP8266httpUpdate.h>

#define USE_SERIAL Serial

ESP8266WiFiMulti WiFiMulti;

void setup() {
 

    USE_SERIAL.begin(9600);
    // USE_SERIAL.setDebugOutput(true);

   /* USE_SERIAL.println();
    USE_SERIAL.println();
    USE_SERIAL.println();
    //chr url="";*/

 for(uint8_t t = 4; t > 0; t--) {
        USE_SERIAL.printf("[SETUP] WAIT %d...\n", t);
        USE_SERIAL.flush();
        delay(1000);
    }

    WiFiMulti.addAP("SSID","PASSWORD");

}

void loop() {
    // wait for WiFi connection
    if((WiFiMulti.run() == WL_CONNECTED)) {

        t_httpUpdate_return ret = ESPhttpUpdate.update("https://server/file.bin");
       
       

        switch(ret) {
            case HTTP_UPDATE_FAILED:
                USE_SERIAL.println("HTTP_UPDATE_FAILD");
                break;

            case HTTP_UPDATE_NO_UPDATES:
                USE_SERIAL.println("HTTP_UPDATE_NO_UPDATES");
                break;

            case HTTP_UPDATE_OK:
                USE_SERIAL.println("HTTP_UPDATE_OK");
                break;
        }
    }
}
 

Go Up