Lire les données stockées avec LittleFS avec JavaScript sur un webserver esp8266

Bonjour, tout d'abord je vous remercie de lire mon message.

Je suis en train de créer un bon projet où je souhaite créer un thermomètre connecté via un serveur web en utilisant un NodeMCU. J'ai déjà réalisé la prise et l'enregistrement des données dans des fichiers .csv avec LittleFS. Je cherche maintenant à les afficher sur ma page web côté client avec HTML5 et JavaScript.

Mon problème est que normalement, il faudrait utiliser la librairie readfile de Node.js, mais on ne peut pas utiliser node.js avec l'esp8266...

J'ai cherché d'autres solutions mais je n'ai rien trouvé de convainquant.

Je pense que la meilleure solution serait de faire envoyer une requête au server qui enverrai les données mais je ne connais pas bien le protocole HTTP.

Merci pour vos réponses,
Occalepsus

Salut,

le serveur HTTP marche bien, et bonne nouvelle tu trouveras plein de doc et exemples dessus.

Merci pour ta réponse, mais je n'ai pas compris ce dont tu parles, peux-tu préciser ?

Sauf erreur de ma part, tu es parti sur la solution d'un serveur web coté ESP8266. C'est une solution éprouvée qui marche. Exemple (premier lien après recherche arduino serveur web esp8266). Maintenant je n'ai peut-être pas compris ton besoin ?

Ah ok, en fait j'ai déjà une bonne base pour le server, j'arrive à me connecter à l'esp et à afficher des pages HTML avec CSS et JavaScript. Maintenant, je cherche à lire les fichiers que j'ai stocké dans la mémoire de l'esp en .csv, et à en parser les données via un script javascript pour afficher la dernière température prise sur la page HTML.

Ah ok ;-).

Comme je le vois à cette heure tardive, je passerai par la génération dynamique d'une page html contenant les données (ainsi que tout le reste : style, html, javascipt) sur l'esp que je renverrai au client (après rien n'empêche de séparer en plusieurs fichiers).

Je ne pratique pas trop le javascript mais tu devrais trouver de quoi décoder une chaine à la "CSV" (contenu de ton fichier intégré à ta page sous la forme d'une variable javascript).

L'idée (il y a peut-être plus simple) serai donc d'intégrer tes données CSV à ta page sous la forme d'une variable JS.

En fait, je voulais utiliser la méthode fetch en JavaScript, mais comme je débug en local pour éviter de réimporter à chaque fois les données, mais c'est un bug connu, fetch ne fonctionne pas en local.
En tout cas merci pour la réponse !
Bonne continuation :upside_down_face:

Cette méthode imposera d'envoyer les données CSV (une ligne je suppose ?) au client, avec le code JS pour parser les données.
Il serait probablement plus simple et moins coûteux en temps de transmission de parser les donnés côté ESP8266 (en C) et d'envoyer uniquement la donnée à afficher dans la page HTML.

Merci pour ta réponse, je prends en note car l'idée est vraiment bien, mais mes faibles connaissances en HTTP sur arduino me bloquent dans mes recherches Google.
De toute façon, je me suis arrangé pour faire un fichier par jour, c'est à dire que le client n'a pas à charger plus de 75ko par jour.
Mais après avoir suivi les cours de web management au cours de cette année, je me repencherai sans doute sur la question.

Il n'y a pas à se soucier de HTTP, qui est géré par la librairie WebServer.
Mais il y a mieux : la librairie ESPAsyncWebServer

75Ko à comparer avec quelques octets si la donnée est extraite côté ESP.