ESP8266 - Gravar Variável no Cartão SD

Este tutorial oferece uma orientação completa sobre como gravar vários tipos de variáveis em um cartão Micro SD usando o ESP8266. Os tópicos abordados incluem:

Para extrair pares chave-valor do cartão Micro SD e convertê-los em int, float ou string, consulte o seguinte tutorial: ESP8266 - Ler Configuração do Cartão SD.

Cartão Micro SD com ESP8266 NodeMCU

Sobre o Módulo de Cartão Micro SD

Se você não conhece o módulo de cartão Micro SD, incluindo sua pinagem, como ele funciona e como programá-lo, o tutorial ESP8266 - Cartão Micro SD pode fornecer as informações necessárias.

Diagrama de Ligação

Diagrama de ligação do módulo de cartão Micro SD com ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Para mais informações, veja Pinagem do ESP8266 e como alimentar o ESP8266 e outros componentes.

※ Nota:

Se você tem um Ethernet shield ou qualquer outro shield que tenha um suporte para cartão Micro SD, não precisa usar o módulo de cartão Micro SD. Basta inserir o cartão Micro SD no suporte de cartão Micro SD do shield.

ESP8266 - Como gravar uma variável em um arquivo no cartão Micro SD

O código a seguir:

  • Armazena um valor inteiro no cartão Micro SD
  • Armazena um valor de ponto flutuante no cartão Micro SD
  • Armazena uma string no cartão Micro SD
  • Armazena um array de caracteres no cartão Micro SD
  • Armazena um array de bytes no cartão Micro SD
/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp8266/esp8266-write-variable-to-sd-card */ #include <SD.h> #define PIN_SPI_CS D8 File myFile; int myInt = -52; float myFloat = -12.7; String myString = "HELLO"; char myCharArray[] = "newbiely.com"; byte myByteArray[] = {'1', '2', '3', '4', '5'}; 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.")); Serial.println(F("--------------------")); 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(myInt); // write int variable to SD card in line myFile.println(myFloat); // write float variable to SD card in line myFile.println(myString); // write String variable to SD card in line myFile.println(myCharArray); // write char array to SD card in line myFile.write(myByteArray, 5); myFile.write("\n"); // new line for (int i = 0; i < 5; i++) { myFile.write(myByteArray[i]); // new line if (i < 4) myFile.write(","); // comma } myFile.write("\n"); // new line 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() { }

Passos Rápidos

Para começar com o ESP8266 no Arduino IDE, siga estes passos:

  • Confira o tutorial como configurar o ambiente para o ESP8266 no Arduino IDE se esta for a sua primeira vez usando o ESP8266.
  • Ligue os componentes como mostrado no diagrama.
  • Conecte a placa ESP8266 ao seu computador usando um cabo USB.
  • Abra o Arduino IDE no seu computador.
  • Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
  • Verifique se o cartão Micro SD está formatado como FAT16 ou FAT32 (você pode pesquisar na internet como fazer isso).
  • Em seguida, abra o código no Arduino IDE.
  • Com o código aberto, pressione o botão Upload no Arduino IDE para compilar e fazer o upload do código para o ESP8266.
  • Por fim, veja os resultados no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
SD CARD INITIALIZED. -------------------- -52 -12.70 HELLO newbiely.com 12345 1,2,3,4,5
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2
  • Remova o cartão Micro SD do módulo de cartão Micro SD.
  • Insira o cartão Micro SD em um leitor de cartão SD USB.
  • Conecte o leitor de cartão SD USB ao PC.
  • Abra o arquivo esp8266.txt no seu computador; ele aparece da seguinte forma.
ESP8266 NodeMCU grava variável no cartão Micro SD

ESP8266 - Como gravar um par chave-valor em um arquivo no cartão Micro SD

/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp8266/esp8266-write-variable-to-sd-card */ #include <SD.h> #define PIN_SPI_CS D8 File myFile; int myInt = -52; float myFloat = -12.7; String myString = "HELLO"; char myCharArray[] = "newbiely.com"; byte myByteArray[] = {'1', '2', '3', '4', '5'}; 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.")); Serial.println(F("--------------------")); 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.print("myInt="); // write key to SD card myFile.println(myInt); // write int variable to SD card in line myFile.print("myFloat="); // write key to SD card myFile.println(myFloat); // write float variable to SD card in line myFile.print("myString="); // write key to SD card myFile.println(myString); // write String variable to SD card in line myFile.print("myCharArray="); // write key to SD card myFile.println(myCharArray); // write char array to SD card in line myFile.print("myByteArray="); // write key to SD card myFile.write(myByteArray, 5); myFile.write("\n"); // new line myFile.print("myByteArray2="); // write key to SD card for (int i = 0; i < 5; i++) { myFile.write(myByteArray[i]); // new line if (i < 4) myFile.write(","); // comma } myFile.write("\n"); // new line 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() { }

Passos Rápidos

  • Ligue os componentes como mostrado no diagrama.
  • Conecte a placa ESP8266 ao seu computador usando um cabo USB.
  • Abra o Arduino IDE no seu computador.
  • Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
  • Copie o código e abra-o no Arduino IDE.
  • Clique no botão Upload para enviá-lo ao ESP8266.
  • Veja o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
SD CARD INITIALIZED. -------------------- myInt=-52 myFloat=-12.70 myString=HELLO myCharArray=newbiely.com myByteArray=12345 myByteArray2=1,2,3,4,5
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2
  • Remova o cartão Micro SD do módulo de cartão Micro SD.
  • Insira o cartão Micro SD em um leitor de cartão SD USB.
  • Conecte o leitor de cartão SD USB ao computador.
  • Abra o arquivo esp8266.txt no seu PC; ele aparecerá da seguinte forma.
ESP8266 NodeMCU grava variável no cartão Micro SD

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!