Pular para o conteúdo principal

Módulo Grove Vision AI

Nesta seção, detalharemos como os sensores funcionam, como obter dados do sensor usando o Wio Terminal e como enviar esses dados usando o Wio Terminal e o Grove - Wio-E5.

Atualizável para Sensores Industriais

Com o controlador S2110 SenseCAP e o registrador de dados S2100, você pode facilmente transformar o Grove em um sensor LoRaWAN®. A Seeed não apenas ajuda você na prototipagem, mas também oferece a possibilidade de expandir seu projeto com a série SenseCAP de robustos sensores industriais.

O gabinete IP66, a configuração via Bluetooth, a compatibilidade com a rede global LoRaWAN®, a bateria interna de 19 Ah e o poderoso suporte do aplicativo tornam o SenseCAP S210x a melhor escolha para aplicações industriais. A série inclui sensores para umidade do solo, temperatura e umidade do ar, intensidade de luz, CO2, EC e uma estação meteorológica 8 em 1. Experimente o mais recente SenseCAP S210x em seu próximo projeto industrial de sucesso.

Sensor Industrial SenseCAP
S2100
Registrador de Dados
S2101
Temperatura & Umidade do Ar
S2102
Luz
S2103
Temperatura & Umidade do Ar & CO2
S2104
Umidade & Temperatura do Solo
S2105
Umidade & Temperatura do Solo & EC
S2110
Controlador LoRaWAN®
S2120
Estação Meteorológica 8 em 1

Princípio de Funcionamento dos Sensores

A câmera ao vivo de um dispositivo pode ser usada para detectar objetos em um ambiente usando aprendizado de máquina.

O fluxo ao vivo de uma câmera pode ser usado para identificar objetos no mundo físico. Usando o modo "streaming" da API de Detecção e Rastreamento de Objetos do ML Kit, um fluxo de câmera pode detectar objetos e usá-los como entrada para realizar uma busca visual (uma consulta de pesquisa que usa uma imagem como entrada) com o próprio modelo de classificação de imagens do nosso aplicativo (ainda em desenvolvimento).

Pesquisar com uma câmera ao vivo pode ajudar os usuários a aprender mais sobre os objetos ao seu redor, seja um cachorro ou um gato.

Para mais informações sobre o uso do Módulo Vision AI, consulte a referência aqui.

Se você quiser treinar alguns modelos que possa usar, consulte o conteúdo aqui.

Materiais Necessários

Wio TerminalGrove - Wio-E5Módulo Grove Vision AI

Preparação Preliminar

Conexão

Nesta rotina, precisamos nos conectar a um gateway LoRa® próximo com a ajuda do Grove - Wio-E5. Precisamos configurar a porta Grove no lado direito do Wio Terminal como uma porta serial por software para receber comandos AT. O Módulo Vision AI (no lado esquerdo) de acordo com o diagrama abaixo.

Preparação de Software

Passo 1. Você precisa instalar o software Arduino.

Passo 2. Inicie o aplicativo Arduino.

Passo 3. Adicione o Wio Terminal à IDE do Arduino.

Abra sua IDE Arduino, clique em File > Preferences e copie a URL abaixo em Additional Boards Manager URLs:

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

Clique em Tools > Board > Board Manager e pesquise Wio Terminal no Boards Manager.

Passo 4. Selecione sua placa e porta

Você precisará selecionar a entrada no menu Tools > Board que corresponda ao seu Arduino. Selecione o Wio Terminal.

Selecione o dispositivo serial da placa Wio Terminal no menu Tools -> Port. Provavelmente será COM3 ou superior (COM1 e COM2 geralmente são reservadas para portas seriais de hardware). Para descobrir, você pode desconectar sua placa Wio Terminal e reabrir o menu; a entrada que desaparecer deve ser a placa Arduino. Reconecte a placa e selecione essa porta serial.

dica

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

Se você não conseguir fazer o upload do sketch, na maioria das vezes é porque a Arduino IDE não conseguiu colocar o Wio Terminal no modo bootloader. (Porque o MCU foi interrompido ou o seu programa está manipulando o USB) A solução é colocar o seu Wio Terminal em modo bootloader manualmente.

