Skip to Content

Programando el ESP32-WROVER CAM

Programando el ESP32-WROVER CAM

En este tutorial aprenderás cómo configurar el Arduino IDE para programar la placa Freenove ESP32-WROVER CAM. La placa es comparable a la ESP32-CAM con una cámara OV2640 y una interfaz para tarjeta SD, pero ofrece más pines GPIO y es más fácil de programar que las placas ESP32-CAM antiguas.

Partes necesarias

Necesitarás una placa Freenove ESP32-WROVER CAM para seguir este tutorial. Normalmente la placa viene con extras como una tarjeta SD, un lector de tarjetas SD y un cable USB-C, pero en caso de que falten, también he puesto enlaces a ellos a continuación.

ESP32-WROVER CAM

Cable USB C

Lector de tarjetas SD

Tarjeta MicroSD 16GB

Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.

Características de la placa Freenove ESP32-WROVER CAM

La placa Freenove ESP32-WROVER CAM cuenta con un microprocesador de doble núcleo de 32 bits (ESP32-Wrover-E chip) con 80~240 MHz y 520KB de SRAM, 4 MB de Flash, 8 MB de PSRAM, Wi-Fi 2.4 GHz y Bluetooth 4.2 (LE) integrados, una ranura para tarjeta microSD y una cámara OV2640. La imagen a continuación muestra el frente y el reverso de la placa:

Front and Back of the ESP32-WROVER CAM board
Frontal y trasera de la placa ESP32-WROVER CAM

Ten en cuenta que la versión antigua 1.x de la placa no tenía la ranura para tarjeta microSD, pero la versión actual 3.x sí la incluye.

La placa tiene un puerto micro-USB y un convertidor USB a UART integrado (CH340), lo que facilita la carga de código. Solo conecta la placa a tu PC mediante un cable USB y usa el Arduino IDE para escribir y descargar código.

A diferencia de algunas placas antiguas ESP32-CAM, no es necesario reiniciar manualmente la placa para entrar en modo de descarga ni usar un programador FTDI. Otra ventaja sobre la ESP32-CAM es que hay más pines GPIO libres disponibles.

La placa viene con un Github Repo que contiene documentación y ejemplos de programación en C y Python. También puedes descargar el ZIP-file with the documentation and examples. Y aquí tienes un enlace al Datasheet for the Wrover chip.

LEDs

La placa ESP32-WROVER tiene cuatro LEDs integrados. El LED verde ON indica que la placa tiene energía. El LED azul, etiquetado IO2, está conectado al GPIO2 y puede ser controlado por el usuario. Los LEDs amarillos RX y TX indican la transferencia de datos seriales. La imagen a continuación muestra los cuatro LEDs en la placa:

LEDs on ESP32-WROVER board
LEDs en la placa ESP32-WROVER

Pinout

Una característica útil de la placa es que los pines están anotados en la serigrafía indicando si son usados por la cámara (-), la tarjeta SD (~) o la PSRAM (*). Puedes ver un primer plano de algunos pines con sus marcas en la imagen a continuación:

Annotated Pins of the ESP32-WROVER CAM board
Pines anotados de la placa ESP32-WROVER CAM

Esto es muy útil cuando buscas pines GPIO libres, ya que no puedes usar los pines marcados si la cámara o la tarjeta SD están en uso. La siguiente imagen muestra el pinout completo de la placa (haz clic para ampliar):

Pinout of ESP32-WROVER CAM
Pinout de ESP32-WROVER CAM (source)

Pines de configuración (Strapping Pins)

Ten en cuenta que, además de los pines usados por la cámara o la tarjeta SD, hay cinco pines de configuración: MTDI, GPIO0, GPIO2, MTDO y GPIO5. Debes tener cuidado al usar estos pines, ya que deben estar en un estado específico cuando la placa se reinicia. La siguiente tabla muestra los pines de configuración y su función:

Table of Strapping pins of ESP32-WROVER CAM
Tabla de pines de configuración de ESP32-WROVER CAM (source)

