J'ai comme projet d'intégrer une page HTML sur une ESP32 sur un réseau Wi-Fi local émit par cette ESP32. De plus, je dois afficher des données variables sur la page HTML, des données correspondant à des relevés de température. Ces données sont stockées sur une carte SD reliée à l'ESP32 où cette dernière ira chercher les données (dans un fichier texte dans l'idéal). J'espère que jusqu'ici c'est clair.
J'ai donc écrit un code où la Wi-Fi est émise, le site HTML est créé et un fichier texte est créé dans la carte SD où j'écris simplement en attendant d'avoir la version finale avec les capteurs. Donc pour le moment, j'essaie d'afficher sur le site HTML les données écrites sur la carte SD.
Seulement, si je poste sur le forum c'est que j'ai rencontré un problème sur l'affichage des "valeurs" sur le site HTML. Par exemple, je veux afficher "Temps1" devant la température du logement 1 alors qu’aucun caractère n'est affiché. Seul un "0" est présent.
Vous trouverez mon code si joint.
J'aimerais donc trouver un peu d'aide pour avancer sur ce projet et pallier ce problème sur lequel je traîne depuis une semaine.
Évite de mettre ton SSID et ton pass en clair sur des forums...
char buffer[1]="";//code SD
Ceci définit un tableau d'un seul caractère.
int i = 0; //myFile1
while(myFile1.available()) //myFile1
{ //myFile1
buffer[i] = myFile1.read(); //myFile1
i++; //myFile1
} //myFile1
Ceci lit plusieurs caractères et les stocke dans le tableau à une seule case. D'où dépassement de capacité, et ... exécution potentiellement aléatoire.
Ici tu affiches le pointeur de ton fichier et pas la valeur de la température.
String currentLine = "";Je te conseille d'éviter l'utilisation des String qui peuvent causer des problèmes de mémoire (quoique sur ESP32, il y a de la marge). Utilise plutôt des cstring (tableaux de caractères).
D'abord tu écris le contenu du premier fichier dans ton buffer. Puis tu écris le contenu du second fichier dans le même buffer. Donc, déjà, tu perds le contenu du premier fichier.