Go Down

Topic: Ecriture lecture dans un fichier TXT (Read 704 times) previous topic - next topic

Treza88

Bonjour a tous,

J'utilise un esp8266 et j'essaie d'écrire dans un fichiers texte des données avec la bibliothèque FS.h, par contre tous mes essais son vain.
Le code ne plante pas mais rien ne s'écrit dans le fichier qui est dans le répertoire data qui est dans le même répertoire que mon sketch.

Si quelqu'un peut me donner des infos pour y arriver?

voici  parmi d'autres essayé le code que j'utilise:

Code: [Select]
#include <ESP8266WiFi.h>
#include <FS.h>   //Include File System Headers
 
const char* filename = "/file.txt";
 
 
void setup() {
  delay(1000);
  Serial.begin(9600);
  Serial.println();
 
  //Initialize File System
  if(SPIFFS.begin())
  {
    Serial.println("SPIFFS Initialisierung....OK");
  }
  else
  {
    Serial.println("SPIFFS Initialisierung...Fehler!");
  }
 
  //Format File System
  if(SPIFFS.format())
  {
    Serial.println("Datei-System formatiert");
  }
  else
  {
    Serial.println("Datei-System formatiert Error");
  }
 
  //Erstellung einer neuen Datei und Beispielhaftes füllen der Datei
  //w=Öffnen mit Schreibzugtriff auf die Datei
  File f = SPIFFS.open(filename, "w");
 
  if (!f) {
    Serial.println("Oeffnen der Datei fehlgeschlagen");
  }
  else
  {
      //Write data to file
      Serial.println("Schreibe Daten in die Datei");
      f.print("Dies ist Beispielinhalt....");
      f.close();  //Schließen der Datei
  }
}
 
void loop() {
  int i;
 
  //Lesen des Dateiinhaltes
  File f = SPIFFS.open(filename, "r");
 
  if (!f) {
    Serial.println("Oeffnen der Datei fehlgeschlagen");
  }
  else
  {
      Serial.println("Lesen des Dateiinhaltes:");
      //Data from file
      for(i=0;i<f.size();i++) //Read upto complete file size
      {
        Serial.print((char)f.read());
      }
      f.close();  //Schließen der Datei
      Serial.println("");
      Serial.println("Datei geschlossen");
  }
  delay(5000);
}

J-M-L

#1
Nov 16, 2019, 07:46 pm Last Edit: Nov 16, 2019, 07:48 pm by J-M-L
Le code ne plante pas mais rien ne s'écrit dans le fichier qui est dans le répertoire data qui est dans le même répertoire que mon sketch.
Où est-ce que vous le cherchez ce fichier texte - sur le PC ?
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

lesept

Ton fichier n'est pas sur ton PC mais dans la mémoire de ton ESP8266. Ton code ouvre ou crée le fichier, dans la flash SPI de l'ESP8266 puis écrit dedans ceci
Quote
Dies ist Beispielinhalt....
Ensuite, il ferme le fichier, l'ouvre encore et affiche son contenu sur la console série de l'IDE. Si tu ne vois pas ce texte s'afficher, il y a en effet un problème.
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

Treza88

Ok merci a vous deux pour vos réponses, donc je m'aperçois que je suis idiot de croire que le fichier était enregistrer sur le PC.
donc si le fichier est enregistrer dans la mémoire du esp8266, comment y a ton accès et/ou comment peut on le rapatrier sur le pc?

Et pour répondre a lesept, non rien ne s'affiche dans la console série de l'IDE.

J-M-L

#4
Nov 17, 2019, 08:03 am Last Edit: Nov 17, 2019, 08:07 am by J-M-L
Si n'importe quel gadget chinois à 3€ Pouvait être branché sur USB et écrire où il veut sur votre PC ce serait un sacré trou de sécurité :)

Le moyen le plus simple puisque vous avez du wifi sur votre ESP c'est de prévoir dans votre code une requête HTTP qui va retourner le fichier, comme ça vous pouvez l'accéder à distance, pas besoin d'être attaché par USB

Il y a pas mal d'exemples en ligne, voici le premier qu'une recherche me donne ou une autre avec une video (en anglais)
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

lesept

Et pour répondre a lesept, non rien ne s'affiche dans la console série de l'IDE.
C'est pas normal, il devrait y avoir plein de commentaires, en allemand, affichés dans la console. Tu l'as bien réglée à 9600 bauds ?
Quel est ton module ESP8266 et quel type de carte as-tu choisi dans l'IDE ? As-tu vérifié que les paramètres associés comportent bien la taille du SPIFFS ?
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

