Tutorial ESP32 42/55 - Tirando Foto com Câmera salva no Micro SD CAM-1 | Kit ESP32 da SunFounder

Tutorial ESP32 42/55 - Tirando Foto com Câmera salva no Micro SD CAM-1 | Kit ESP32 da SunFounder

Neste tutorial, usaremos o microcontrolador ESP32 juntamente com sua placa de expansão da SunFounder para capturar fotos usando uma câmera e salvá-las diretamente em um cartão micro SD. Este projeto utiliza as capacidades integradas do ESP32, incluindo Wi-Fi e Bluetooth, para criar um dispositivo compacto de captação de fotos. Ao final deste tutorial, você terá uma configuração funcional que pode tirar e armazenar imagens, que poderão ser acessadas posteriormente em um computador.

extension_bopard_camera

Para aqueles que são novos no ecossistema ESP32, este kit fornece uma plataforma versátil para vários projetos, incluindo este. A câmera usada neste projeto é a OV2640, que oferece uma resolução de 1600x1200 pixels. Embora não corresponda à qualidade dos smartphones modernos, é suficiente para tarefas básicas de captura de imagem. Para esclarecer quaisquer etapas, certifique-se de verificar o vídeo que acompanha este tutorial (no vídeo em 00:00).

20240103_163227858_iOS

Hardware Explicado

Os componentes principais deste projeto incluem o microcontrolador ESP32, o módulo da câmera (OV2640) e um cartão micro SD para armazenamento. O ESP32 é um microcontrolador poderoso com capacidades integradas de Wi-Fi e Bluetooth, tornando-o ideal para aplicações de IoT. O módulo da câmera captura imagens, que são então processadas pelo ESP32.

esp32-41-configuração-3

O cartão micro SD atua como um meio de armazenamento para as imagens capturadas. Nesta configuração, o ESP32 se comunica com o módulo da câmera usando pinos GPIO específicos, e as imagens são salvas em formato JPEG no cartão SD. Isso permite a fácil recuperação e visualização das fotos posteriormente.

  • Certifique-se de que a câmera está corretamente orientada ao inserir na placa ESP32.
  • Use um cartão micro SD com capacidade de 32 GB ou menos para evitar problemas de compatibilidade.
  • Conecte o GPIO 0 ao GND para o modo de programação.
  • Preste atenção na alimentação elétrica para evitar problemas de quedas de tensão.
  • Mantenha a câmera estável ao tirar fotos para evitar imagens borradas.

Instruções de fiação

Para conectar o módulo de câmera ESP32, primeiro certifique-se de que o ESP32 está desligado. Conecte o módulo de cartão micro SD ao ESP32 usando os seguintes pinos: conecte oCSpino do cartão SD para o ESP32GPIO 5,MOSIparaGPIO 23,MISOparaGPIO 19, eSCKparaGPIO 18. Em seguida, conecte os pinos do módulo da câmera da seguinte forma:PWDNparaGPIO 32,XCLKparaGPIO 0,SIODparaGPIO 26, eSIOCparaGPIO 27Os pinos dos dados de pixelY2paraY9deve estar conectado aGPIO 5atravésGPIO 39conforme definido em seu código.

Certifique-se de conectar os pinos de terra e de energia adequadamente. O ESP32 pode ser alimentado pela bateria incluída no kit. Após a fiação, verifique se as conexões estão seguras antes de ligar o dispositivo. Se você seguir as instruções cuidadosamente, deverá ver a câmera inicializar corretamente quando você carregar o código.

Exemplos de Código e Passo a Passo

esp32-41-configuração-2
esp32-41-configuração-1

No texto, começamos incluindo as bibliotecas necessárias e definindo as configurações dos pinos da câmera. A variávelpictureNumberé inicializado para acompanhar o número de fotos tiradas.

int pictureNumber = 0;

void setup() {
  WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0);  // Disable brownout detector
  Serial.begin(115200);
  camera_config_t config;
  // Configuration settings for the camera
  config.ledc_channel = LEDC_CHANNEL_0;
  // Additional camera settings...
}

A função de configuração inicializa a comunicação serial e configura as definições da câmera. A configuração inclui parâmetros comoledc_channel,pin_d0, exclk_freq_hzpara desempenho ideal.

Em seguida, lidamos com o processo de captura de imagem usando um loop para tirar várias fotos. Os dados das imagens são salvos no cartão SD com um nome de arquivo baseado nopictureNumber.

for (int shoot = 0; shoot < 5; shoot++) {
    camera_fb_t *fb = esp_camera_fb_get(); // Take Picture
    String path = "/picture" + String(pictureNumber) + ".jpg"; // File path
    File file = fs.open(path.c_str(), FILE_WRITE); // Open file to write
    // Write image data to file
    file.write(fb->buf, fb->len);
    // Update picture number in EEPROM
    EEPROM.write(0, pictureNumber);
}

Este loop captura até cinco imagens, onde cada imagem é salva com um nome de arquivo exclusivo. O uso de EEPROM permite que o programa lembre do último número da foto, garantindo que cada nova imagem tenha um identificador exclusivo.

Demonstração / O que Esperar

Quando você executar o código, o ESP32 irá inicializar a câmera e o cartão SD. Após pressionar o botão de reset no ESP32, ele tirará uma série de fotos, que serão numeradas sequencialmente de 0 a 255 com base no valor da EEPROM. Após capturar as imagens, você pode remover o cartão micro SD e visualizar as fotos no seu computador.

Erros comuns incluem garantir que o cartão micro SD esteja formatado e inserido corretamente, assim como manter uma posição estável da câmera para evitar imagens embaçadas. Se você encontrar problemas com a câmera não capturando imagens, cheque novamente a fiação e as configurações definidas no código (no vídeo às 06:45).

Marcos de vídeo

  • 00:00 Início
  • 1:39 Introdução
  • 5:19 Código da Câmera ESP32 explicado
  • 11:10 Selecionando a placa ESP32 e a porta COM no Arduino IDE
  • 12:52 Testando fotos internas e externas

Imagens

esp32-41-setting-3
esp32-41-setting-3
extension_bopard_camera
extension_bopard_camera
20240103_163227858_iOS
20240103_163227858_iOS
esp32-41-setting-1
esp32-41-setting-1
esp32-41-setting-2
esp32-41-setting-2
843-ESP32 Tutorial 42/55- Arduino code for taking photo and saving it
Idioma: C++
Copiado!

Recursos e referências

Arquivos📁

Nenhum arquivo disponível.