Después de que el reinicio se complete, los pines de configuración pueden funcionar como pines GPIO normales, pero debes asegurarte de que estén conectados a un circuito externo de alta impedancia durante el reinicio, de lo contrario la placa podría no arrancar correctamente.

Preparando el Arduino IDE para ESP32-WROVER CAM

Si quieres programar el ESP32-WROVER CAM desde el Arduino IDE, necesitas poder comunicarte con la placa y tener instalado el software (core) para la placa. En las siguientes dos secciones explicaremos qué debes hacer.

Instalar el driver CH340

La placa ESP32-WROVER CAM se comunica mediante un chip CH340 que permite programar la placa por USB. Si nunca has programado otras placas no-Arduino, puede que necesites instalar el driver CH340. Aquí tienes un enlace al driver software for the CH340 para tu sistema operativo (Windows, Mac, Linux).

En Windows puedes comprobar si el CH340 está instalado abriendo el Administrador de dispositivos y buscando bajo Puertos el Puerto USB-SERIAL CH340 como se muestra a continuación. Esto solo funcionará si tienes la placa conectada a tu PC mediante el cable USB.

CH340 Driver in Windows Device Manager
Driver CH340 en el Administrador de dispositivos de Windows

Si no está instalado, descarga el driver desde el Repo, por ejemplo CH341SER.EXE para Windows, ejecútalo y haz clic en INSTALL:

Installing the CH340 Driver under Windows
Instalando el driver CH340 en Windows

Luego verifica de nuevo en el Administrador de dispositivos si el driver está instalado y la placa está conectada a un puerto COM.

Instalar el Core ESP32

A continuación necesitamos instalar el Core ESP32 para habilitar el soporte de placas ESP32 dentro del Arduino IDE. Instalar el Core ESP32 es sencillo. Solo inicia tu Arduino IDE y sigue los pasos que se describen a continuación. Si tienes problemas, puedes encontrar instrucciones más detalladas en nuestro tutorial How to Program ESP32 with Arduino IDE.

URLs adicionales para el gestor de placas

Primero abre el diálogo de Preferencias seleccionando «Preferences…» en el menú «File»:

Open Preferences Dialog
Abrir diálogo de Preferencias

Esto abrirá el diálogo de Preferencias que se muestra a continuación. En la pestaña Settings encontrarás un cuadro de edición en la parte inferior del diálogo etiquetado como «URLs adicionales para el gestor de placas«:

En este campo copia la siguiente URL: «https://espressif.github.io/arduino-esp32/package_esp32_dev_index.json«

Esto indicará al Arduino IDE dónde encontrar las librerías core del ESP32. A continuación instalaremos las librerías core del ESP32 usando el Gestor de placas.

Gestor de placas

Abre el GESTOR DE PLACAS haciendo clic en el icono de la placa en la barra lateral del Arduino IDE:

Board icon in Sidebar
Icono de placa en la barra lateral

Verás aparecer el GESTOR DE PLACAS a la derecha de la barra lateral. Escribe «ESP32» en el campo de búsqueda en la parte superior y deberías ver dos tipos de placas ESP32; las «Arduino ESP32 Boards» y las placas «esp32 de Espressif». Queremos las librerías esp32 de Espressif. Haz clic en el botón INSTALL y espera hasta que la descarga e instalación se completen.

Install ESP32 Core libraries
Instalar librerías Core ESP32

Una vez instalado, tu Gestor de placas debería verse así, aunque la versión real (aquí 3.0.0-a) podría ser diferente.

ESP32 core installed
Core ESP32 instalado

En el siguiente paso, te mostraré cómo seleccionar la placa ESP32 para el ESP32-WROVER CAM.

Seleccionar ESP32 Wrover Module

Haz clic en el selector de placas. En el ejemplo a continuación, muestra un Arduino Uno como placa seleccionada (lo cambiaremos):

Bord selector
Selector de placa

Al hacer clic en el nombre de la placa seleccionada actualmente (Arduino Uno), se abrirá el diálogo de selección de placa. En el cuadro de búsqueda escribe «wrover» y selecciona el «ESP32 Wrover Module» como se muestra a continuación:

