Tutorial ESP32 40/55 - Lendo e escrevendo no Cartão Micro SD | Kit de Aprendizado de IoT ESP32 da SunFounder

Tutorial ESP32 40/55 - Lendo e escrevendo no Cartão Micro SD | Kit de Aprendizado de IoT ESP32 da SunFounder

Neste tutorial, aprenderemos como ler e gravar em um cartão micro SD usando o ESP32 e a placa de extensão SunFounder ESP32. Isso nos permitirá armazenar dados e recuperá-los mais tarde, o que é essencial para muitas aplicações de IoT. Ao final deste tutorial, você terá uma configuração funcional que pode criar, gravar e ler arquivos do cartão micro SD.

Para começar, certifique-se de que seu cartão micro SD esteja formatado corretamente para FAT32, pois este é o sistema de arquivos necessário para que o ESP32 interaja com o cartão. Usaremos a biblioteca SD_MMC, que simplifica o processo de acesso a arquivos no cartão micro SD. É importante notar que a capacidade máxima do cartão micro SD não deve exceder 32 GB.

Hardware Explicado

Os componentes principais deste projeto incluem o microcontrolador ESP32 e o módulo de cartão micro SD. O ESP32 é um microcontrolador versátil que possui capacidades de Wi-Fi e Bluetooth integradas, tornando-o ideal para aplicações de IoT. O módulo de cartão micro SD permite que o ESP32 leia e grave no cartão, possibilitando o armazenamento de dados para diversas aplicações.

O cartão micro SD opera utilizando um sistema de arquivos para armazenar dados de forma estruturada. Ele se comunica com o ESP32 através da interface SD_MMC, que permite a leitura e escrita eficientes de arquivos. Essa configuração pode ser utilizada para registrar dados, salvar imagens ou qualquer outra aplicação onde a persistência dos dados é necessária.

Instruções de Fiação

ESP32-40-micro-sd-card-1

Para conectar o cartão micro SD ao ESP32, siga estes passos:

Primeiro, conecte os pinos de alimentação e terra. Conecte o pino VCC do módulo de cartão micro SD ao pino 3,3V do ESP32 e conecte o pino GND a um dos pinos GND do ESP32. Em seguida, conecte os pinos de dados: conecte o pino CS (Chip Select) do módulo de cartão micro SD ao pino5no ESP32, o pino MOSI (Master Out Slave In) para pino23, o pino MISO (Master In Slave Out) para pino19, e o pino SCK (Clock Serial) para o pino18. Assegure-se de que essas conexões estejam seguras para evitar quaisquer problemas de comunicação.

Se você estiver usando uma placa de extensão diferente, os números dos pinos podem variar, então consulte a documentação específica para sua placa. A fiação é crucial para o funcionamento bem-sucedido da leitura e escrita de arquivos no cartão micro SD.

Exemplos de Códigos e Guia Passo a Passo

Agora, vamos dar uma olhada nas principais partes do código que interagem com o cartão micro SD. A configuração começa com a inicialização da comunicação serial e verificando se o cartão micro SD está montado com sucesso.

Serial.begin(115200); // Initialize serial communication
if (!SD_MMC.begin()) { // Check if SD card is mounted successfully
  Serial.println("Failed to mount SD card"); // Print error message if SD card failed to mount
  return;
}

Neste trecho de código, a comunicação serial é configurada para uma taxa de transmissão de 115200, que é importante para monitorar a saída. ASD_MMC.begin()a função tenta montar o cartão SD; se falhar, uma mensagem de erro é impressa no monitor serial.

A próxima parte do código cria um novo arquivo no cartão micro SD e escreve uma linha de texto nele.

File file = SD_MMC.open("/test.txt", FILE_WRITE); 
if (!file) {
  Serial.println("Failed to open file for writing"); // Print error message if file failed to open
  return;
}
if (file.println("Test file write")) { // Write a line of text to the file
  Serial.println("File write successful"); // Print success message if write operation is successful
} else {
  Serial.println("File write failed"); // Print error message if write operation failed
}
file.close(); // Close the file

Aqui, um arquivo chamadotest.txté aberto em modo de gravação. Se o arquivo for aberto com sucesso, ele escreve uma linha de texto e imprime uma mensagem de sucesso. Se a operação de gravação falhar, uma mensagem de erro é impressa em vez disso. Finalmente, o arquivo é fechado para garantir que as alterações sejam salvas.

O código também lê arquivos do diretório raiz do cartão micro SD e imprime seus nomes e tamanhos.

File root = SD_MMC.open("/"); // Open the root directory of SD card
while (File file = root.openNextFile()) { // Loop through all the files in the root directory
  Serial.print(file.name()); // Print the filename
  Serial.print("\t");
  Serial.println(file.size()); // Print the filesize
  file.close(); // Close the file
}

Este trecho abre o diretório raiz e itera por todos os arquivos, imprimindo seus nomes e tamanhos no monitor serial. Isso é útil para verificar se os dados foram gravados com sucesso e para ver o conteúdo do cartão SD.

Para mais detalhes, consulte o código completo carregado abaixo do artigo.

Demonstração / O Que Esperar

Após fazer o upload do código e reiniciar o ESP32, você deve ver mensagens no monitor serial indicando se o cartão SD foi montado com sucesso e se as operações de arquivo foram bem-sucedidas. Você também verá a lista de arquivos encontrados no diretório raiz, o que confirma que os dados foram gravados corretamente (no vídeo às 13:45).

Erros comuns incluem garantir que o cartão micro SD esteja devidamente formatado e conectado, além de verificar se o monitor serial está configurado para a taxa de transmissão correta. Se surgirem problemas, verifique novamente sua fiação e conexões.

Marcas de Tempo do Vídeo

  • 00:00 Início
  • 1:45 Introdução ao cartão Micro SD no ESP32
  • 3:46 Página de documentos
  • 4:43 Código Arduino
  • 8:09 Selecionando a Placa ESP32 e a porta COM no Arduino IDE
  • 9:51 Demonstração de escrita no Cartão MicroSD
  • 11:12 Visualizando arquivos escritos no PC

Imagens

ESP32-40-micro-sd-card-1
ESP32-40-micro-sd-card-1
ESP32-40-micro-sd-card-2
ESP32-40-micro-sd-card-2
841-ESP32 Tutorial 40/55- Arduino code for micro SD card
Idioma: C++
Copiado!

Coisas que você pode precisar

Arquivos📁

Nenhum arquivo disponível.