Guía para usar el ESP32-CAM en escaneo de códigos QR

El ESP32 es un microcontrolador de doble núcleo conocido por su capacidad de conectividad inalámbrica, convirtiéndose en la opción preferida por los entusiastas que buscan desarrollar proyectos innovadores en el ámbito del Internet de las Cosas (IoT). La variante ESP32-CAM combina esta potente unidad de procesamiento con un módulo de cámara, brindando oportunidades únicas para crear aplicaciones interactivas y funcionales.

Uno de los proyectos más interesantes que se pueden realizar con el ESP32-CAM es el escaneo de códigos QR. Estos códigos, que se asemejan a un código de barras cuadrado, almacenan información útil como enlaces a sitios web o detalles de productos. Gracias a la versatilidad del ESP32-CAM, puedes leer estos códigos de forma sencilla y explorar su contenido.

¿Estás listo para crear tu propio escáner de códigos QR? Vamos a reunir las piezas necesarias y escribir el código para hacerlo funcionar.

Índice de contenido
  1. Materiales necesarios para el proyecto
  2. Conexión del ESP32-CAM a la computadora
    1. Opción 1: ESP32-CAM básico + Adaptador FTDI
    2. Opción 2: ESP32-CAM básico + Adaptador ESP32-CAM-MB
    3. Opción 3: Módulo ESP32-CAM-CH340
  3. Configuración del Arduino IDE
    1. Instalación de la placa ESP32
    2. Selección de la placa y el puerto
  4. Instalación de la biblioteca para el lector de QR
  5. Programación del ESP32-CAM
  6. Prueba del escáner de códigos QR

Materiales necesarios para el proyecto

Para llevar a cabo este proyecto, necesitarás reunir los siguientes elementos:

  • Módulo ESP32-CAM: Este será el cerebro de tu proyecto, encargado de procesar la información del código QR.
  • Cable micro USB: Permite alimentar y programar el ESP32-CAM desde tu computadora.
  • Adaptador FTDI o Adaptador ESP32-CAM-MB (opcional): Si tu ESP32-CAM no cuenta con un convertidor USB a serie, necesitarás este adaptador para cargar el código.
  • Computadora con Arduino IDE: Herramienta esencial para escribir y cargar el código en tu ESP32.
  • Código QR para escanear: Puedes generar uno en línea como parte de tu prueba.

Al seleccionar tu placa ESP32-CAM, es crucial elegir la correcta. Opta por una que pueda programarse fácilmente desde tu computadora y que se pueda alimentar posteriormente. Las versiones con la placa hija ESP32-CAM-MB o el modelo ESP32-CAM-CH340 son excelentes elecciones, ya que cuentan con un puerto USB para programación y alimentación. Evita las placas ESP32-CAM sin modificar, ya que requieren un convertidor USB a serie que puede que no tengas a mano.

Conexión del ESP32-CAM a la computadora

Aunque el módulo ESP32-CAM es poderoso, carece de una interfaz USB integrada para la programación y comunicación con tu computadora. Esto significa que necesitarás un poco de ayuda para comenzar. Aquí te presentamos tres opciones principales:

Opción 1: ESP32-CAM básico + Adaptador FTDI

Si cuentas con un módulo ESP32-CAM básico, puedes utilizar un adaptador USB a serie (FTDI) para conectarlo a tu computadora. Asegúrate de que el jumper del adaptador esté configurado para 5V, ya que es la tensión que utilizarás para alimentar el ESP32-CAM.

Recuerda que el pin GPIO 0 debe estar conectado a tierra mientras programas el ESP32-CAM. Una vez finalizada la carga del código, desconecta esta conexión para que el módulo funcione normalmente. Ten en cuenta que deberás hacer esta conexión cada vez que quieras cargar un nuevo sketch.

Opción 2: ESP32-CAM básico + Adaptador ESP32-CAM-MB

Programar el ESP32-CAM utilizando un adaptador FTDI puede resultar complicado. Por esta razón, muchos vendedores ofrecen el módulo ESP32-CAM junto con una placa hija llamada ESP32-CAM-MB. Simplemente apilas el ESP32-CAM sobre la placa hija, conectas un cable micro USB y presionas el botón de "Upload" para programar tu placa. ¡Así de fácil!

Opción 3: Módulo ESP32-CAM-CH340

Si tienes un módulo ESP32-CAM-CH340, ¡estás de suerte! Esta variante incluye un chip USB a serie CH340 en la placa, lo que elimina la necesidad de hardware adicional. Conéctalo a tu computadora mediante un cable micro USB y estarás listo para comenzar.

Recuerda que, al igual que con el adaptador FTDI, deberás conectar el pin GPIO0 a GND durante la programación.

Configuración del Arduino IDE

