ESP8266 - Carte micro SD

Ce tutoriel vous explique comment utiliser la carte Micro SD avec l'ESP8266. En détail, nous allons apprendre :

Carte Micro SD ESP8266 NodeMCU

Préparation du matériel

1×ESP8266 NodeMCU
1×Micro USB Cable
1×Micro SD Card
1×Micro SD Card Module
1×Jumper Wires
1×USB 3.0 SD Card Reader
1×(Optional) 5V Power Adapter for ESP8266
1×(Optional) ESP8266 Screw Terminal Adapter

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du module de carte Micro SD

Le module de carte Micro SD est un lien entre l'ESP8266 et une carte Micro SD. Il peut établir une connexion avec l'ESP8266 et peut être utilisé pour maintenir la carte Micro SD. En d'autres termes, il sert de pont entre les deux.

Brochage du module de carte Micro SD

Brochage du module de carte Micro SD

Le module de carte Micro SD dispose de 6 broches :

  • Broche VCC : Doit être connectée à la broche 5V de l'Arduino.
  • Broche GND : Doit être connectée à la broche GND de l'Arduino.
  • Broche MISO : (Master In Slave Out) Doit être connectée à la broche MOSI de l'Arduino.
  • Broche MOSI : (Master Out Slave In) Doit être connectée à la broche MISO de l'Arduino.
  • Broche SCK : Doit être connectée à la broche SCK de l'Arduino.
  • Broche SS : (Sélection du Slave) Doit être connectée à la broche spécifiée dans le code ESP8266 comme broche SS.

Préparation

Assurez-vous que la carte Micro SD est formatée en FAT16 ou FAT32 (vous pouvez rechercher en ligne pour plus d'informations).

Diagramme de câblage

Schéma de câblage du module de carte SD ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Voir plus dans l'agencement des broches de l'ESP8266 et comment alimenter l'ESP8266 et d'autres composants.

ESP8266 - Comment ouvrir un fichier sur une carte Micro SD et le créer s'il n'existe pas

Code ESP8266

Étapes rapides

Pour commencer avec l'ESP8266 sur Arduino IDE, suivez ces étapes :

  • Consultez le tutoriel comment configurer l'environnement pour ESP8266 sur Arduino IDE si c'est votre première utilisation d'ESP8266.
  • Connectez les composants comme indiqué dans le schéma.
  • Connectez la carte ESP8266 à votre ordinateur à l'aide d'un câble USB.
  • Ouvrez Arduino IDE sur votre ordinateur.
  • Choisissez la bonne carte ESP8266, comme (par exemple, NodeMCU 1.0 (Module ESP-12E)), et son port COM respectif.
  • Insérez la carte Micro SD dans le module carte Micro SD.
  • Faites les connexions entre le module carte Micro SD et l'ESP8266 selon le schéma de câblage.
  • Connectez l'ESP8266 au PC avec un câble USB.
  • Ouvrez l'Arduino IDE et sélectionnez la carte et le port appropriés.
  • Ouvrez le moniteur série dans l'Arduino IDE.
  • Copiez et collez le code suivant dans l'Arduino IDE.
/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp8266/esp8266-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS D8 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); if (!SD.exists("esp8266.txt")) { Serial.println(F("esp8266.txt doesn't exist. Creating esp8266.txt file...")); // create a new file by opening a new file and immediately close it myFile = SD.open("esp8266.txt", FILE_WRITE); myFile.close(); } // recheck if file is created or not if (SD.exists("esp8266.txt")) Serial.println(F("esp8266.txt exists on SD Card.")); else Serial.println(F("esp8266.txt doesn't exist on SD Card.")); } void loop() { }
  • Cliquez sur le bouton Upload de l'IDE Arduino pour compiler et téléverser le code sur l'ESP8266.
  • Le moniteur série affichera le résultat de la première exécution.
COM6
Send
SD CARD INITIALIZED. esp8266.txt doesn't exist. Creating esp8266.txt file... esp8266.txt exists on SD Card.
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Sera différent
  • Le résultat affiché sur le moniteur série pour les exécutions ultérieures sera distinct.
COM6
Send
SD CARD INITIALIZED. esp8266.txt exists on SD Card.
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ NOTE THAT:

Il est possible que vous ne voyiez pas le résultat sur le moniteur série lorsque vous téléversez votre code pour la première fois, si cela est fait avant d'ouvrir le moniteur série.

  • Retirez la carte Micro SD du module.
  • Insérez la carte Micro SD dans un lecteur de carte SD USB.
  • Connectez le lecteur de carte SD USB à l'ordinateur.
  • Vérifiez si le fichier est présent ou non.

ESP8266 - Comment écrire/lire des données depuis/vers un fichier sur une carte Micro SD

Le code suivant :

  • Enregistre les données dans un fichier
  • Lit le contenu du fichier caractère par caractère et l'affiche sur le moniteur série
/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp8266/esp8266-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS D8 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); // open file for writing myFile = SD.open("esp8266.txt", FILE_WRITE); if (myFile) { myFile.println("Created by newbiely.com"); // write a line to esp8266.txt myFile.println("Learn ESP8266 and SD Card"); // write another line to esp8266.txt myFile.close(); } else { Serial.print(F("SD Card: error on opening file esp8266.txt")); } // open file for reading myFile = SD.open("esp8266.txt", FILE_READ); if (myFile) { while (myFile.available()) { char ch = myFile.read(); // read characters one by one from Micro SD Card Serial.print(ch); // print the character to Serial Monitor } myFile.close(); } else { Serial.print(F("SD Card: error on opening file esp8266.txt")); } } void loop() { }
  • Le moniteur série a affiché le contenu du fichier.