Treza88

Merci J-M-L, je vais donc creuser dans le sens de tes exemples, et voir si je m'en sort.

Merci également lesept, mon module est un ESP8266 Lolin NodeMcu v3, le type de carte "NODEMCU 1.0 (ESP - 12E Module)" et les paramètre associés sont 4M (3M SPIFFS).
Par contre tu avais raison au niveau de la vitesse de transfert vers la console je n'étais pas en 9600 bauds, donc du coup ça fonctionne beaucoup mieux et j'ai bien un retour dans la console.

Sinon les paramètre précédents sont bien les plus adapté a la carte ESP8266 que j'ai?

J-M-L

vos param font que vous avez divisé les 4 mega octet de mémoire flash en 3 mega pour le stockage des fichiers et 1 Mega pour votre programme. si ça vous convient c'est tout bon

Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

Treza88

Merci pour ta précision sur le découpage de la mémoire, je comprends de ce fait mieux le fonctionnement.

Par contre ça me fait rebondir sur une autre question, je me suis procuré des module de mémoire supplémentaire 32M de ce type: "WEMOS-340G Wemos 32M flash NodeMCU V3 340G ESP8266 Compatible".

Voici une photo:


Aurais tu des info pour son utilisation (Câblage programmation...).
Apres je te pose la question, mais il vaudrait peut être mieux créer un nouveau post?

al1fch

#9
Nov 17, 2019, 12:07 pm Last Edit: Nov 17, 2019, 12:11 pm by al1fch
32 Mb (M bits) = 4 MB (M bytes)

la carte n'a pas plus de mémoire Flash, son vendeur  est juste assez malin pour présenter les choses sous un jour favorable au clic d'achat....

Il existe des cartes à ESP8266 dotees de 16MB (128Mb), ce sont les D1 MIni Pro
https://wiki.wemos.cc/products:d1:d1_mini_pro
dans l'IDE Arduino elles ont leur ligne particulière avec des options de partitionnement adaptées.

lesept

#10
Nov 17, 2019, 12:13 pm Last Edit: Nov 17, 2019, 12:14 pm by lesept
Par contre ça me fait rebondir sur une autre question, je me suis procuré des module de mémoire supplémentaire 32M de ce type: "WEMOS-340G Wemos 32M flash NodeMCU V3 340G ESP8266 Compatible".
Comme le laisse entendre J-M-L, ce n'est pas un module mémoire, c'est un ESP8266 équipé, comme tous les autres, d'un composant mémoire externe à la puce.
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

Treza88

Ok et merci a vous deux,

Donc si je vous suis bien, ce n'est pas un module supplémentaire de mémoire indépendante, mais bien un esp8266 de 4M et qui a le désavantage de ne pas avoir le wifi.

c'est donc un microcontrôleur simple comme un "arduino nano" par exemple.

Et donc comme le disait allfch, je me suis fait avoir avec une fausse dénomination et je n'ai pas acheté ce que je pensais.

J-M-L

#12
Nov 17, 2019, 12:43 pm Last Edit: Nov 17, 2019, 01:09 pm by J-M-L
Ok et merci a vous deux,

Donc si je vous suis bien, ce n'est pas un module supplémentaire de mémoire indépendante, mais bien un esp8266 de 4M et qui a le désavantage de ne pas avoir le wifi.

c'est donc un microcontrôleur simple comme un "arduino nano" par exemple.

Et donc comme le disait allfch, je me suis fait avoir avec une fausse dénomination et je n'ai pas acheté ce que je pensais.
si si il a le wifi, c'est juste un clone. il semble qu'il y en aurait vraiment avec 32 Mega Octets apparement (cf ce lien Amazon qui mentionne bien Mo, et insiste... sinon c'est de la pub mensongère), don/Users/jmlunati/Desktop/sram.pngc vous ne vous êtes pas forcément fait avoir...

ou alors c'est une vraie arnaque et ce sont les modules classique avec 1Mo 2Mo ou 4Mo et au dos de la carte c'est affiché en Mbits
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

al1fch

#13
Nov 17, 2019, 12:48 pm Last Edit: Nov 17, 2019, 12:52 pm by al1fch
C'est un banal clone de D1 Mini = ESP8266 +  mémoire flash 4MB...avec usage abusif du logo Wemos.

J-M-L

oui sans doute... et Amazon vend ça sans ennuis...
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

Go Up