Exemplo de desenvolvimento do projeto ESP32 Cam no Ubuntu

Índice

ESP32-CAM camera development board

Sobre o ESP32-CAM

O ESP32-CAM é um módulo de câmera de tamanho reduzido lançado pela Ai-Thinker Co., Ltd, que pode funcionar de forma independente como o menor sistema, com um tamanho de 27*40,5*4,5 mm e uma corrente mínima em modo de suspensão profunda de 6 mA.

Características do ESP32 CAM

  • Interface da câmera (até 24 MP)
  • Conectividade Wi-Fi e Bluetooth
  • Processador dual-core ESP32-D0WDQ6
  • 520 KB de SRAM
  • Memória flash de 4 MB
  • Módulo de câmera OV2640 de 2 MP
  • Suporta os formatos JPEG e BMP
  • Interface USB tipo C
  • Conector para bateria LiPo
  • CPU de 32 bits, até 240 MHz
  • Transceptor Wi-Fi 802.11b/g/n HT40 integrado
  • Bluetooth integrado de modo duplo (clássico e BLE)
  • Antena PCB integrada
  • PSRAM integrada de 8 MB
  • Câmera integrada
  • Conector externo para câmera
  • 5 GPIOs programáveis
  • 2 x UART, 2 x SPI, I2C, I2S, IRDA, PWM, GPIOs

Pinagem do ESP32 CAM

ESP32 CAM Pinout
ESP32 CAM Pinout

O ESP32-CAM tem três pinos GND e dois pinos para alimentação: 3,3 V ou 5 V.

GPIO 1 e GPIO 3 são pinos seriais. Você precisa desses pinos para carregar o código na sua placa. Além disso, o GPIO 0 desempenha um papel importante, pois determina se o ESP32 está no modo de piscar ou não. Quando o GPIO 0 está conectado ao GND, o ESP32 está no modo de piscar.

Os seguintes pinos estão conectados internamente ao leitor de cartão microSD:

GPIO 14: CLK
GPIO 15: CMD
GPIO 2: Dados 0
GPIO 4: Dados 1 (também conectado ao LED integrado)
GPIO 12: Dados 2
GPIO 13: Dados 3

Desenvolvimento do projeto ESP32 Cam

Construção do ambiente

Hardware

  • Módulo ESP32-CAM
  • Câmera OV2640
  • Placa USB para porta serial (USB-TTL)
  • Linha Dupont
  • Fonte de alimentação 5V 2A

O módulo ESP32-CAM é alimentado separadamente, U0TXD, U0RXD e GND são conectados à placa de porta serial e conectados ao computador, e a câmera é conectada ao módulo por meio de um cabo.

Antes da programação, o GPIO0 do módulo ESP32-CAM precisa ser aterrado e reiniciado. Após a conclusão da programação, o GPIO0 é suspenso e reiniciado para entrar no modo de funcionamento.

Ambiente do sistema

O ESP32 pode ser desenvolvido em diferentes sistemas. Aqui está uma introdução ao ambiente de desenvolvimento da versão desktop do Ubuntu (a versão é Ubuntu 18.04.3).

Configurar servidor de download

Execute "Software e atualizações", clique na caixa suspensa "Baixar de" na guia "Software Ubuntu", selecione "Outros…", encontre "China" e selecione qualquer servidor, clique em "Escolher servidor" e, em seguida, digite a senha para confirmar. Quando estiver fechado, será solicitado que você atualize as informações. Clique em "Recarregar" para atualizar.

ESP32 Cam system environment: choose a download server
ESP32 Cam system environment: choose a download server
Instalar software
sudo apt-get purge vim-common
sudo apt-get install vim
sudo apt install git
Instalar ambiente dependente
sudo apt-get install git wget flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache libffi-dev libssl-dev

Código do projeto e ambiente de desenvolvimento

item de tração

Puxe o projeto e os submódulos ao mesmo tempo:

git clone --recurse-submodules https://github.com/Ai-Thinker-Open/Ai-Thinker-Open_ESP32-CAMERA_LAN.git

Se a extração for interrompida, você precisará entrar no diretório do projeto para extrair o submódulo novamente:

cd Ai-Thinker-Open_ESP32-CAMERA_LAN/
git submodule update --init --recursive
Estrutura de Desenvolvimento

Depois que o projeto é puxado, você pode ver que há um diretório esp-idf no diretório do projeto. esp-idf (Espressif IoT Development Framework) é a estrutura de desenvolvimento esp. O ambiente de desenvolvimento do projeto é construído através do esp-idf. A versão idf neste projeto é esp- idf-v4.0.

Defina o caminho IDF_PATH

Edite o arquivo de configuração .bashrc:

cd esp-idf/
vim ~/.bashrc


Use o comando vim para abrir o .bashrc, use o teclado para mover o cursor até o final do arquivo, pressione a para entrar, pressione Enter no final para ir para uma linha em branco e insira o conteúdo correspondente de acordo com o seguinte formato para definir a variável IDF_PATH:

# export IDF_PATH=<esp-idf absolute path>, the example is as follows
export IDF_PATH=/home/user/Desktop/esp32/Ai-Thinker-Open_ESP32-CAMERA_LAN/esp-idf


Após concluir a inserção, pressione esc para cancelar a edição, :wq para salvar e sair, execute o seguinte comando para que a modificação entre em vigor imediatamente:

source ~/.bashrc


Verifique se a variável é válida:

