> For the complete documentation index, see [llms.txt](https://navixy.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://navixy.com/docs/user/pt-br/guide/account/iot-logic/flow-management/flow-configuration-example.md).

# Exemplo de configuração de fluxo

Este exemplo demonstra como configurar um fluxo que coleta dados de dispositivos IoT, executa cálculos para derivar métricas relevantes para o negócio e encaminha os dados enriquecidos para um sistema externo. O exemplo usa um padrão de fluxo linear que pode ser adaptado a vários casos de uso do setor.

## Cenário de negócio

Neste cenário, uma organização implantou dispositivos GPS em seus ativos e precisa processar dados desses dispositivos para análises de negócio. A organização recebe os seguintes parâmetros diretamente de seus dispositivos de monitoramento:

* `velocidade`: Velocidade do veículo em quilômetros por hora
* `temperature`: Temperatura ambiente em Celsius
* `odômetro`: Distância percorrida em quilômetros
* `ignição`: Status da ignição do motor (1 = ligado, 0 = desligado)
* `nível de combustível`: Medição atual do nível de combustível
* `pressão em PSI`: Leitura de pressão em PSI
* `tensão`: Tensão da bateria em volts
* `acelerador`: Posição do pedal do acelerador a partir do barramento CAN (0-255)
* `nível de combustível 1`: Primeira medição do nível do tanque de combustível
* `nível de combustível 2`: Segunda medição do nível do tanque de combustível

A organização precisa:

1. Coletar dados brutos de telemetria dos dispositivos para manter um registro completo das operações dos ativos
2. Converter as unidades de medida para corresponder ao seu formato padrão de relatórios (unidades imperiais) e manter a consistência com os sistemas corporativos existentes
3. Calcular métricas baseadas em tempo que indiquem padrões de uso para otimizar a utilização dos ativos e os cronogramas de manutenção
4. Criar métricas derivadas para gerar insights operacionais não fornecidos diretamente pelo hardware
5. Encaminhar os dados enriquecidos para um sistema externo de análise para integração com plataformas de business intelligence
6. Enviar os dados brutos inalterados para o Navixy para monitoramento

Este fluxo transforma os dados brutos do dispositivo em um formato que apoia diretamente a tomada de decisões de negócio, mantendo a integridade das medições originais.

## Etapas de configuração do fluxo

Siga estas etapas para criar um fluxo abrangente de transformação e encaminhamento de dados:

{% stepper %}
{% step %}

### Criar um novo fluxo

Abra o IoT Logic. Na página inicial, clique **Criar fluxo**. Insira *Processamento de telemetria de ativos* como nome do fluxo, adicione uma descrição (*"Coleta dados dos dispositivos, calcula métricas derivadas e encaminha para a plataforma de análise."*), e certifique-se de que o **Fluxo habilitado** esteja ativado. Clique **Confirmar** para abrir a área de edição.
{% endstep %}

{% step %}

### Configurar a Fonte de Dados

1. Arraste um **Fonte de Dados** nó do menu à esquerda para a área de trabalho
2. Dê um duplo clique no nó para abrir o painel de configuração
3. Em **Nome do nó** tipo *Rastreadores de ativos*
4. Selecione os dispositivos a incluir neste fluxo na lista filtrada

* Para este exemplo, selecione pelo menos dois dispositivos com recursos semelhantes

5. Clique **Aplicar** para salvar a configuração do nó
   {% endstep %}

{% step %}

### Configure transformações básicas de dados

1. Arraste um **Iniciar Atributo** nó do menu à esquerda para a área de trabalho
2. Conecte o **Fonte de Dados** nó a este **Iniciar Atributo** nó
3. Clique duas vezes no nó para abrir sua configuração
4. Em **Nome do nó** tipo *Conversões de unidades*
5. Crie os seguintes atributos para conversão de unidades (todos os exemplos usam a sintaxe curta, referindo-se aos valores mais recentes dos atributos sem verificação de validade):
   1. Adicione um novo atributo para conversão de velocidade (km/h para mph): 1. Nome do atributo: *speed\_mph* 2. Valor: `speed/1.609`
   2. Adicione um novo atributo para conversão de temperatura (Celsius para Fahrenheit): 1. Nome do atributo: *temperature\_F* 2. Valor: `em vez de`
   3. Adicione um novo atributo para conversão de distância (quilômetros para milhas): 1. Nome do atributo: *distance\_miles* 2. Valor: `odômetro/1.609`
   4. Adicione um novo atributo para conversão de pressão (PSI para bar): 1. Nome do atributo: *pressure\_bar* 2. Valor: `pressure_psi * 0.06895`
6. Clique **Aplicar** para salvar a configuração do nó

{% hint style="info" %}
Para explicações sobre os cálculos apresentados nesta etapa, consulte [Conversões básicas de unidades](#basic-unit-conversions)
{% endhint %}
{% endstep %}

{% step %}

### Criar métricas calculadas avançadas

1. Arraste outro **Iniciar Atributo** nó do menu à esquerda para a área de trabalho
2. Conecte o primeiro **Iniciar Atributo** Nó a este novo
3. Clique duas vezes no Nó para abrir sua configuração
4. Em **Nome do nó** tipo *Cálculos avançados*
5. Crie os seguintes atributos para métricas avançadas:
   1. Adicione um atributo para detectar a variação de temperatura:
      1. Nome do atributo: *temperature\_change*
      2. Valor: `value('temperature', 0, 'valid') - value('temperature', 1, 'valid')`
      3. `genTime('temperature', 0, 'valid')`
   2. Adicione um atributo para calcular o tempo decorrido entre as duas últimas leituras:
      1. Nome do atributo: *time\_between\_readings\_ms*
      2. Valor: `srvTime('speed', 0, 'valid') - srvTime('speed', 1, 'valid')`
      3. Tempo de geração: `genTime('speed', 0, 'valid')`
   3. Adicionar um atributo para arredondar a temperatura para o inteiro mais próximo:
      1. Nome do atributo: *temperatura\_arredondada*
      2. Valor: `math:round(value('temperature', 0, 'valid'))`
   4. Adicionar um atributo para cálculo de valor padronizado (normalizando o nível de Combustível para 0-100%):
      1. Nome do atributo: *percentual\_do\_nível\_de\_combustível*
      2. Valor: `(value('fuel_level', 0, 'valid') - 0) / (100 - 0) * 100`
   5. Adicionar um atributo para o cálculo da porcentagem de carga da bateria:
      1. Nome do atributo: *porcentagem\_da\_bateria*
      2. Valor: `(value('voltage', 0, 'valid') - 11) / (14 - 11) * 100`
   6. Adicionar um atributo para o cálculo da posição do acelerador:
      1. Nome do atributo: *porcentagem do acelerador*
      2. Valor: `value('throttle', 0, 'valid') / 255 * 100`
   7. Adicionar um atributo para o nível médio de combustível de vários sensores:
      1. Nome do atributo: *nível\_médio\_de\_Combustível*
      2. Valor: `(value('fuel_level_1', 0, 'valid') + value('fuel_level_2', 0, 'valid')) / 2`
6. Clique **Aplicar** para salvar a configuração do nó

{% hint style="info" %}
Para explicações sobre os cálculos apresentados nesta etapa, consulte [Cálculos avançados de métricas](#advanced-metrics-calculations).
{% endhint %}
{% endstep %}

{% step %}

### Configure o Ponto de Extremidade de Saída

1. Arraste um **Ponto de Extremidade de Saída** nó do menu à esquerda para a área de trabalho
2. Conectar o segundo **Iniciar Atributo** nó a este **Ponto de Extremidade de Saída** nó
3. Clique no Nó para abrir sua configuração
4. Configure as seguintes configurações:
   1. **Tipo de ponto de extremidade**: *Ponto de extremidade MQTT*
   2. **Nome do ponto de extremidade**: *Plataforma de análise*
   3. **Protocolo**: padrão *Navixy Generic Protocol (JSON)*
   4. **IP/Domínio**: Insira o endereço do sistema de destino (ex.: "*analytics.example.com*")
   5. **Porta**: *8883* (padrão para MQTT, você pode deixá-lo em branco)
   6. **Ativar SSL**: *ativar*
   7. **Versão MQTT**: *5.0*
   8. **ID do cliente MQTT**: *ativo-telemetria-cliente*
   9. **Tópico**: *telemetry/assets/raw*
   10. **QoS**: *1*
   11. **Autenticação MQTT**: *Sim* (se exigido pelo seu sistema de destino)
   12. **Login e senha MQTT**: Insira as credenciais, se aplicável
5. Clique **Criar** para salvar a configuração do nó
   {% endstep %}

{% step %}

### Adicionar Ponto de Extremidade de Saída padrão

1. Arraste um **Ponto de Extremidade de Saída** nó do menu à esquerda para a área de trabalho
2. Em **Modo** selecione **Ponto de extremidade padrão**
3. Clique **Salvar** para aplicar a configuração do nó
4. Conecte o *Rastreadores de ativos* (**Fonte de Dados**) o nó a ele

Isso garante que os dados brutos sejam enviados ao Navixy diretamente dos dispositivos, sem quaisquer transformações e enriquecimentos.
{% endstep %}

{% step %}

### Salve e teste o fluxo

Sua configuração final ficará assim:

<figure><img src="/files/4ef1e4fd41a59dba8565f98848ad8ab49953ac60" alt="Complete flow configuration with all nodes connected in IoT Logic workspace"><figcaption></figcaption></figure>

Clique no **Salvar fluxo** botão no **Nós** painel para armazenar sua configuração de fluxo.
{% endstep %}
{% endstepper %}

{% hint style="success" %}
Use [Analisador de dados (DSA)](/docs/user/pt-br/guide/account/iot-logic/data-stream-analyzer.md) para monitorar os dados recebidos e verificar:

* Os dispositivos estão enviando dados para o fluxo
* Os cálculos estão funcionando conforme o esperado
* Os dados estão sendo encaminhados para o destino. Por exemplo, vamos verificar se as conversões de velocidade estão sendo calculadas corretamente em um caminhão. Para fazer isso no DSA, selecione o **Volvo** dispositivo e atributos **velocidade** e **speed\_mph**:\ <img src="/files/c9cd7dfb21912980a7f05351111372bdf1c601ba" alt="Speed attributes for one device in Data Stream Analyzer" data-size="original">

Tudo certo! Os dados foram recebidos e convertidos com sucesso.
{% endhint %}

## Transformações de dados explicadas

Vamos examinar os cálculos principais usados neste fluxo.

### Conversões básicas de unidades

O primeiro **Nó Iniciar Atributo** realiza conversões simples de unidades:

* **Velocidade**: Converte km/h para mph dividindo por 1,609
* **Temperatura**: Converte Celsius para Fahrenheit usando a fórmula °F = °C × 1,8 + 32
* **Distância**: Converte quilômetros para milhas dividindo por 1,609
* **Pressão**: Converte PSI para Bar multiplicando por 0,06895, tornando-o compatível com padrões internacionais de medição de pressão

Essas conversões garantem consistência com formatos de relatório padrão e tornam os dados imediatamente utilizáveis para análise. As conversões de unidades são particularmente valiosas para organizações multinacionais que operam em regiões com diferentes padrões de medição.

### Cálculos avançados de métricas

O segundo **Nó Iniciar Atributo** realiza cálculos mais complexos:

* **Detecção de mudança de temperatura**: Calcula a diferença entre as leituras de temperatura atual e anterior para identificar mudanças repentinas. Isso ajuda a detectar problemas de equipamento, como falhas na refrigeração em veículos de transporte ou problemas de HVAC em instalações. Por exemplo, um aumento repentino de 5°C em um contêiner refrigerado pode indicar uma falha no sistema de resfriamento que requer atenção imediata.
  * **: Quando os dados foram criados**: Usando `genTime('temperature', 0, 'valid')` é crucial aqui porque preserva o carimbo de data e hora exato em que a leitura de temperatura foi gerada pelo dispositivo, garantindo uma análise precisa das mudanças de temperatura baseada no tempo.
  * **: Quando os dados foram recebidos pelo IoT Logic**: O valor padrão `para definir o horário atual em milissegundos` captura automaticamente quando o servidor recebeu os dados. Esse carimbo de data e hora não precisa ser modificado, então deixe este campo em branco durante a configuração.
* **Tempo entre leituras**: Mede o intervalo entre transmissões consecutivas de dados comparando carimbos de data e hora do servidor. Esse cálculo ajuda a identificar problemas de comunicação ou validar se os dispositivos estão reportando na frequência esperada. Intervalos irregulares podem indicar problemas de conectividade, enquanto atrasos consistentes podem sugerir congestionamento de rede ou problemas de configuração do dispositivo.
* **Arredondamento de valores**: Aplica arredondamento matemático às leituras de temperatura, reduzindo a precisão decimal para números inteiros. Isso simplifica a visualização e o relatório de dados, ao mesmo tempo que reduz os requisitos de armazenamento para dados históricos. Valores arredondados são especialmente úteis para exibições em painéis e alertas baseados em limite, em que a precisão decimal não é necessária.
  * **: Quando os dados foram criados**: Especificar `genTime('speed', 0, 'valid')` conecta esses metadados diretamente ao carimbo de data e hora da leitura original, possibilitando analisar tanto o intervalo de tempo quanto o momento em que ocorreu.
  * **: Quando os dados foram recebidos pelo IoT Logic**: O valor padrão `para definir o horário atual em milissegundos` captura automaticamente quando o servidor recebeu os dados. Esse carimbo de data e hora não precisa ser modificado, então deixe este campo em branco durante a configuração.
* **Cálculo de valor padronizado**: Normaliza leituras brutas de sensores para uma escala percentual (0-100%). Essa padronização facilita a comparação das leituras entre diferentes tipos de sensores e modelos de veículo. Para a gestão de frotas, isso permite relatórios consistentes do nível de combustível independentemente da implementação específica do sensor de combustível em cada modelo de veículo, possibilitando alertas uniformes de baixo nível de combustível e análise de consumo.
* **Cálculo da porcentagem de carga da bateria**: Normaliza leituras de tensão da bateria (faixa de 11V-14V) para uma escala de 0-100% para facilitar o monitoramento. Por exemplo, uma leitura de 12,5V seria normalizada para 50%, fornecendo um indicador intuitivo da saúde da bateria em diferentes tipos de veículo.
* **Cálculo da posição do acelerador**: Converte dados brutos de posição do acelerador (faixa de 0-255) do barramento CAN do veículo para uma escala percentual. Essa padronização ajuda os operadores a entender rapidamente o comportamento do motorista e o desempenho do veículo, sem precisar interpretar valores brutos de sensores.
* **Nível médio de combustível de vários sensores**: Combina leituras de dois sensores de combustível separados para produzir uma medição mais precisa do nível geral de combustível. Isso é particularmente valioso para veículos com formatos de tanque complexos ou múltiplos tanques, em que um único sensor pode não fornecer leituras confiáveis devido ao deslocamento do combustível durante o movimento.

## Resumo de exemplo do fluxo

Esta configuração de fluxo demonstra várias capacidades principais do IoT Logic:

1. **Padronização**: Converte leituras específicas do dispositivo em métricas de negócio padronizadas
2. **Enriquecimento**: Cria novas métricas significativas não disponíveis diretamente nos sensores do dispositivo
3. **Transformação**: Altera unidades para atender aos requisitos de relatório de negócios
4. **Contexto histórico**: Usa leituras anteriores para calcular métricas baseadas em tendências
5. **Determinação de status**: Cria valores categóricos com base em múltiplas entradas de sensores

Essa combinação de capacidades transforma dados brutos do dispositivo em inteligência de negócios acionável, apoiando diretamente a tomada de decisão operacional enquanto mantém a integridade das medições originais.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://navixy.com/docs/user/pt-br/guide/account/iot-logic/flow-management/flow-configuration-example.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
