Bonjour à toutes et à tous,
En préambule, vous avez dû constater au travers d'autres posts que je suis ce qu'on appellera un "beginner" pour ce qui est de l'utilisation du WiFi et autres fonctions WEB.
A terme, mon idée est de réaliser un routeur photovoltaïque.
Dans cet appareil, une des fonctions consiste à envoyer des fichiers de données (que j'enregistre au fur et à mesure qu'elles arrivent dans une carte SD) vers un smartphone ou un PC.
C'est cette fonction qui m'intéresse ici. Mon idée est de transférer ces fichiers *.txt ou *.csv (qui ne sont jamais que des fichiers texte.
j'ai trouvé ce petit exemple qui devrait me le permettre :
#include "WiFi.h"
#include "SPIFFS.h"
#include "ESPAsyncWebServer.h"
const char* ssid = "yourNetworkName";
const char* password = "yourNetworkPass";
AsyncWebServer server(80);
void setup(){
Serial.begin(115200);
if(!SPIFFS.begin()){
Serial.println("An Error has occurred while mounting SPIFFS");
return;
}
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi..");
}
Serial.println(WiFi.localIP());
server.on("/download", HTTP_GET, [](AsyncWebServerRequest *request){
request->send(SPIFFS, "/file.html", "text/html", true);
});
server.on("/interpret", HTTP_GET, [](AsyncWebServerRequest *request){
request->send(SPIFFS, "/file.html", "text/html", false);
});
server.begin();
}
void loop(){}
Cela appelle plusieurs questions :
1 - Cela ne compile pas avec les erreurs suivantes :
e:\Arduino\libraries\ESPAsyncWebServer\src\WebAuthentication.cpp: In function 'bool getMD5(uint8_t*, uint16_t, char*)':
e:\Arduino\libraries\ESPAsyncWebServer\src\WebAuthentication.cpp:74:3: error: 'mbedtls_md5_starts_ret' was not declared in this scope; did you mean 'mbedtls_md5_starts'?
74 | mbedtls_md5_starts_ret(&_ctx);
| ^~~~~~~~~~~~~~~~~~~~~~
| mbedtls_md5_starts
e:\Arduino\libraries\ESPAsyncWebServer\src\WebAuthentication.cpp:75:3: error: 'mbedtls_md5_update_ret' was not declared in this scope; did you mean 'mbedtls_md5_update'?
75 | mbedtls_md5_update_ret(&_ctx, data, len);
| ^~~~~~~~~~~~~~~~~~~~~~
| mbedtls_md5_update
e:\Arduino\libraries\ESPAsyncWebServer\src\WebAuthentication.cpp:76:3: error: 'mbedtls_md5_finish_ret' was not declared in this scope; did you mean 'mbedtls_md5_finish'?
76 | mbedtls_md5_finish_ret(&_ctx, _buf);
| ^~~~~~~~~~~~~~~~~~~~~~
| mbedtls_md5_finish
Plusieurs bibliothèque trouvées pour "AsyncTCP.h"
Utilisé: E:\Arduino\libraries\AsyncTCP
Non utilisé: E:\Arduino\libraries\Async_TCP
exit status 1
Compilation error: exit status 1
J'ai oublié des bibliothèques, autres ? Que faire ?
2 - De ce que je comprends de ce sketch, la mémoire SPIFFS est utilisée comme intermédiaire. Est-ce que c'est fait automatiquement par la fonction send(SPIFFS, "/file.html", "text/html", false); Que doivent valoir les deuxième et troisième paramètres de cette fonction si mon fichier s'appelle par exemple mesDonnées.csv ?
3 - Par ailleurs, sur la vie du routeur, j'aurai à transférer plusieurs milliers de fichiers différents. Est-ce que la mémoire SPIFFS est faite pour ce genre de chose ?
Donnez-moi simplement des pistes. J'essaierai de me débrouiller.
Cordialement.
Pierre.