echo $IDF_PATH


Se o caminho impresso for consistente com a configuração, vá para a próxima etapa; caso contrário, você precisará repetir a operação.

Instalar ferramentas de desenvolvimento

Execute o script install.sh no diretório esp-idf:

./install.sh

Em seguida, o terminal solicita as informações de download. Após exibir a mensagem "All done!", a instalação está concluída. Nesse momento, execute o script export.sh para definir a variável de ambiente:

. ./export.sh

Observe que há um espaço após o primeiro ".", que precisa ser executado sempre que você abrir o terminal para desenvolvimento e depuração do projeto.

Após a execução do script, "Done!" (Concluído!) é impresso para indicar sucesso e, em seguida, o projeto pode ser configurado, compilado e baixado.

Configurar, compilar e baixar

Configuração do projeto

Entre no diretório do projeto de demonstração "Ai-Thinker-Open_ESP32-CAMERA_LAN/examples/single_chip/camera_web_server"

cd ../examples/single_chip/camera_web_server/

Em seguida, começamos a configurar o projeto:

make menuconfig

A mensagem "recipe for target 'mconf.o' failed" é um problema de dependência. Digite sudo apt-get install libncurses5-dev para instalar as dependências relevantes e tente novamente.

A interface de configuração é a seguinte:

ESP32 Cam Project - Espressif IoT Development Framework Configuration
ESP32 Cam Project - Espressif IoT Development Framework Configuration

Use as teclas de seta e a tecla Enter para mover o cursor para operar, entre na interface "Serial flasher config" e consulte a figura a seguir para configuração. Aqui, a porta serial está definida como "/dev/ttyUSB0" e precisa ser configurada para se conectar ao módulo ESP32-CAM durante a operação da porta serial.

ESP32 Cam Project - Serial Flasher Config
ESP32 Cam Project - Serial Flasher Config

Entre na interface "Camera Web Server"->"Camera Pins"->"Select Camera Pinout" e selecione "ESP32-CAM by AI-Thinker".

ESP32 Cam Project - Select Camera Pinout

Entre na interface "Camera Web Server"->"Wifi Settings" para definir o modo Wi-Fi, "Wifi STA SSID" e "Wifi STA Password" e "Wifi AP SSID" e "Wifi AP Password" para definir um deles.

(Wifi STA significa modo Estação, o ESP32-CAM se conecta à rede Wi-Fi de outros dispositivos; Wifi AP significa modo AP, o computador ou celular se conecta ao ponto de acesso Wi-Fi aberto pelo ESP32-CAM)

O modo Wifi AP é usado aqui, e o "Endereço IP Wifi AP" abaixo define o endereço IP do módulo no modo Wifi AP.

ESP32 Cam Project - WIFI Settings

Após concluir a configuração, use as teclas esquerda e direita para mover o cursor inferior para "<Salvar>" e pressione Enter para salvar. Em seguida, mova para "<Sair>" para sair da configuração.

Compilar e baixar

compilar:

make

download:

make flash

É importante observar que o módulo GPIO0 deve ser aterrado e reiniciado antes da programação.

Ao fazer o download do make flash, a porta "/dev/ttyUSB0" configurada anteriormente é usada por padrão, e outras portas podem ser especificadas pelo parâmetro -p: make flash -p [PORT]

Se for exibida uma mensagem informando que a falha na abertura da porta serial pode ser causada por um problema de permissão, você pode abrir todas as permissões da porta serial com sudo chmod -R 777 <porta>, como sudo chmod -R 777 /dev/ttyUSB0, mas todas as permissões da porta serial aberta se tornarão inválidas após a porta serial ser desconectada. Além disso, o usuário atual pode ser adicionado ao grupo dialout sudo usermod -a -G dialout <nome de usuário>

Receber informações de impressão da porta serial:

make monitor

Deve-se observar que o módulo GPIO0 deve ser suspenso para ligar ou reiniciar durante o funcionamento.

Além disso, você também pode usar o assistente da porta serial para visualizar as informações de impressão do módulo.

Tirar foto e gravar vídeo

Após baixar o firmware de demonstração, o módulo ESP32-CAM é ligado e começa a funcionar. Conecte o computador ou celular à rede onde o módulo está localizado e acesse o endereço do módulo no navegador.

No modo Station, o endereço do módulo é o endereço IP atribuído pelo dispositivo hotspot Wi-Fi ao módulo; no modo AP, é o endereço definido por "Wifi AP IP Address".

Na página da web do módulo, clique no botão "Get Still" (Obter imagem estática) abaixo da barra de operação à esquerda para tirar uma foto e no botão "Start Stream" (Iniciar transmissão) para gravar um vídeo. Depois de tirar uma foto ou gravar um vídeo, a imagem será exibida na página da web.

Visualize a interface de operação do módulo no celular da seguinte maneira: você pode clicar em "Save" no canto superior direito da imagem para salvar a imagem.

ESP32-CAM module taking photogram

Inscreva-se

Inscreva-se na nossa lista de assinantes para receber atualizações mensais do blog, notícias sobre tecnologia e estudos de caso. Nunca enviaremos spam e você pode cancelar a assinatura a qualquer momento.

Sobre o autor

Picture of Aidan Taylor
Aidan Taylor

I am Aidan Taylor and I have over 10 years of experience in the field of PCB Reverse Engineering, PCB design and IC Unlock.

Precisa de ajuda?

Rolar para cima

Instant Quote