Select ESP32 Wrover Module
Seleccionar ESP32 Wrover Module

Si la placa está conectada a tu PC vía USB, también deberías poder seleccionar el puerto COM. En la captura de pantalla es COM5, pero en tu caso podría ser otro puerto COM.

Programar el ESP32-WROVER CAM

Si pudiste seleccionar el ESP32 Wrover Module como placa y la conexión a un puerto COM funciona, ahora puedes programar tu placa ESP32-WROVER CAM.

Blink

Como prueba sencilla, descargamos el habitual Blink program. El LED integrado controlable por el usuario de la placa ESP32-WROVER CAM está conectado al GPIO 2. Por lo tanto, establecemos la constante ledPin a 2 y luego encendemos el LED durante un segundo y lo apagamos durante otro segundo:

const byte ledPin = 2;

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  digitalWrite(ledPin, HIGH);
  delay(1000);   
  digitalWrite(ledPin, LOW); 
  delay(1000);  
}

Si esto funciona, ¡felicidades! Has programado con éxito tu ESP32-WROVER CAM. En la siguiente sección, te mostraré cómo ejecutar el ejemplo WebServer que permite transmitir vídeo a tu ordenador.

Servidor Web de transmisión de vídeo

En tu Arduino IDE ve a File -> Examples -> ESP32 -> Camera y abre el ejemplo CameraWebServer :

CameraWebServer Example
Ejemplo CameraWebServer

A continuación, tendrás que modificar un poco el código en CameraWebServer.ino. Quita los signos de comentario // para la definición de CAMERA_MODEL_WROVER_KIT y asegúrate de que todas las demás definiciones de cámara estén comentadas como se muestra a continuación:

Definición de CAMERA_MODEL_WROVER_KIT

En el mismo archivo, un poco más abajo, también debes introducir las credenciales Wi-Fi de tu red doméstica. Sustituye SSID y PASSWORD por las credenciales de tu red en las siguientes constantes:

Wi-Fi network credentials
Credenciales de red Wi-Fi

Después de subir el código a tu ESP32-WROVER CAM deberías ver el siguiente texto en el Monitor Serial:

IP address of CameraWebServer
Dirección IP de CameraWebServer

Fíjate en la última línea, que te proporciona la URL (dirección IP) donde está corriendo el servidor web. Copia y pega esta URL en la barra de direcciones de tu navegador (será diferente para tu placa).

Deberías ver entonces la siguiente página web que transmite imágenes de la cámara de tu ESP32-WROVER a tu navegador web:

CameraWebServer in Web browser
CameraWebServer en el navegador web

Recuerda pulsar «Start Stream» al final de la página para iniciar la transmisión de vídeo. En la imagen arriba la transmisión ya está iniciada y el botón dice «Stop Stream».

Start Stream Button
Botón Start Stream

Siéntete libre de probar los diferentes ajustes de la cámara. Notarás que la tasa de frames baja bastante para imágenes de mayor resolución.

Conclusiones

En este tutorial aprendiste a programar la placa ESP32-WROVER CAM. Solo te mostré los ejemplos Blink y WebServer, pero el repositorio de Github tiene más ejemplos de código para el ESP32-WROVER CAM, especialmente relacionados con Wi-Fi y Bluetooth.

Comparado con ESP32-CAM, el ESP32-WROVER CAM tiene la ventaja de que más pines GPIO están libres para usar y que la programación de la placa no requiere hardware adicional, como un shield de programación o un programador FTDI.

Por otro lado, el ESP32-CAM es más pequeño, más barato y tiene un LED flash, lo que es una clara ventaja para algunos proyectos. Si necesitas una placa aún más pequeña, echa un vistazo a la placa XIAO-ESP32-S3-Sense. No tiene el LED flash pero tiene más GPIO libres, lo que permitiría añadir un LED flash.

Si tienes alguna pregunta, no dudes en dejarla en la sección de comentarios.

¡Feliz bricolaje! 😉