Arduino Nano ESP32 - Cartão SD

Neste guia, vamos explorar como usar um Cartão Micro SD com o Arduino Nano ESP32. Vamos nos aprofundar nos seguintes tópicos:

Hardware Necessário

1×Arduino Nano ESP32
1×Cabo USB Tipo-A para Tipo-C (para PC com USB-A)
1×Cabo USB Tipo-C para Tipo-C (para PC com USB-C)
1×Cartão Micro SD
1×Módulo de Cartão Micro SD
1×Fios Jumper
1×Protoboard
1×(Opcional) Adaptador de Cartão de Memória MicroSD para SD
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano ESP32

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Sobre o Módulo de Cartão Micro SD

O Módulo de Cartão Micro SD pode fazer interface com o Arduino Nano ESP32 e pode levar um Cartão Micro SD. Em outras palavras, o Módulo de Cartão Micro SD é uma ponte entre o Arduino Nano ESP32 e o Cartão Micro SD

Pinagem

Pinagem do Módulo de Cartão Micro SD

O Módulo de Cartão Micro SD inclui 6 pinos:

  • Pino VCC: conecte ao pino 5V do ESP32.
  • Pino GND: conecte este pino ao GND do ESP32.
  • Pino MISO: (Master In Slave Out) conecte este pino ao pino MISO do ESP32.
  • Pino MOSI: (Master Out Slave In) conecte este pino ao pino MOSI do ESP32.
  • Pino SCK: conecte este pino ao pino SCK do ESP32.
  • Pino SS: (Slave Select) conecte este pino ao pino especificado no código do Arduino Nano ESP32 como pino SS.

Preparação

  • Conecte o Cartão Micro SD ao PC por meio do Leitor de Cartão SD USB 3.0
  • Certifique-se de que o Cartão Micro SD está formatado em FAT16 ou FAT32 (pesquise no Google)

Diagrama de Ligação

  • O diagrama de ligação ao alimentar a placa Arduino Nano ESP32 pela porta USB.
Diagrama de Ligação do Módulo de Cartão Micro SD com o Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

  • O diagrama de ligação ao alimentar a placa Arduino Nano ESP32 pelo pino Vin.
Diagrama de ligação com alimentação externa do Módulo de Cartão Micro SD com o Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Arduino Nano ESP32 - Como abrir um arquivo no Cartão Micro SD e criá-lo se não existir

Código do Arduino Nano ESP32

/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-sd-card */ #include <SD.h> #define PIN_SPI_CS D4 // The Arduino Nano ESP32 pin connected to the CS pin of SD card module File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { while (1) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); delay(1000); } } Serial.println(F("SD CARD INITIALIZED.")); if (!SD.exists("/esp32.txt")) { Serial.println(F("esp32.txt doesn't exist. Creating esp32.txt file...")); // create a new file by opening a new file and immediately close it myFile = SD.open("/esp32.txt", FILE_WRITE); myFile.close(); } // recheck if file is created or not if (SD.exists("/esp32.txt")) Serial.println(F("esp32.txt exists on SD Card.")); else Serial.println(F("esp32.txt doesn't exist on SD Card.")); } void loop() { }

