Skip to main content

Guía Rápida para Usar Blynk

En este tutorial, proporcionaremos una guía rápida sobre cómo configurar el módulo Grove Vision AI con Wio Terminal para subir los datos de detección, tales como conteo de personas y valor de confianza de detección vía Wi-Fi, y luego utilizar el dashboard de la App móvil Blynk para visualizar la salida de detección del módulo Grove Vision AI.

Materiales Requeridos

Wio TerminalGrove Vision AI module

Preparación Preliminar

Conexión

En esta rutina, necesitamos conectar el módulo Vision AI en el lado izquierdo según el diagrama siguiente.

Preparación del Software

Paso 1. Necesitas instalar el software de Arduino.

Paso 2. Abre la aplicación de Arduino.

Paso 3. Agrega Wio Terminal al Arduino IDE.

Abre tu Arduino IDE, haz clic en Archivo > Preferencias, y copia la siguiente URL en el campo URLs adicionales de gestor de placas:

https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json

Luego haz clic en Herramientas > Placa > Gestor de Placas y busca Wio Terminal en el gestor.

Paso 4. Selecciona tu placa y puerto

Necesitarás seleccionar la opción correspondiente a tu Arduino en el menú Herramientas > Placa. Selecciona la Wio Terminal.

Selecciona el dispositivo serial de la placa Wio Terminal en el menú Herramientas -> Puerto. Probablemente sea COM3 o un número superior (COM1 y COM2 usualmente están reservados para puertos seriales de hardware). Para verificarlo, puedes desconectar tu placa Wio Terminal y volver a abrir el menú; la entrada que desaparezca será la placa Arduino. Reconecta la placa y selecciona ese puerto serial.

tip

Para usuarios de Mac, será algo como /dev/cu.usbmodem141401.

Si no puedes subir el sketch, probablemente sea porque el Arduino IDE no pudo poner la Wio Terminal en modo bootloader (debido a que el MCU estaba detenido o tu programa está manejando el USB). La solución es poner la Wio Terminal en modo bootloader manualmente.

Guía Paso a Paso

Paso 1. Crear una cuenta

Por favor ve al sitio web oficial de Blynk, y crea una cuenta. Se te pedirá tu correo electrónico para registrarte, y deberás verificarlo mediante un correo para completar el registro de tu cuenta.

Paso 2. Agregar una Nueva Plantilla

Una vez que inicies sesión en la consola de Blynk, cancela y omite el asistente emergente, y haz clic en el botón New Template para crear una nueva plantilla.

Sigue el asistente de configuración. En la ventana emergente, nombra tu plantilla y elige Seeed Wio Terminal como HARDWARE, y WiFi como CONNECTION TYPE.

Después de hacer clic en "done", deberías ver la página de la plantilla. Para confirmar toda la información de la nueva plantilla, haz clic en save en la esquina superior derecha.

Paso 3. Agregar un Nuevo Dispositivo

Después de agregar la plantilla, haz clic en la pestaña My Devices, y luego en el botón New Device.

Luego elige la opción From template.

Selecciona el nombre de la plantilla creada en el Paso 2 en el menú desplegable TEMPLATE. En este ejemplo se llama wio terminal vision ai, e ingresa un nombre para el dispositivo en el campo DEVICE NAME.

Después, la información del nuevo dispositivo se mostrará en un panel emergente. Verás el Template ID, Device Name y el Auth Token. Haz clic en Copy to clipboard para copiar y guardar esta información para uso posterior.

Paso 4. Agregar la biblioteca necesaria de Arduino

Necesitamos agregar la biblioteca necesaria de Arduino para utilizar el módulo Grove Vision AI con el Wio Terminal. Por favor haz clic en el ícono a continuación para descargar la biblioteca de Arduino.

Una vez descargado el archivo .zip, descomprímelo en la siguiente ruta:

  • En Windows: C:\Users\{Tu Nombre de Usuario}\Documents\Arduino\libraries
  • En Mac: /Users/{Tu Nombre de Usuario}/Documents/Arduino/libraries

Paso 5. Preparar el código del firmware

Podemos generar el código base para conectar el Wio Terminal al servidor de Blynk desde este enlace.

