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:
#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);
}
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
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.
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.
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
Treza88:
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 ?
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?
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
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?
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.
Treza88:
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.
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.
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
Oui tu a raison allfch, c'est bien le même que la photo de J-M-L avec j’espère au moins les 4Mo ou 32Mbit. Vu qu'il n'est même pas coché sur 8, 16 ou 32M.
Ok en tout cas merci pour vos précision, je sais ou je vais maintenant.
J'ai suivi les versions successives des D1 MIni WEMOS, achetées sur leur site.
A aucun moment ils n'ont produit la carte montrée , avec son gros régulateur AMS1117
Lassés de la reprise de leur marque ils l'ont laissée tombée au profit de la marqe LOLIN (mieux protége , j'espère pour eux !)