Passo 5. Baixar a biblioteca Grove - Wio-E5

Visite o repositório Disk91_LoRaE5 e baixe todo o repositório para o seu disco local.

Passo 6. Adicionar bibliotecas à Arduino IDE

Agora, a biblioteca do Acelerômetro Digital de 3 Eixos pode ser instalada na Arduino IDE. Abra a Arduino IDE e clique em sketch -> Include Library -> Add .ZIP Library, e escolha o arquivo Disk91_LoRaE5 que você acabou de baixar.

Obter o valor do Grove Vision AI Module

Passo 1. Baixar a biblioteca de código do Grove Vision AI Module

Visite o repositório Seeed-Grove-Vision-AI-Moudle e baixe todo o repositório para o seu disco local.

Passo 2. Adicionar bibliotecas à Arduino IDE

Agora, a biblioteca do Vision AI Module pode ser instalada na Arduino IDE. Abra a Arduino IDE e clique em sketch -> Include Library -> Add .ZIP Library, e escolha o arquivo Seeed-Grove-Vision-AI-Moudle que você acabou de baixar.

Passo 3. Obter dados do Grove Vision AI Module

Este repositório é capaz de obter o número de modelos identificados pelo feed da câmera e o nível de confiança. Eles são dados inteiros sem sinal com não mais do que 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;
}
}

Abra o monitor serial da Arduino IDE, selecione a taxa de transmissão como 115200 e observe o resultado.

Enviar dados via Grove - Wio-E5

Combinamos o código anterior do Grove - Wio-E5 para se conectar à rede LoRa®. Usando o comando AT é possível enviar o valor do Grove Vision AI Module para a rede LoRa®.

No código da seção anterior, sabemos a saída – o número de objetos detectados e o nível de confiança são ambos inteiros positivos e nenhum deles é maior que 8 bits.

Desta forma, determinamos o conteúdo, o tamanho e o formato dos dados a serem enviados via comando AT. Podemos muito bem configurar um array grande o suficiente, armazenar as strings que precisamos enviar no array e, por fim, usar a função send_sync() para enviar o array.

O pseudocódigo para a ideia acima é aproximadamente o seguinte.

  ......
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
)
)
......

O restante do que precisamos fazer é usar a função begin() para inicializar o Grove - Wio-E5 e a função setup() para configurar as informações do triplete do Grove - Wio-E5. Quando enviarmos uma mensagem de dados usando a função send_sync(), tentaremos ingressar na LoRaWAN® ao mesmo tempo e, assim que tiver sucesso, os dados serão enviados e informações como intensidade de sinal e endereço serão retornadas.

O exemplo de código completo pode ser encontrado aqui.

dica

Não recomendamos que você faça o upload do código agora para ver os resultados, porque neste momento você ainda não configurou o Helium/TTN e obterá um resultado de "Join failed". Recomendamos que você faça o upload deste código depois de ter concluído o capítulo Connecting to Helium ou Connecting to TTN para completar todo o processo de envio de dados.

Depois que você tiver experimentado e entendido como o Grove Vision AI Module funciona e o formato dos dados, continue com o próximo passo do tutorial para ingressar na LoRaWAN®.

Seção Helium

pir

Introdução ao Helium

Neste capítulo, apresentaremos os controles do console Helium que usamos para obter uma primeira impressão do console Helium.

Ir para o capítulo >

pir

Conectando ao Helium

Esta seção descreve como configurar o Helium para que os dados do sensor possam ser carregados e exibidos com sucesso no Helium.

Ir para o capítulo >
Seção TTN

pir

Introdução ao TTN

Neste capítulo, apresentaremos os controles do console TTN que utilizamos para obter uma primeira impressão do console TTN.

Ir para o capítulo >

pir

Conectando ao TTN

Esta seção descreve como configurar o TTN para que os dados do sensor possam ser carregados e exibidos com sucesso no TTN.

Ir para o capítulo >

Suporte Técnico e Discussão de Produtos

Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes formas de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Declaração

  • A marca LoRa® é uma marca registrada da Semtech Corporation ou de suas subsidiárias.
  • LoRaWAN® é uma marca usada sob licença da LoRa Alliance®.
Loading Comments...