También hemos preparado un código de ejemplo completo para esta guía rápida, que se muestra a continuación:

// Template ID, Device Name and Auth Token are provided by the Blynk.Cloud
// See the Device Info tab, or Template settings
#define BLYNK_TEMPLATE_ID ""
#define BLYNK_DEVICE_NAME ""
#define BLYNK_AUTH_TOKEN ""

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "";
char pass[] = "";

// Comment this out to disable prints and save space
#define BLYNK_PRINT Serial

#include <rpcWiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleWioTerminal.h>
#include "Seeed_Arduino_GroveAI.h"
#include <Wire.h>

GroveAI ai(Wire);
uint8_t state = 0;

char auth[] = BLYNK_AUTH_TOKEN;

BlynkTimer timer;

// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void myTimerEvent()
{
// You can send any value at any time.
// Please don't send more that 10 values per second.
if (state == 1)
{
if (ai.invoke()) // begin invoke
{
while (1) // wait for invoking finished
{
CMD_STATE_T ret = ai.state();
if (ret == CMD_STATE_IDLE)
{
break;
}
delay(20);
}
uint8_t len = ai.get_result_len(); // receive how many people detect
if(len)
{
Serial.print("Number of people: ");
Serial.println(len);
object_detection_t data; //get data

for (int i = 0; i < len; i++)
{
Serial.println("result:detected");
Serial.print("Detecting and calculating: ");
Serial.println(i+1);
ai.get_result(i, (uint8_t*)&data, sizeof(object_detection_t)); //get result
Serial.print("confidence:");
Serial.print(data.confidence);
Serial.println();
Blynk.virtualWrite(V5, data.confidence);
Blynk.virtualWrite(V4, len);
}
}
else
{
Serial.println("No identification");
Blynk.virtualWrite(V4, 0);
Blynk.virtualWrite(V5, 0);
}
}
else
{
delay(1000);
Serial.println("Invoke Failed.");
}
}
else
{
state == 0;
}
}

void setup()
{
// Debug console
Serial.begin(115200);

Wire.begin();

Serial.println("begin");
if (ai.begin(ALGO_OBJECT_DETECTION, MODEL_EXT_INDEX_1)) // Object detection and pre-trained model 1
{
Serial.print("Version: ");
Serial.println(ai.version());
Serial.print("ID: ");
Serial.println( ai.id());
Serial.print("Algo: ");
Serial.println( ai.algo());
Serial.print("Model: ");
Serial.println(ai.model());
Serial.print("Confidence: ");
Serial.println(ai.confidence());
state = 1;
}
else
{
Serial.println("Algo begin failed.");
}

Blynk.begin(auth, ssid, pass);
// You can also specify server:
//Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);
//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);

// Setup a function to be called every second
timer.setInterval(1000L, myTimerEvent);
}

void loop()
{
Blynk.run();
timer.run(); // Initiates BlynkTimer
}

Necesitas completar los encabezados necesarios al inicio del código de ejemplo anterior para poder conectar tu Wio Terminal a tu red WiFi y luego enviar datos al servidor de Blynk.

#define BLYNK_TEMPLATE_ID ""
#define BLYNK_DEVICE_NAME ""
#define BLYNK_AUTH_TOKEN ""

char ssid[] = "";
char pass[] = "";

Las primeras 3 líneas de definición corresponden a la información del dispositivo Blynk que se generó automáticamente durante el Paso 3. Simplemente copia y reemplaza esas primeras 3 líneas.

Después, completa las variables ssid[] y pass[] con el nombre y la contraseña de la red WiFi a la que se conectará el Wio Terminal. Por ejemplo:

#define BLYNK_TEMPLATE_ID           "TMPLx3C44oO0"
#define BLYNK_DEVICE_NAME "Quickstart Device"
#define BLYNK_AUTH_TOKEN "an8FkwZgCjShpV5NGCW-Lxl1qohRigeZ"

char ssid[] = "SeeedStudio";
char pass[] = "yyds2022";
note

Recomendamos usar el hotspot personal de tu celular para probar esta guía rápida, ya que es más estable que una red pública desconocida o compleja.

Paso 6. Configurar el Panel Web de Blynk

