ESP32-CAM, es un dispositivo que puede llamarse un todo en uno. Aparte de la conectividad Wifi y Bluetooth que viene de fábrica, pines GPIO, se le han añadido dos opciones más. Lleva integrado una pequeña cámara de video y una conexión para una tarjeta MicroSD, donde podremos almacenar fotos o videos.
La tercera es su bajo precio, lo que le pone la puntilla para que sea un dispositivo muy utilizado en IoT, además, conectarlo a Home Assistant y que forme parte de tu sistema domótico, es muy fácil.
Aplicaciones típicas:
Toma de fotos.
Streaming de video.
Reconocimiento facial.
Detector de movimiento.
Todo esto con un peso de 20 gramos y unas pequeñas dimensiones.
Características ESP32 CAM
Tiene menos pines GPIO que un módulo ESP32 normal, ya que muchos de esos pines se utilizan para la gestión de la cámara y el conector microSD, aun así tienes a tu disposición 9 pines. Verás a continuación que serán algunos menos.
Esquema ESP32 CAM
Lógicamente, tanta concentración de posibilidades en tan poco espacio provoca que se vayan perdiendo pines, por ejemplo, este dispositivo no tiene puerto USB, que comúnmente es la vía que utilizamos para cargar los programas a los distintos dispositivos ESPxx, Arduino etc.
Al no tener este puerto USB debemos de utilizar 6 pines para poder trabajar con el ESP32 CAM, dos para subir datos al ESP32 CAM, dos para transmitir datos TX/RX entre ordenador y ESP32 CAM, y dos para alimentar la placa. Todo esto te lo explico más adelante.
Una cámara de 2 Megapíxel, la posibilidad de añadir una tarjeta microSD de hasta 4 GB, más la opción de antena Wi-Fi externa cierran las características más importantes de este dispositivo
Partes más importantes de ESP32-CAM
Especificaciones
- Módulo ESP32-S: junto con la antena Wifi incorporada componen el ESP32
- Wi-Fi: 802.11b/g/n/e/i
- Seguridad: WPA/WPA2/WPA2-Enterprise/WPS
- CPU: 32-bit CPU de bajo consumo (2 cores).
- Velocidad de reloj: hasta 160 MHz.
- Bluetooth: Bluetooth 4.2 con BLE.
- Interfaces: UART, SPI, I2C and PWM. Hasta 9 pines GPIO
- RAM: 520 KB SRAM, externa 4 MB PSRAM
- Soporte microSD: hasta 4GB
- Múltiples modos de reposo (sleep modes):
- Deep-sleep: máximo bajo consumo que puede alcanzar 6mA@5V.
- Moderm-sleep: hasta 20mA@5V.
- Light-sleep: hasta 6.7mA@5V.
- Firmware actualizable a través de OTA (Over-The-Air).
- Flash incorporado.
- Voltaje de alimentación: 5 V.
- Conector de antena externa: en situación de comunicaciones poco estables se puede añadir una antena externa.
- Cámara:
- Soporte para cámaras OV2640 y OV7670.
- JPEG (OV2640 soportada), BMP, GRAYSCALE.
- Sensor 2 Megapixel.
- Resolución UXGA 1622×1200 px.
- Transferencia de imagen entre 15 y 60 FPS.
Configuración de pines ESP32 CAM
GPIO 0
Este pin determina si el ESP32 está en modo carga (flashing mode) o no, esto es, si puedo o no subir código a mi ESP32 CAM. Internamente, está conectado a una resistencia pull-up interna de 10k ohmios.
Si conectas el pin GPIO 0 a GND, el ESP32 CAM pasa al modo carga y puedes proceder a subir tu código al dispositivo, una vez subido, desconectamos este pin de GND, pulsamos el botón de RESET y podemos trabajar con el ESP32 CAM normalmente con tu código subido.
Comunicación Serie GPIO 1 y GPIO 3
GPIO 1 y GPIO 3 son los pines preparados para una comunicación serie (GPIO 1 ⇒ TX y GPIO 3 ⇒ RX). Como el ESP32 CAM no tiene un convertidor USB-Serial incorporado tienes que utilizar un adaptador que realiza esta comunicación entre el ESP32 CAM y tu ordenador.
Conexión tarjeta MicroSD
En la siguiente tabla puedes ver los pines usados con la tarjeta microSD cuando está en funcionamiento, esto quiere decir que si no utilizas esta funcionalidad puedes utilizar estos pines para otros menesteres.
Por ejemplo, para comunicaciones con el protocolo I2C: GPIO14 ⇒ SDA y GPIO 15 ⇒ SCL
MicroSD | ESP32 CAM |
CLK | GPIO 14 |
CMD | GPIO 15 |
DATA0 | GPIO 2 |
DATA1 / FLASH | GPIO 4 |
DATA2 | GPIO 12 |
DATA3 | GPIO 13 |
GPIO 4
ESP32 CAM tiene un LED muy brillante que puede actuar de como flash para la cámara. Internamente, está conectado a GPIO 4.
GPIO 33
Este pin hace referencia a un LED incluido en la ESP32 CAM, cerca del regulador de tensión y el botón de reset. Un LED siempre es útil para ayudarnos a ver, de una manera visual, lo que está pasando.
Trabaja con la lógica invertida, es decir, si envías un LOW se enciende y si envías un HIGH se apaga.
Conexiones de la cámara
Conexiones entre la cámara y el ESP32 CAM
OV2640 | ESP32 CAM | NOMBRE DE LA VARIABLE PARA SU USO EN EL CODIGO |
D0 | GPIO 5 | Y2_GPIO_NUM |
D1 | GPIO 18 | Y3_GPIO_NUM |
D2 | GPIO 19 | Y4_GPIO_NUM |
D3 | GPIO 21 | Y5_GPIO_NUM |
D4 | GPIO 36 | Y6_GPIO_NUM |
D5 | GPIO 39 | Y7_GPIO_NUM |
D6 | GPIO 34 | Y8_GPIO_NUM |
D7 | GPIO 35 | Y9_GPIO_NUM |
XCLK | GPIO 0 | XCLK_GPIO_NUM |
PCLK | GPIO 22 | PCLK_GPIO_NUM |
VSYNC | GPIO 25 | VSYNC_GPIO_NUM |
HREF | GPIO 23 | HREF_GPIO_NUM |
SDA | GPIO 26 | SIOD_GPIO_NUM |
SCL | GPIO 27 | SIOC_GPIO_NUM |
POWER PIN | GPIO 32 | PWDN_GPIO_NUM |
Material necesario ESP32 CAM
FDTI para ESP32 CAM
El ESP32 CAM no tiene puerto USB, literalmente no cabe, para comunicarnos (desde nuestro ordenador) con el ESP32 CAM tenemos que utilizar un adaptador FTDI (como el siguiente esquema).
Esquema de conexiones
Como ves en el dibujo he configurado a 5V la alimentación para el ESP32 CAM, las pruebas que he realizado con 3.3V me han dado problemas sobre todo si le añades al ESP32 CAM algún sensor como un sensor de movimiento (PIR) o temperatura (DHT22)
Si te fijas los pines de TX y RX van cruzados contra el ESP32 CAM para que el TX del adaptador se comunique con el RX del ESP32 CAM y viceversa.
Por último, para que el ESP32 CAM se ponga en modo programación y puedas subir tu código desde el ordenador, hay que conectar un puente entre GPIO 0 y GND.
Como programar tu ESP32 CAM
Sigue estos pasos para realizar un test de comunicaciones.
Paso 1. Selecciona la tarjeta Ai Thinker ESP 32 en tu IDE Arduino
Si la opción no aparece, ESP32 Arduino puede suceder que no esté instalada esta tarjeta en el IDE de Arduino. Debes entrar a las preferencias del IDE Arduino. Luego donde indica Gestor de URLs Adicionales de Tarjetas debes ingresar el siguiente enlace.
- https://dl.espressif.com/dl/package_esp32_index.json
Paso 2. Prepara el código
Vacío, solo queremos ver si tenemos comunicación con el ESP32 CAM y seleccionar correctamente el puerto USB en tu entorno de programación.
void setup() {
// put your setup code here, to run once:
}
void loop() { // put your main code here, to run repeatedly:
} |
Paso 3. Conectar los pines del adaptador USB como se muestra en la foto de Esquema de conexiones
Paso 4. Puentear GPIO 0 y GND
Paso 5. Pulsar el botón de RESET del ESP32 CAM
Paso 6. Subir el código
En rojo se puede ver el registro de un ejemplo de carga correcta del programa.
Si el código subido fuese útil, los siguientes pasos son:
- Abres el Serial Monitor del IDE Arduino.
- Quitas el puente entre GPIO 0 y GND.
- Pulsas el botón RESET del ESP32 CAM.
- El ESP32 CAM carga el programa subido y ves su ejecución a través del Serial Monitor.
Programador ESP32 CAM MB
Esta es la opción perfecta si no quieres meterte en muchos líos, sustituye completamente al anterior Adaptador FTDI. Esta placa se ajusta perfectamente al ESP32 CAM y provee al ESP32 CAM de un conector mini-USB hembra y un botón de RESET más accesible.
Es compatible con la cámara OV2640.
Valoraciones
No hay valoraciones aún.