COM6
Send
Created by ArduinoGetStarted.com Learn ESP8266 and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ NOTE THAT:

Par défaut, les données seront ajoutées à la fin du fichier. Si vous redémarrez l'ESP8266 avec le code ci-dessus, le texte sera de nouveau ajouté au fichier, et le moniteur série affichera plus de lignes comme celles-ci :

COM6
Send
Créé par ArduinoGetStarted.com Apprenez ESP8266 et Carte SD Créé par ArduinoGetStarted.com Apprenez ESP8266 et Carte SD
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vous pouvez retirer la carte Micro SD du module et utiliser un lecteur de carte SD USB pour visualiser son contenu sur votre ordinateur.

ESP8266 - Comment lire un fichier sur une carte Micro SD ligne par ligne

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp8266/esp8266-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS D8 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); // open file for writing myFile = SD.open("esp8266.txt", FILE_WRITE); if (myFile) { myFile.println("Created by newbiely.com"); // write a line to esp8266.txt myFile.println("Learn ESP8266 and SD Card"); // write another line to esp8266.txt myFile.close(); } else { Serial.print(F("SD Card: error on opening file esp8266.txt")); } // open file for reading myFile = SD.open("esp8266.txt", FILE_READ); if (myFile) { int line_count = 0; while (myFile.available()) { char line[100]; // maximum is 100 characters, change it if needed int line_length = myFile.readBytesUntil('\n', line, 100); // read line-by-line from Micro SD Card line_count++; Serial.print(F("Line ")); Serial.print(line_count); Serial.print(F(": ")); Serial.write(line, line_length); // print the character to Serial Monitor // \n character is escaped by readBytesUntil function Serial.write('\n'); // print a new line charactor } myFile.close(); } else { Serial.print(F("SD Card: error on opening file esp8266.txt")); } } void loop() { }
  • La sortie affichée sur le moniteur série.
COM6
Send
SD CARD INITIALIZED. Line 1: Created by ArduinoGetStarted.com Line 2: Learn ESP8266 and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ NOTE THAT:

Vous pourriez observer des lignes supplémentaires sur le moniteur série si le contenu du fichier n'a pas été effacé auparavant.

ESP8266 - Comment écraser un fichier sur une carte Micro SD

Par défaut, le contenu sera ajouté à la fin du fichier. La manière la plus simple de remplacer un fichier est : supprimer le fichier existant et en créer un nouveau portant le même nom.

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp8266/esp8266-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS D8 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); SD.remove("esp8266.txt"); // delete the file if existed // create new file by opening file for writing myFile = SD.open("esp8266.txt", FILE_WRITE); if (myFile) { myFile.println("Created by newbiely.com"); // write a line to esp8266.txt myFile.println("Learn ESP8266 and SD Card"); // write another line to esp8266.txt myFile.close(); } else { Serial.print(F("SD Card: error on opening file esp8266.txt")); } // open file for reading myFile = SD.open("esp8266.txt", FILE_READ); if (myFile) { while (myFile.available()) { char ch = myFile.read(); // read characters one by one from Micro SD Card Serial.print(ch); // print the character to Serial Monitor } myFile.close(); } else { Serial.print(F("SD Card: error on opening file esp8266.txt")); } } void loop() { }
  • Le résultat s'affiche sur le moniteur série.
COM6
Send
SD CARD INITIALIZED. Created by ArduinoGetStarted.com Learn ESP8266 and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Redémarrez l'ESP8266
  • Vérifiez si le contenu du fichier a été ajouté au moniteur série ou non.

Vous pouvez retirer la carte Micro SD du module et consulter son contenu sur votre ordinateur. Un lecteur de carte SD USB est nécessaire pour cela.

Vidéo

Références de fonction

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!