Por favor, regresa a la consola de Blynk para configurar algunos widgets del panel según el código del firmware anterior. Primero, selecciona la plantilla que creaste y luego haz clic en el botón Edit ubicado en la esquina superior derecha.

Después, haz clic en la pestaña Datastreams para configurar los flujos de datos. Haz clic en New Datastream y selecciona Virtual Pin como fuente de datos.

En el Paso 5, usamos los pines virtuales 4 y 5 para enviar datos del módulo Grove Vision AI, tales como el número de personas detectadas y el porcentaje de confianza en la inferencia.

Blynk.virtualWrite(V5, data.confidence); #confidence
Blynk.virtualWrite(V4, len); #head count

Por lo tanto, necesitas configurar dos Virtual Pins en la pestaña Datastreams de la consola de Blynk: V4 y V5 respectivamente.

En la sección Web Dashboard, puedes definir la distribución de la información. En este caso, se añadieron tres widgets de visualización comunes: Label, Gauge y Chart.

Puedes configurar qué datos mostrar haciendo clic en el ícono de engranaje que aparece al pasar el cursor sobre cada widget.

Una vez que hayas terminado de configurar la visualización de los datos, haz clic en el botón Save And Apply en la esquina superior derecha.

Paso 7. Cargar el código y observar los datos

Finalmente, conecta el módulo Grove Vision AI al puerto izquierdo del Wio Terminal utilizando un cable Grove. Luego, carga el firmware actualizado (después del paso 7) y regresa a la consola de dispositivos de Blynk.
Deberías ver los valores de conteo de personas y el porcentaje de confianza actualizarse en tiempo real cuando el módulo Grove Vision AI detecte una persona con éxito.

Usar la App Móvil de Blynk para Observar Datos en Tiempo Real

Blynk no solo admite el panel web para mostrar datos en tiempo real del sensor, sino que también permite visualizarlos desde su aplicación móvil. Sin embargo, es necesario completar los pasos anteriores para poder ver los datos desde la app móvil.

Paso 1. Descargar la App de Blynk

  • Si estás usando un dispositivo iOS, por favor descarga Blynk IoT.
  • Si estás usando un dispositivo Android, descarga Blynk IoT NEW.

Paso 2. Iniciar sesión en tu cuenta desde la App de Blynk

Una vez descargada e instalada la app de Blynk, ábrela e inicia sesión con la misma cuenta que usaste para la consola web. Así, las plantillas que creaste en los pasos anteriores se sincronizarán automáticamente con la app móvil.

Paso 3. Configurar el panel de datos en la App Móvil

Después de iniciar sesión en la app, desliza hacia la derecha y toca My Profile para ingresar a la vista de configuración del perfil. Asegúrate de que Developer Mode esté habilitado.

Luego, regresa a la página principal y toca el ícono de llave inglesa (wrench) en la esquina superior derecha para entrar a la configuración de la plantilla.

Aquí podrás ver las plantillas que creaste previamente, además de algunas plantillas de ejemplo proporcionadas por Blynk.

Ahora toca la plantilla Seeed Wio Terminal para entrar en la configuración del panel móvil. Una vez dentro, pulsa el botón + en la esquina superior derecha; se abrirá una ventana con los widgets disponibles.

El proceso de configuración aquí es similar al del panel web: selecciona un widget de tipo Value Display y otro de tipo Labeled Value, asígnales un nombre y elige el flujo de datos correcto (pines virtuales V4 y V5). De esta manera, los datos de detección recogidos por el módulo Grove Vision AI se sincronizarán y actualizarán tanto en la consola web como en la app móvil continuamente.

Paso 4. Subir el nuevo código y observar los resultados

Una vez que hayas subido el nuevo código al Wio Terminal y este se conecte a la red WiFi, el dispositivo debería aparecer en la app móvil de Blynk como se muestra a continuación:

Podrás observar los datos del sensor simplemente tocando el dispositivo que aparece en la app móvil de Blynk.

Statement

  • The LoRa® Mark is a trademark of Semtech Corporation or its subsidiaries.
  • LoRaWAN® is a mark used under license from the LoRa Alliance®.
Loading Comments...