viernes, 11 de julio de 2025

Uso de WIFI con la cámara Sentry 2

La cámara Sentry2 tiene un microcontrolador WiFi ESP8285 integrado que se puede programar directamente desde el IDE de Arduino para hacer reconocimiento online, transmisión de imágenes, AIoT y otras aplicaciones. El ESP8285 también se puede utilizar como controlador para K210, lo que supone una ayuda para la programación de IA sin dispositivo externo.

Entorno de desarrollo

Añadir el soporte para las placas ESP8266

En primer lugar se debe descargar e instala el IDE de Arduino: https://www.arduino.cc/en/software/

Una vez abierto el IDE de Arduino entraremos en la opción Archivo de la barra de menús superior y en este submenú en la opción Preferencias.

Haciendo clic sobre el recuadro indicado con la flecha roja.

Aparece el siguiente cuadro en donde podemos introducir la URL http://arduino.esp8266.com/stable/package_esp8266com_index.json en las URLs adicionales del gestor de placas. Posteriormente se han de guardar los cambios haciendo clic en ACEPTAR.

En la barra de menús superior abriremos Herramientas y después Placa y Gestor de placas.

En la ventana Filtre su búsqueda escribimos esp8266 y después pulsamos en INSTALAR.

Ahora aparece así.

Prueba sencilla

En la barra de menús superior abrimos Herramientas, Placa, ESP8266, Generic ESP8285 Module.

Ahora vamos a abrir un ejemplo de programa para cargar en el ESP8266. En la barra superior de menús abrimos Archivo, Ejemplos, ESP8266, Blink.

A continuación se muestra el listado de este programa.

 /*

  ESP8266 Blink by Simon Peter
  Blink the blue LED on the ESP-01 module
  This example code is in the public domain

  The blue LED on the ESP-01 module is connected to GPIO1
  (which is also the TXD pin; so we cannot use Serial.print() at the same time)

  Note that this sketch uses LED_BUILTIN to find the pin with the internal LED
*/

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);  // Initialize the LED_BUILTIN pin as an output
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, LOW);  // Turn the LED on (Note that LOW is the voltage level
  // but actually the LED is on; this is because
  // it is active low on the ESP-01)
  delay(1000);                      // Wait for a second
  digitalWrite(LED_BUILTIN, HIGH);  // Turn the LED off by making the voltage HIGH
  delay(2000);                      // Wait for two seconds (to demonstrate the active low LED)
}

Para cargar el programa conectamos la cámara Sentry2 al ordenador con un cable USB-C. A continuación en la barra de menús superior del IDE de Arduino abrimos Herramientas y cambiamos la configuración de los siguientes elementos:

Builtin Led: “4”.

CPU Frequency:“80 MHz” o “160 MHz”

Upload Speed:“57600”

Reset Method:“no dtr (aka ck)”

Puerto:Se ha de seleccionar el puerto al que está conectada la cámara Sentry2.

Para cargar el programa en el ESP8266 desde el IDE de Arduino primeramente se ha de mover el joystick de la cámara hacia abajo y mantenerlo en esa posición (NO presionarlo verticalmente). A continuación en el IDE de Arduino, se hace clic en el botón para subir el programa, para iniciar la compilación y subida. Se ha de mantener el joystick hacia abajo hasta que en la pantalla del IDE se muestre Escribiendo a las… (xx% de progreso) y esperar a que se cargue el 100%.

Mientras se está cargando el programa el led azul junto al joystick está encendido permanentemente y el led verde parpadea rápidamente. A continuación se reinicia la cámara Sentry2 y se ejecuta el algoritmo “Custom”. Ahora el LED azul de WiFi se mantendrá brillante y el LED personalizado parpadeará.

Si cuesta cargar el programa, se puede optar entre una de las dos opciones siguientes:

Método 1: Estando la cámara apagada, presione el joystick hacia abajo sin soltarlo, luego conecte el USB para encenderla y suelte el botón.

Método 2: Estando la cámara encendida, presione el joystick hacia abajo sin soltarlo, luego presione el botón RESET y suéltelo.


Demo WiFi

A continuación se pueden ver algunos programas WiFi de código abierto.

NOTA: El AI Cloud Servide (servicio de  IA en la nube) de terceros puede requerir una cuenta y una cuota para utilizarlo. 

NOTA: Estos ejemplos no garantizan el rendimiento, la seguridad o la disponibilidad de la identificación.

Bemfa AIoT - Carga de imágenes

 

Bemfa AIoT - MQTT para la cámara Sentry 2

Código de Arduino: sentry2_esp8285_bemfa_mqtt_run_vision.zip


Baidu AI - Clasificación de ingredientes por URL