Passos Rápidos

  • Se esta é a primeira vez que você usa o Arduino Nano ESP32, veja como configurar o ambiente para o Arduino Nano ESP32 no Arduino IDE.
  • Abra o Arduino IDE no seu PC.
  • Selecione a placa Arduino Nano ESP32 correta (por exemplo, Arduino Nano ESP32 e a porta COM.
  • Insira o Cartão Micro SD no módulo de Cartão Micro SD
  • Faça a ligação entre o módulo de Cartão Micro SD e o Arduino Nano ESP32 conforme o diagrama de ligação acima
  • Conecte o Arduino Nano ESP32 ao PC por um cabo USB
  • Abra o Arduino IDE, selecione a placa e a porta corretas
  • Abra o Serial no Arduino IDE
  • Copie o código acima e cole no Arduino IDE
  • Clique no botão Upload do Arduino IDE para fazer o upload do código para o Arduino Nano ESP32
  • O resultado no Serial Monitor na primeira execução
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
SD CARD INITIALIZED. esp32.txt doesn't exist. Creating esp32.txt file... esp32.txt exists on SD Card.
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2
  • O resultado no Serial Monitor nas execuções seguintes
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
SD CARD INITIALIZED. esp32.txt exists on SD Card.
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

※ Nota:

Você pode NÃO ver a saída no Serial Monitor na primeira execução se o seu primeiro upload for feito antes de abrir o Serial Monitor.

  • Remova o Cartão Micro SD do módulo
  • Insira o Cartão Micro SD em um leitor de Cartão SD USB
  • Conecte o leitor de Cartão SD USB ao PC
  • Verifique se o arquivo existe ou não

Arduino Nano ESP32 - Como gravar/ler dados em/de um arquivo no Cartão Micro SD

O código abaixo faz o seguinte:

  • Grava dados em um arquivo
  • Lê o conteúdo do arquivo caractere por caractere e o imprime no Serial Monitor
/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-sd-card */ #include <SD.h> #define PIN_SPI_CS D4 // The Arduino Nano ESP32 pin connected to the CS pin of SD card module File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { while (1) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); delay(1000); } } Serial.println(F("SD CARD INITIALIZED.")); // open file for writing myFile = SD.open("/esp32.txt", FILE_WRITE); if (myFile) { myFile.println("Created by esp32io.com"); // write a line to esp32.txt myFile.println("Learn ESP32 and SD Card"); // write another line to esp32.txt myFile.close(); } else { Serial.print(F("SD Card: Issue encountered while attempting to open the file esp32.txt")); } // open file for reading myFile = SD.open("/esp32.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: Issue encountered while attempting to open the file esp32.txt")); } } void loop() { }
  • O Serial Monitor mostrou o conteúdo do arquivo
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
Created by newbiely.com Learn Arduino Nano ESP32 and SD Card
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

※ Nota:

Os dados serão anexados ao final do arquivo por padrão. Se você reiniciar o Arduino Nano ESP32 com o código acima, o texto será anexado ao arquivo de novo ⇒ o Serial Monitor vai mostrar mais linhas, como abaixo:

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
Created by newbiely.com Learn Arduino Nano ESP32 and SD Card Created by newbiely.com Learn Arduino Nano ESP32 and SD Card
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

Você também pode remover o Cartão Micro SD do módulo e abri-lo no seu PC para verificar o conteúdo (é necessário um leitor de Cartão SD USB)

Arduino Nano ESP32 - Como ler um arquivo no Cartão Micro SD linha por linha

/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-sd-card */ #include <SD.h> #define PIN_SPI_CS D4 // The Arduino Nano ESP32 pin connected to the CS pin of SD card module File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { while (1) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); delay(1000); } } Serial.println(F("SD CARD INITIALIZED.")); // open file for writing myFile = SD.open("/esp32.txt", FILE_WRITE); if (myFile) { myFile.println("Created by esp32io.com"); // write a line to esp32.txt myFile.println("Learn ESP32 and SD Card"); // write another line to esp32.txt myFile.close(); } else { Serial.print(F("SD Card: Issue encountered while attempting to open the file esp32.txt")); } // open file for reading myFile = SD.open("/esp32.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: Issue encountered while attempting to open the file esp32.txt")); } } void loop() { }
  • O resultado no Serial Monitor
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
SD CARD INITIALIZED. Line 1: Created by newbiely.com Line 2: Learn Arduino Nano ESP32 and SD Card
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

※ Nota:

Você pode ver mais linhas no Serial Monitor se o conteúdo do arquivo não tiver sido apagado antes.

Arduino Nano ESP32 - Como sobrescrever um arquivo no Cartão Micro SD

Por padrão, o conteúdo será anexado ao final do arquivo. A maneira mais simples de sobrescrever um arquivo é: apagar o arquivo existente e criar um novo com o mesmo nome

/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-sd-card */ #include <SD.h> #define PIN_SPI_CS D4 // The Arduino Nano ESP32 pin connected to the CS pin of SD card module File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { while (1) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); delay(1000); } } Serial.println(F("SD CARD INITIALIZED.")); SD.remove("/esp32.txt"); // delete the file if existed // create new file by opening file for writing myFile = SD.open("/esp32.txt", FILE_WRITE); if (myFile) { myFile.println("Created by esp32io.com"); // write a line to esp32.txt myFile.println("Learn ESP32 and SD Card"); // write another line to esp32.txt myFile.close(); } else { Serial.print(F("SD Card: Issue encountered while attempting to open the file esp32.txt")); } // open file for reading myFile = SD.open("/esp32.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: Issue encountered while attempting to open the file esp32.txt")); } } void loop() { }
  • O resultado no Serial Monitor
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
SD CARD INITIALIZED. Created by newbiely.com Learn Arduino Nano ESP32 and SD Card
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2
  • Reinicie o Arduino Nano ESP32
  • Verifique no Serial Monitor se o conteúdo do arquivo foi anexado ou não.

Você também pode remover o Cartão Micro SD do módulo e abri-lo no seu PC para verificar o conteúdo (é necessário um leitor de Cartão SD USB)

Vídeo

Referências de Funções

※ 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!