Independientemente de la opción que elijas, la configuración en el Arduino IDE será la misma.

Instalación de la placa ESP32

Para poder usar el ESP32-CAM, o cualquier ESP32, con el Arduino IDE, primero debes instalar la placa ESP32 (también conocida como el núcleo Arduino ESP32) a través del Gestor de Placas de Arduino. Si aún no lo has hecho, sigue este tutorial para instalar la placa ESP32.

Selección de la placa y el puerto

Una vez que hayas instalado el núcleo de Arduino ESP32, reinicia tu IDE y haz clic en “Seleccionar otra placa y puerto...” en el menú desplegable superior. Aparecerá una nueva ventana. Busca el tipo específico de placa ESP32 que estás utilizando (en este caso, es el AI Thinker ESP32-CAM). Luego, selecciona el puerto que corresponde a tu placa ESP32-CAM, que normalmente está etiquetado como “/dev/ttyUSB0” (en Linux o macOS) o “COM6” (en Windows).

¡Y eso es todo! Tu Arduino IDE ahora está configurado para trabajar con el ESP32-CAM.

Instalación de la biblioteca para el lector de QR

La biblioteca de Alvaro Viebrantz es una de las mejores opciones para que tu ESP32-CAM pueda escanear códigos QR. Esta biblioteca es autoconclusiva y funciona totalmente en el ESP32-CAM. Lamentablemente, no está disponible en el gestor de bibliotecas de Arduino, por lo que deberás instalarla manualmente.

Para descargar la biblioteca, simplemente haz clic en el enlace proporcionado. Luego, abre el Arduino IDE, ve a Sketch > Incluir biblioteca > Añadir biblioteca .ZIP y selecciona el archivo ZIP descargado.

Si todo funciona correctamente, recibirás un mensaje que indica “Biblioteca instalada correctamente desde el archivo ESP32QRCodeReader-master.zip”.

Programación del ESP32-CAM

La biblioteca ESP32QRCodeReader incluye dos ejemplos. Para acceder a los ejemplos, navega a Archivo > Ejemplos > ESP32QRCodeReader.

Vamos a probar el ejemplo básico.

#include <Arduino.h>
#include <ESP32QRCodeReader.h>

ESP32QRCodeReader reader(CAMERA_MODEL_AI_THINKER);

void onQrCodeTask(void *pvParameters) {
  struct QRCodeData qrCodeData;

  while (true) {
    if (reader.receiveQrCode(&qrCodeData, 100)) {
      Serial.println("Found QRCode");
      if (qrCodeData.valid) {
        Serial.print("Payload: ");
        Serial.println((const char *)qrCodeData.payload);
      } else {
        Serial.print("Invalid: ");
        Serial.println((const char *)qrCodeData.payload);
      }
    }
    vTaskDelay(100 / portTICK_PERIOD_MS);
  }
}

void setup() {
  Serial.begin(115200);
  Serial.println();

  reader.setup();

  Serial.println("Setup QRCode Reader");

  reader.beginOnCore(1);

  Serial.println("Begin on Core 1");

  xTaskCreate(onQrCodeTask, "onQrCode", 4 * 1024, NULL, 4, NULL);
}

void loop() {
  delay(100);
}

Prueba del escáner de códigos QR

Cuando estés listo, haz clic en el botón “Upload” en el Arduino IDE para transferir el código a tu ESP32-CAM. Una vez que la carga esté completa, si estás utilizando un adaptador FTDI o un módulo ESP32-CAM-CH340, asegúrate de desconectar el pin GPIO 0 de GND. Este paso es crucial para que el ESP32-CAM funcione correctamente en su operación normal.

A continuación, abre el Monitor Serial dentro del IDE de Arduino y establece la velocidad de baudios a 115200. Para asegurarte de que el ESP32-CAM comience a ejecutar tu código recién subido, presiona rápidamente el botón RST. Deberías ver una salida similar a esta:

En este punto, estás listo para escanear códigos QR. Prueba con este código QR (creado utilizando the-qrcode-generator.com):

Al principio, podrías observar mensajes como “Found QRCode Invalid: ECC failure” en el Monitor Serial. No te preocupes, esto es normal. Acerca y aleja lentamente el código QR de la cámara hasta que sea reconocido correctamente. Cuando el ESP32-CAM decodifique exitosamente el código QR, el mensaje en el Monitor Serial mostrará el contenido que contiene.

¡Felicidades, has construido tu propio escáner de códigos QR!

Carlos Julián

Carlos Julián es el fundador de Ingtelecto, es Ingeniero Mecatrónico, Profesor y Programador, cuenta con una Maestria en Ciencias de la Educación, creador de contenido activo a través de TikTok @carlosjulian_mx

Estos temas te pueden interesar

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Tu puntuación: Útil

Subir