Código Arduino: sentry2_esp8285_baidu_ingrediente_clasificar_por_url.zip

Baidu Cloud - Identificación de frutas

Este ejemplo se utiliza para implementar el reconocimiento de frutas y verduras de Baidu Cloud. Se pueden modificar otros tipos de reconocimiento de objetos según la documentación de Baidu Cloud.

En este ejemplo, la imagen primero se transferirá al alojamiento de imágenes de Bemfa Cloud para generar la dirección del enlace URL de la imagen y luego se llamará al enlace de la imagen en Baidu Cloud para el reconocimiento de la imagen.

Si necesita identificar otros objetos, consulte los documentos técnicos relacionados de Baidu Cloud.

Reconocimiento de imágenes: https://ai.baidu.com/ai-doc/IMAGERECOGNITION/Kk3bcxbxj

Reconocimiento de texto: https://ai.baidu.com/ai-doc/OCR/Ek3h7xypm

Reconocimiento facial: https://ai.baidu.com/ai-doc/FACE/7k37c1jfr

Análisis del cuerpo humano: https://ai.baidu.com/ai-doc/BODY/lk3cpywzd

Nota: Algunos proyectos de Bemfa Cloud y Baidu Cloud son de pago o tienen un tiempo de uso gratuito limitado. ¡Lea atentamente sus documentos oficiales y términos de uso!

Baidu AI - Clasificación de ingredientes por imagen

Código Arduino: sentry2_esp8285_baidu_ingrediente_clasificar_por_imagen.zip

Este ejemplo se utiliza para implementar el reconocimiento de frutas y verduras de Baidu Cloud. Se pueden modificar otros tipos de reconocimiento de objetos según la documentación de Baidu Cloud.

Sentry2 puede generar directamente imágenes jpg codificadas en base64 y esp8285 puede leerlas mediante instrucciones.

Debido al tamaño de memoria limitado de esp8285, este modo utiliza una imagen pequeña de 240x180, lo que tendrá un cierto impacto en el efecto de reconocimiento.

Nota: Algunos proyectos de Baidu Cloud son de pago o tienen tiempos de uso gratuito limitados. ¡Lea atentamente sus documentos oficiales y términos de uso!

Baidu AI - Reconocimiento de matrículas

Este ejemplo se utiliza para implementar el reconocimiento de matrículas de Baidu Cloud.

Código Arduino: sentry2_esp8285_baidu_ocr_license_plate_by_image.zip

Baidu AI - OCR (Reconocimiento óptico de caracteres)

Este ejemplo se utiliza para implementar el reconocimiento de texto general OCR de Baidu Cloud, compatible con chino, inglés, japonés, coreano, francés, español, etc.

Código Arduino: sentry2_esp8285_baidu_ocr_general_basic_by_image.zip

Baidu AI - Clasificación general de objetos

Este ejemplo se utiliza para implementar el reconocimiento de escenas generales de Baidu Cloud, como gatos, perros, automóviles, casas, dibujos animados, árboles, flores, accesorios, etc.

Código Arduino: sentry2_esp8285_baidu_general_by_image.zip

Baidu AI - Gestos

Este ejemplo se utiliza para implementar el reconocimiento de gestos en Baidu Cloud, que incluye 24 gestos: puño, OK, rezar, reverencia, adiós, corazón con una mano, me gusta, insulto, te amo, palma hacia arriba, corazón con dos manos (3 tipos), números (9 tipos), roca y dedo medio.

Código Arduino: sentry2_esp8285_baidu_gesture_by_image.zip

Microsoft Azure - Clasificación general de objetos

Necesitas una cuenta de Azure para utilizar esta demostración. Tienes más detalles en la página de inicio de Azure: https://azure.microsoft.com/es-es/

Código Arduino: sentry2_esp8285_microsoft_azure_detectar_objetos_por_imagen.zip

Transmisión de imágenes y mando a distancia

Este programa de muestra se utiliza para la visualización de transmisión de imágenes en tiempo real y el control remoto WiFi en la red de área local.

Al pulsar el botón en la pantalla, se mostrarán los caracteres correspondientes en el puerto serie. Analizando estos caracteres, podrá realizar la función de control remoto del coche.

Código Arduino: sentry2_esp8285_transferencia_de_imagen_remota.zip

Interfaz de transmisión de imágenes:

Interfaz de transmisión de imágenes con botones de control remoto:

Llamando a algoritmos locales en chips WiFi

Este programa de ejemplo puede realizar el algoritmo de control de K210 en el chip ESP8285, utilizando la biblioteca estándar de Sentry_Arduino

Por lo tanto, los usuarios pueden ejecutar algoritmos sin control maestro externo.

Código Arduino: sentry2_esp8285_run_vision.zip










No hay comentarios: