Introducción al uso de ESP32-CAM para principiantes
En la actualidad, el acceso a tecnología avanzada se ha vuelto más asequible que nunca. Un claro ejemplo de esto es el ESP32-CAM, una placa que ha revolucionado el mundo de la electrónica y la programación desde su lanzamiento en 2019. Este dispositivo, que combina conectividad Wi-Fi, una cámara y almacenamiento SD en un solo módulo, ofrece posibilidades emocionantes para proyectos de bricolaje a un precio sorprendentemente bajo. Si estás interesado en la creación de aplicaciones que requieran video, reconocimiento facial o sistemas de seguridad, el ESP32-CAM es una herramienta invaluable en tu caja de herramientas de DIY.
- Descripción general del hardware del ESP32-CAM
- Consumo de energía del ESP32-CAM
- Conexión de pines del ESP32-CAM
- Programación del ESP32-CAM
- Configurando el IDE de Arduino
- Ejemplo 1: Blink
- Más ejemplos de ESP32-CAM
- Ejemplo 2: Servidor de transmisión de video en vivo
- Conexión de una antena externa al ESP32-CAM
Descripción general del hardware del ESP32-CAM
El ESP32-CAM se basa en el chip ESP32-S, un sistema en chip (SoC) desarrollado por Ai-Thinker. Este microcontrolador no solo integra un procesador, sino que también incluye memoria RAM, almacenamiento y periféricos en un solo chip, lo que lo hace extremadamente versátil. Vamos a desglosar sus características principales y entender lo que lo hace destacar.
El procesador ESP32-S
En el núcleo del ESP32-CAM se encuentra el ESP32-S, que cuenta con un microprocesador Tensilica Xtensa® LX6 de doble núcleo. Este procesador opera a una velocidad impresionante de 240 MHz, lo que lo hace ideal para tareas que requieren gran potencia de procesamiento, como la videoprocesamiento y el reconocimiento facial.
La memoria del ESP32-CAM
La memoria es un componente crítico para realizar operaciones complejas. Este módulo cuenta con 520 KB de RAM interna, que se encuentra integrada en el mismo chip. Sin embargo, para tareas que requieren mayor capacidad, el ESP32-CAM incluye además 4 MB de PSRAM externa, lo que ofrece suficiente espacio para aplicaciones que manejan audio y gráficos.
En cuanto al almacenamiento, el ESP32-S también incluye 4 MB de memoria flash interna, lo que permite guardar programas y datos de manera eficiente.
La cámara
La cámara OV2640 que incorpora el ESP32-CAM es uno de sus puntos más destacados. Con una resolución de 2 megapíxeles, permite capturar imágenes con una calidad de hasta 1600x1200 píxeles. Esta calidad es adecuada para diversas aplicaciones de vigilancia y monitoreo.
Además, el ESP32-CAM es compatible con una variedad de sensores de cámara, lo que le otorga versatilidad en diferentes proyectos.
Almacenamiento y conectividad
Una de las características más útiles del ESP32-CAM es su slot para microSD, que permite la expansión del almacenamiento. Esto es especialmente beneficioso para proyectos que requieren un registro constante de datos o la captura de imágenes.
La antena
El ESP32-CAM incluye una antena PCB de traza y un conector u.FL para una antena externa. Esta flexibilidad permite a los usuarios elegir la mejor opción según sus necesidades de conectividad. Un jumper de selección de antena facilita el cambio entre ambas opciones.
LEDs y su funcionalidad
El módulo también presenta un LED cuadrado blanco que funciona como un flash para la cámara, así como un LED rojo en la parte posterior que puede ser utilizado como indicador de estado y es programable a través de GPIO33.
Especificaciones técnicas
A continuación, se resumen las especificaciones más relevantes del ESP32-CAM:
- Procesadores:
- CPU: Microprocesador dual núcleo Xtensa LX6 a 240 MHz
- Co-procesador de ultra bajo consumo (ULP)
- Memoria:
- 520 KB de SRAM
- 4 MB de PSRAM externa
- 4 MB de memoria flash interna
- Conectividad inalámbrica:
- Wi-Fi: 802.11 b/g/n
- Bluetooth: v4.2 BR/EDR y BLE
- Cámara:
- Sensor OV2640 de 2 megapíxeles
- Formatos de salida: YUV422, YUV420, RGB565, entre otros
- Puede realizar video a 15 - 60 fps
- Seguridad:
- Soporte para WPA/WPA2
- Cifrado de arranque
- Gestión de energía:
- Regulador de bajo voltaje
- Consumo en modo de sueño profundo: 5μA
Consumo de energía del ESP32-CAM
El consumo de energía del ESP32-CAM varía según su uso. En modo inactivo, consume aproximadamente 80 mAh, mientras que durante la transmisión de video puede alcanzar entre 100 y 160 mAh. Si el flash está activado, el consumo puede llegar hasta 270 mAh.
Conexión de pines del ESP32-CAM
El ESP32-CAM consta de 16 pines, organizados para facilitar su uso. A continuación, se detalla la funcionalidad de cada grupo de pines:
- Pines de alimentación:
- 5V y 3V3. Se recomienda utilizar el pin de 5V para evitar problemas de alimentación.
- Pines GPIO:
- 10 pines GPIO están disponibles para ser configurados como UART, SPI, ADC, y más.
- Pines de microSD:
- Usados para la interfaz de la tarjeta microSD.
- Pines de ADC:
- Solo se exponen los pines de ADC2, que no son utilizables si Wi-Fi está habilitado.
- Pines de toque:
- Permiten la detección de cambio en la capacitancia.
- Pines PWM:
- 10 canales PWM controlados por un controlador PWM para motores y LEDs.
Programación del ESP32-CAM
Programar el ESP32-CAM puede ser un poco complicado, ya que no cuenta con un puerto USB integrado. Para cargar programas desde el IDE de Arduino, necesitarás un adaptador USB a serie, como el FTDI o el ESP32-CAM-MB.
Uso del adaptador FTDI
Si eliges utilizar el adaptador FTDI, sigue estos pasos para conectarlo al ESP32-CAM:
Asegúrate de que el jumper del FTDI esté configurado para 5V, ya que alimentaremos el ESP32-CAM con 5V. También es necesario conectar el pin GPIO 0 a tierra solo durante la programación; recuerda desconectar este pin después de cargar el código.
Uso del adaptador ESP32-CAM-MB (recomendado)
El adaptador ESP32-CAM-MB simplifica la programación del módulo. Simplemente coloca el ESP32-CAM en la placa, conecta un cable micro USB y presiona el botón de carga. Este adaptador incluye un conversor USB a serie CH340G y botones de RESET y BOOT.
Configurando el IDE de Arduino
Instalación de la placa ESP32
Para usar el ESP32-CAM con el IDE de Arduino, primero debes instalar el núcleo de ESP32 a través del Gestor de Placas de Arduino. Sigue un tutorial si aún no lo has hecho.
Seleccionando la placa y el puerto
Una vez que el núcleo de ESP32 esté instalado, reinicia el IDE de Arduino y selecciona AI-Thinker ESP32-CAM en Herramientas > Placa. Luego, conecta el ESP32-CAM a tu computadora y selecciona el puerto COM correspondiente.
Ejemplo 1: Blink
Ahora que has completado la configuración, es momento de probar tu primer programa. Vamos a cargar el clásico Blink, que utiliza el LED de flash de la cámara conectado al GPIO 4:
int flashPin = 4;
void setup() {
pinMode(flashPin, OUTPUT);
}
void loop() {
digitalWrite(flashPin, HIGH);
delay(1000);
digitalWrite(flashPin, LOW);
delay(1000);
}
Presiona el botón de cargar. Si usas el adaptador FTDI, recuerda desconectar GPIO 0 de tierra. Para ejecutar el código, puede que necesites presionar el botón de RESET en el módulo.
Más ejemplos de ESP32-CAM
El núcleo de Arduino para ESP32 incluye varios ejemplos que van desde escanear redes cercanas hasta crear un servidor web. Accede a estos ejemplos en Archivo > Ejemplos > ESP32.
Ejemplo 2: Servidor de transmisión de video en vivo
Vamos a ejecutar el sketch CameraWebServer, que convierte al ESP32-CAM en una webcam con detección de rostros y opciones de personalización:
Localiza este ejemplo en Archivo > Ejemplos > ESP32 > Camera > CameraWebServer.
Accediendo al servidor de transmisión de video
Una vez que hayas cargado el sketch, abre el monitor serial a 115200 baudios y presiona el botón de RESET. Deberías ver la dirección IP en el monitor serial. Ingresa esta dirección en tu navegador para comenzar la transmisión de video.
Puedes ajustar configuraciones como resolución y tasa de fotogramas desde la interfaz web, así como tomar fotos que se descargarán a tu computadora.
Conexión de una antena externa al ESP32-CAM
El ESP32-CAM también permite la conexión de una antena externa a través de un conector u.FL. Para cambiar a esta antena, simplemente retira el resistor de cero ohmios que conecta los pads de la antena PCB y colócalo en la ubicación del conector u.FL.
Esto es útil si estás trabajando a una distancia considerable de tu router, ya que una antena externa puede mejorar significativamente la conectividad.
Deja una respuesta
Estos temas te pueden interesar