Skip to main content

Módulo Grove Vision AI

En esta sección, detallaremos cómo funcionan los sensores, cómo obtener datos del sensor usando Wio Terminal y cómo enviar los datos usando Wio Terminal & Grove - Wio-E5.

Actualizable a Sensores Industriales

Con el controlador S2110 y el registrador de datos S2100 de SenseCAP, puedes convertir fácilmente el Grove en un sensor LoRaWAN®. Seeed no solo te ayuda con la creación de prototipos, sino que también te ofrece la posibilidad de expandir tu proyecto con la serie SenseCAP de sensores industriales robustos.

La carcasa IP66, la configuración Bluetooth, la compatibilidad con la red global LoRaWAN®, la batería integrada de 19 Ah y el potente soporte de la APP hacen que el SenseCAP S210x sea la mejor opción para aplicaciones industriales. La serie incluye sensores para humedad del suelo, temperatura y humedad del aire, intensidad de luz, CO2, EC y una estación meteorológica 8 en 1. Prueba el último SenseCAP S210x para tu próximo proyecto industrial exitoso.

Sensor Industrial SenseCAP
S2100
Registrador de Datos
S2101
Temp. y Humedad del Aire
S2102
Luz
S2103
Temp. y Humedad del Aire y CO2
S2104
Humedad y Temp. del Suelo
S2105
Humedad y Temp. del Suelo y EC
S2110
Controlador LoRaWAN®
S2120
Estación Meteorológica 8 en 1

Principio de Funcionamiento de los Sensores

La cámara en vivo de un dispositivo puede utilizarse para detectar objetos en un entorno usando aprendizaje automático.

La transmisión en vivo de una cámara puede utilizarse para identificar objetos en el mundo físico. Usando el modo "streaming" de la API de Detección y Seguimiento de Objetos de ML Kit, una transmisión de cámara puede detectar objetos y usarlos como entrada para realizar una búsqueda visual (una consulta de búsqueda que usa una imagen como entrada) con el propio modelo de clasificación de imágenes de nuestra aplicación (aún en desarrollo).

Buscar con una cámara en vivo puede ayudar a los usuarios a aprender más sobre los objetos que los rodean, ya sea un perro o un gato.

Para más información sobre el uso del Vision AI Module, consulte su referencia aquí.

Si desea entrenar algunos modelos que pueda usar usted mismo, consulte el contenido aquí.

Materiales Requeridos

Wio TerminalGrove - Wio-E5Grove Vision AI Module

Preparación Preliminar

Conexión

En esta rutina, necesitamos conectarnos a una puerta de enlace LoRa® cercana con la ayuda de Grove - Wio-E5. Necesitamos configurar el puerto Grove en el lado derecho del Wio Terminal como un puerto serie suave para recibir comandos AT. Módulo Vision AI (en el lado izquierdo) según el diagrama a continuación.

Preparación del software

Paso 1. Necesitas instalar un software de Arduino.

Paso 2. Inicia la aplicación Arduino.

Paso 3. Añade Wio Terminal al IDE de Arduino.

Abre tu IDE de Arduino, haz clic en File > Preferences, y copia la siguiente url en Additional Boards Manager URLs:

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

Haz clic en Tools > Board > Board Manager y busca Wio Terminal en el Administrador de Placas.

Paso 4. Selecciona tu placa y puerto

Necesitarás seleccionar la entrada en el menú Tools > Board que corresponda a tu Arduino. Selecciona el Wio Terminal.

Selecciona el dispositivo serie de la placa Wio Terminal desde el menú Tools -> Port. Es probable que sea COM3 o superior (COM1 y COM2 generalmente están reservados para puertos serie de hardware). Para averiguarlo, puedes desconectar tu placa Wio Terminal y volver a abrir el menú; la entrada que desaparezca debería ser la placa Arduino. Vuelve a conectar la placa y selecciona ese puerto serie.

tip

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

Si no puedes cargar el sketch, principalmente es porque Arduino IDE no pudo poner el Wio Terminal en modo bootloader. (Porque el MCU se detuvo o tu programa está manejando USB) La solución es poner tu Wio Terminal en modo bootloader manualmente.

Paso 5. Descarga la Biblioteca Grove - Wio-E5

Visita los repositorios de Disk91_LoRaE5 y descarga todo el repositorio a tu unidad local.

Paso 6. Añadir bibliotecas al Arduino IDE

Ahora, la biblioteca del Acelerómetro Digital de 3 Ejes puede instalarse en el Arduino IDE. Abre el Arduino IDE, y haz clic en sketch -> Include Library -> Add .ZIP Library, y elige el archivo Disk91_LoRaE5 que acabas de descargar.

Obtener el valor del Módulo Grove Vision AI

