Ecriture sur carte SD

Selon les conseils de Skywodd j'ai modifié le code.
Par contre malgré tout je rencontre tjrs le même problème lorsque je retire le cable réseau, le fichier s'enregistre bien sur la carte SD, par contre lorsque je le remets et bien le ou les fichiers ne sont pas renvoyés.
J'essaie pourtant ce que m'avait conseillé Barbudor à savoir mettre des SD.begin mais rien n'y fait ....

J'ai inséré le code en pièce jointe

Ton code un est peu "spaghetti" sur les bords

Déjà je vois des choses pas génial :

  • trop de commentaire à des endroits tels que setup() ou loop() mais pas dans le code en lui même
  • trop de variable globales, tu monopolises de la mémoire RAM pour des variables qui pourraient être locales (ou à défaut static dans une fonction)
  • il reste des cast en FlashStringHelper de PSTR, utilise F("...") partout ça sera plus lisible
  • déclare last_write_data en static dans loop initialisé à 0
  • tu println() le nom du fichier dans un fichier qui n'est jamais ouvert
  • de même tu envois à de multiple endroits des messages de debug dans le fichier (ce qui posera problème lors de la réouverture)
  • tu as une fonction d'envoi des données en http, alors pourquoi avoir deux fois le code dans lectureSD() et sendData()
    --> fait une seul fonction prenant en arguments : (annees, mois, jours, heures, minutes, secondes, nbImpulsions) et reprend le code que je t'avais donné
    (cette fonction devra retourner un boolean, true -> envoi réussi : pour ensuite déclencher une lecture des fichiers sur la sd, false -> echec : pour ensuite déclencher une écriture sur la sd)
  • tu as aussi pas mal de fonction "utilitaires" copier / coller depuis je ne sait ou, sont elles bien utiles ?
  • tu devrais aussi revoir le nom de tes fonctions / variables, ex: last_write_data -> temps donc plutôt last_write_time

Ps: attache ton code complet en pièce jointe dans ton post, lire 3 morceaux de code séparé est un vrai casse tête

code.txt (13.1 KB)