Paso 1. Descarga la Biblioteca de Código del Módulo Grove Vision AI

Visita los repositorios de Seeed-Grove-Vision-AI-Moudle y descarga todo el repositorio a tu unidad local.

Paso 2. Añadir bibliotecas al Arduino IDE

Ahora, la biblioteca del Módulo Vision AI puede instalarse en el Arduino IDE. Abre el Arduino IDE, y haz clic en sketch -> Include Library -> Add .ZIP Library, y elige el archivo Seeed-Grove-Vision-AI-Moudle que acabas de descargar.

Paso 3. Obtener datos del Módulo Grove Vision AI

Este repositorio es capaz de obtener el número de modelos identificados por la alimentación de la cámara y el nivel de confianza. Son datos enteros sin signo con no más de 8 bits.

#include "Seeed_Arduino_GroveAI.h"
#include <Wire.h>

GroveAI ai(Wire);
uint8_t state = 0;
void setup()
{
Wire.begin();
Serial.begin(115200);

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.");
}
}

void loop()
{
if (state == 1)
{
uint32_t tick = millis();
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)
{
int time1 = millis() - tick;
Serial.print("Time consuming: ");
Serial.println(time1);
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();
}
}
else
{
Serial.println("No identification");
}
}
else
{
delay(1000);
Serial.println("Invoke Failed.");
}
}
else
{
state == 0;
}
}

Abre el monitor serie del IDE de Arduino y selecciona la velocidad de baudios como 115200 y observa el resultado.

Enviar datos a través de Grove - Wio-E5

Combinamos el código anterior de Grove - Wio-E5 para conectar a la red LoRa®. Usando el comando AT es posible enviar el valor del Grove Vision AI Module a la red LoRa®.

En el código de la sección anterior, sabemos que la salida - el número de objetos detectados y el nivel de confianza son ambos enteros positivos y ninguno es mayor que 8 bits.

De esta manera, determinamos el contenido, tamaño y formato de los datos a enviar a través del comando AT. Bien podríamos configurar un array lo suficientemente grande, almacenar las cadenas que necesitamos enviar en el array, y finalmente usar la función send_sync() para enviar el array.

El pseudo-código para la idea anterior es aproximadamente el siguiente.

  ......
static uint8_t data_val[4] = { 0x00 }; //Use the data[] to store the values of the sensors

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.println(data.confidence);

data_decord(len, data.confidence, data_val);

if ( lorae5.send_sync( //Sending the sensor values out
8, // LoRaWan Port
data_val, // data array
sizeof(data_val), // size of the data
false, // we are not expecting a ack
7, // Spread Factor
14 // Tx Power in dBm
)
)
......

El resto de lo que necesitamos hacer es usar la función begin() para inicializar Grove - Wio-E5 y la función setup() para configurar la información del triplete de Grove - Wio-E5. Cuando enviamos un mensaje de datos usando la función send_sync(), intentaremos unirnos a LoRaWAN® al mismo tiempo, y una vez que tenga éxito, los datos se enviarán y se devolverá información como la intensidad de la señal y la dirección.

El ejemplo de código completo se puede encontrar aquí.

tip

No recomendamos que subas el código ahora para ver los resultados, porque en este punto aún no has configurado Helium/TTN y obtendrás un resultado de "Join failed". Recomendamos que subas este código después de haber completado el capítulo Conectando a Helium o Conectando a TTN para completar el proceso completo de envío de datos.

Una vez que hayas experimentado y entendido cómo funciona el Grove Vision AI Module y el formato de datos, por favor continúa con el siguiente paso del tutorial para unirte a LoRaWAN®.

Sección Helium

pir

Introducción a Helium

En este capítulo, introduciremos los controles de la consola de Helium que usamos para obtener una primera impresión de la consola de Helium.

Ir al capítulo >

pir

Conectando a Helium

Esta sección describe cómo configurar Helium para que los datos del sensor puedan ser subidos exitosamente y mostrados en Helium.

Ir al capítulo >
Sección TTN

pir

Introducción a TTN

En este capítulo, introduciremos los controles de la consola de TTN que usamos para obtener una primera impresión de la consola de TTN.

Ir al capítulo >

pir

Conectando a TTN

Esta sección describe cómo configurar TTN para que los datos del sensor puedan ser subidos exitosamente y mostrados en TTN.

Ir al capítulo >

Soporte Técnico y Discusión de Productos

¡Gracias por elegir nuestros productos! Estamos aquí para brindarle diferentes tipos de soporte para asegurar que su experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.

Declaración

  • La marca LoRa® es una marca comercial de Semtech Corporation o sus subsidiarias.
  • LoRaWAN® es una marca utilizada bajo licencia de LoRa Alliance®.
Loading Comments...