

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configurar integrações de código aberto manualmente (Windows)
<a name="windows-manual-setup"></a>

Use este guia para criar manualmente um intervalo de séries temporais para dados de velocidade do vento que se conectam ao Grafana® e ao Node-RED®.

 Instale e configure manualmente o Node-RED, o InfluxDB® e o Grafana para controlar sua configuração de implantação. Microsoft Windows Você pode armazenar e gerenciar dados de séries temporais de seus dispositivos usando o InfluxDB.

## Pré-requisitos de configuração manual
<a name="windows-open-source-prerequisites"></a>

Antes de começar, preencha estes requisitos:

**nota**  
Execute todos os serviços (SiteWise Edge, InfluxDB, Node-RED e Grafana) no mesmo host.
+ Instale um gateway V3 habilitado para MQTT. Para obter mais informações, consulte [Gateways V3 habilitados para MQTT para Edge AWS IoT SiteWise](mqtt-enabled-v3-gateway.md).
+ Instale e execute esses serviços localmente:
  + InfluxDB OSS v2. Para as etapas de instalação, consulte [Instalar o InfluxDB](https://docs.influxdata.com/influxdb/v2/install/).
  + Node-red. Para ver as etapas de instalação, consulte [Instalar o Node-RED localmente](https://nodered.org/docs/getting-started/local).
  + Grafana. Para as etapas de instalação, consulte [Instalar o Grafana](https://grafana.com/docs/grafana/latest/setup-grafana/installation/).

# Configure o armazenamento local com o InfluxDB
<a name="windows-influxdb-setup"></a>

Com o InfluxDB®, você pode armazenar dados de séries temporais de seus dispositivos localmente. O objetivo da capacidade de armazenamento local é manter a visibilidade operacional durante interrupções na rede e reduzir a latência para aplicativos urgentes. Você pode realizar análises e visualizações na borda e ainda ter a opção de encaminhar dados seletivamente para a nuvem.

Nesta seção, você cria um intervalo de séries temporais para dados de velocidade do vento da turbina e gera um token de API para conectividade Grafana® e Node-RED®. O bucket do InfluxDB serve como um contêiner de armazenamento dedicado para seus dados de séries temporais, semelhante a um banco de dados em sistemas tradicionais. O token da API permite acesso programático seguro aos seus dados.

**Para configurar o InfluxDB**

1. [Depois de concluir as etapas de pré-requisito e garantir que todas as ferramentas estejam sendo executadas no mesmo host, abra seu navegador e acesse http://127.0.0.1:8086.](http://127.0.0.1:8086)

1. (Opcional) Ative a criptografia TLS para aumentar a segurança. Para obter mais informações, consulte [Habilitar a criptografia TLS](https://docs.influxdata.com/influxdb/v2/admin/security/enable-tls/) no *InfluxData Documentation*.

1. Crie um bucket InfluxDB de série temporal para armazenar dados do Node-RED. O bucket servirá como um contêiner dedicado para os dados do seu parque eólico, permitindo que você organize e gerencie políticas de retenção específicas para esse conjunto de dados. Para obter mais informações, consulte [Gerenciar buckets](https://docs.influxdata.com/influxdb/v2/admin/buckets/) no *InfluxData Documentation*.

1. (Opcional) Configure o período de retenção de dados para seu ponto de presença. Definir períodos de retenção adequados ajuda a gerenciar os recursos de armazenamento de forma eficiente, removendo automaticamente dados antigos que não são mais necessários para as operações locais.

   Para obter informações sobre retenção de dados, consulte [Retenção de dados no InfluxDB](https://docs.influxdata.com/influxdb/v2/reference/internals/data-retention/) no. *InfluxData Documentation*

1. Gere um token de API para o bucket. Esse token permitirá a comunicação segura entre o InfluxDB e outros componentes, como Node-RED e Grafana. Dessa forma, somente serviços autorizados podem ler ou gravar em seu armazenamento de dados. Para obter mais informações, consulte [Criar um token](https://docs.influxdata.com/influxdb/cloud/admin/tokens/create-token/) no *InfluxData Documentation*.

Depois de concluir essas etapas, você pode armazenar dados de séries temporais em sua instância do InfluxDB, fornecendo uma base para persistência e análise de dados locais em seu ambiente de borda.

# Configurar fluxos do Node-RED para integração de AWS IoT SiteWise dados
<a name="windows-nodered-config"></a>

Com o Node-RED®, você pode implementar dois fluxos para gerenciar dados entre seus dispositivos e. AWS IoT SiteWise Esses fluxos trabalham juntos para criar uma solução abrangente de gerenciamento de dados que aborda o fluxo de dados local e na nuvem.
+ **Fluxo de publicação de dados** — publica na nuvem. O fluxo de publicação de dados envia dados para AWS IoT SiteWise. Esse fluxo simula um dispositivo de turbina gerando dados do sensor, traduzindo-os para o AWS IoT SiteWise formato e publicando-os no corretor SiteWise Edge MQTT. Isso permite que você aproveite os recursos AWS IoT SiteWise de nuvem para armazenamento, análise e integração com outros AWS serviços.

  Para obter mais informações, consulte [Configurar o fluxo de publicação de dados](windows-nodered-data-publish-flow.md).
+ **Fluxo de retenção** de dados — armazena dados na borda. O fluxo de retenção de dados se inscreve no corretor SiteWise Edge MQTT para receber dados, traduzi-los para o formato InfluxDB® e armazená-los localmente para monitoramento. Esse armazenamento local fornece acesso imediato aos dados operacionais, reduz a latência para aplicativos urgentes e garante a continuidade durante interrupções na rede.

  Para obter mais informações, consulte [Configurar o fluxo de retenção de dados](windows-nodered-data-retention-flow.md).

Esses dois fluxos trabalham juntos para garantir que os dados sejam enviados AWS IoT SiteWise e armazenados localmente para acesso imediato.

[Para acessar seu console Node-RED, acesse http://127.0.0.1:1880.](http://127.0.0.1:1880) Para obter informações sobre como habilitar o TLS, consulte [Habilitar a criptografia TLS.](https://docs.influxdata.com/influxdb/v2/admin/security/enable-tls/)

# Configurar o fluxo de publicação de dados
<a name="windows-nodered-data-publish-flow"></a>

O fluxo de publicação de dados usa três nós para criar um pipeline que envia seus dados industriais para a nuvem. Esse fluxo é essencial para permitir análises baseadas em nuvem, armazenamento de longo prazo e integração com outros AWS serviços. Primeiro, os dados simulados do dispositivo são enviados para o corretor SiteWise Edge MQTT. O gateway coleta os dados do corretor, o que permite a transmissão para a AWS IoT SiteWise nuvem, onde você pode aproveitar os poderosos recursos de análise e visualização.
+ **Entrada de dados** - Recebe dados do dispositivo de seus equipamentos industriais ou simuladores
+ **Tradutor de dados para AWS IoT SiteWise** - Traduz dados em AWS IoT SiteWise formato para garantir a compatibilidade com o SiteWise gateway Edge
+ **Editor MQTT** - publica dados no corretor SiteWise Edge MQTT, disponibilizando-os para consumidores locais e na nuvem

![\[Um diagrama mostrando o fluxo de publicação de dados do Node-RED. Ele envia dados simulados do dispositivo para o corretor SiteWise Edge MQTT para coleta pelo SiteWise Edge Gateway e depois para a nuvem. AWS IoT SiteWise\]](http://docs.aws.amazon.com/pt_br/iot-sitewise/latest/userguide/images/gateway-open-source-nodered-publish-flow.png)


## Configurar o nó de entrada de dados
<a name="windows-nodered-data-input-config"></a>

Neste exemplo, o nó de entrada de dados usa um dispositivo simulado de turbina eólica que gera dados de velocidade do vento. Esse nó serve como ponto de entrada para seus dados industriais, sejam eles provenientes de fontes simuladas (como em nosso exemplo) ou de equipamentos industriais reais em ambientes de produção.

Usamos um formato JSON personalizado para a carga de dados a fim de fornecer uma estrutura padronizada que funciona de forma eficiente com as ferramentas de processamento locais e com o AWS IoT SiteWise serviço em nuvem. Esse formato inclui metadados essenciais, como registros de data e hora e indicadores de qualidade, juntamente com os valores reais de medição, permitindo o gerenciamento abrangente de dados e o rastreamento de qualidade em todo o pipeline. Importe o nó de injeção para receber dados simulados nesse formato JSON padronizado com registros de data e hora, indicadores de qualidade e valores.

*Para obter mais informações sobre o nó de injeção Node-RED, consulte a seção [Injetar](https://nodered.org/docs/user-guide/nodes#inject) na documentação. Node-RED*

O simulador de turbina gera dados de velocidade do vento a cada segundo nesse formato JSON padronizado:

**Example : Carga útil de dados da turbina**  

```
{
    name: string,         // Property name/identifier
    timestamp: number,    // Epoch time in nanoseconds
    quality: "GOOD" | "UNCERTAIN" | "BAD",
    value: number | string | boolean
}
```

Esse formato oferece vários benefícios:
+ O `name` campo identifica a propriedade ou medida específica, permitindo que você rastreie vários pontos de dados do mesmo dispositivo
+ O `timestamp` em nanossegundos garante um rastreamento preciso do tempo para uma análise histórica precisa
+ O `quality` indicador ajuda você a filtrar e gerenciar dados com base em sua confiabilidade
+ O `value` campo flexível suporta diferentes tipos de dados para acomodar várias saídas de sensores

**Example : Nodo de injeção de um simulador de turbina**  

```
[
    {
        "id": "string",
        "type": "inject",
        "z": "string",
        "name": "Turbine Simulator",
        "props": [
            {
                "p": "payload.timestamp",
                "v": "",
                "vt": "date"
            },
            {
                "p": "payload.quality",
                "v": "GOOD",
                "vt": "str"
            },
            {
                "p": "payload.value",
                "v": "$random()",
                "vt": "jsonata"
            },
            {
                "p": "payload.name",
                "v": "/Renton/WindFarm/Turbine/WindSpeed",
                "vt": "str"
            }
        ],
        "repeat": "1",
        "crontab": "",
        "once": false,
        "onceDelay": "",
        "topic": "",
        "x": 270,
        "y": 200,
        "wires": [
            [
                "string"
            ]
        ]
    }
]
```

## Configurar um nó para tradução de dados
<a name="windows-nodered-sitewiseise-translator-config"></a>

O gateway SiteWise Edge requer dados em um formato específico para garantir a compatibilidade com a AWS IoT SiteWise nuvem. O nó tradutor é um componente importante que converte seus dados de entrada no formato de AWS IoT SiteWise carga útil necessário. Essa etapa de tradução garante que seus dados industriais possam ser processados, armazenados e posteriormente analisados adequadamente no ambiente de AWS IoT SiteWise nuvem.

Ao padronizar o formato dos dados nesse estágio, você permite a integração entre seus dispositivos de ponta e o serviço de nuvem, onde você pode usar recursos de modelagem, análise e visualização de ativos. Use essa estrutura:

**Example : Estrutura de carga útil para análise de dados SiteWise do Edge**  

```
{
  "propertyAlias": "string",  
  "propertyValues": [
    {
      "value": { 
          "booleanValue": boolean, 
          "doubleValue": number, 
          "integerValue": number,
          "stringValue": "string" 
     },
      "timestamp": {
          "timeInSeconds": number,
          "offsetInNanos": number
      },
      "quality": "GOOD" | "UNCERTAIN" | "BAD",
  }]
}
```

**nota**  
Combine `propertyAlias` o com sua hierarquia de tópicos do MQTT (por exemplo,`/Renton/WindFarm/Turbine/WindSpeed`). Isso garante que seus dados estejam associados adequadamente à propriedade correta do ativo em AWS IoT SiteWise. Para obter mais informações, consulte o conceito “Alias de fluxo de dados” em[AWS IoT SiteWise conceitos](concept-overview.md). 

1. Importe o nó de função de exemplo para tradução AWS IoT SiteWise de carga útil. Essa função gerencia a conversão do seu formato de entrada padronizado para o formato AWS IoT SiteWise compatível, garantindo a formatação adequada do carimbo de data/hora, indicadores de qualidade e digitação de valores.

   ```
   [
       {
           "id": "string",
           "type": "function",
           "z": "string",
           "name": "Translate to SiteWise payload",
           "func": "let input = msg.payload;\nlet output = {};\n\noutput[\"propertyAlias\"] = input.name;\n\nlet propertyVal = {}\n\nlet timeInSeconds = Math.floor(input.timestamp / 1000);\nlet offsetInNanos = (input.timestamp % 1000) * 1000000;\n\npropertyVal[\"timestamp\"] = {\n    \"timeInSeconds\": timeInSeconds,\n    \"offsetInNanos\": offsetInNanos,\n};\n\npropertyVal[\"quality\"] = input.quality\n\nlet typeNameConverter = {\n    \"number\": (x) => Number.isInteger(x) ? \"integerValue\" : \"doubleValue\",\n    \"boolean\": (x) => \"booleanValue\",\n    \"string\": (x) => \"stringValue\", \n}\nlet typeName = typeNameConverter[typeof input.value](input.value)\npropertyVal[\"value\"] = {}\npropertyVal[\"value\"][typeName] = input.value;\n\noutput[\"propertyValues\"] = [propertyVal]\n\nreturn {\n    payload: JSON.stringify(output)\n};",
           "outputs": 1,
           "timeout": "",
           "noerr": 0,
           "initialize": "",
           "finalize": "",
           "libs": [],
           "x": 530,
           "y": 200,
           "wires": [
               [
                   "string"
               ]
           ]
       }
   ]
   ```

1. Verifique se o JavaScript código traduz os dados da velocidade do vento corretamente. A função executa várias tarefas importantes:
   + Extrai o nome da propriedade da entrada e a define como PropertyAlias
   + Converte o timestamp de milissegundos para o formato necessário de segundos e nanossegundos
   + Preserva o indicador de qualidade para rastreamento da confiabilidade dos dados
   + Detecta automaticamente o tipo de valor e o formata de acordo AWS IoT SiteWise com os requisitos

1. Conecte o nó ao seu fluxo, vinculando-o entre o nó de entrada de dados e o editor do MQTT.

Para obter orientação sobre como escrever uma função específica para suas necessidades de negócios, consulte [Funções de escrita](https://nodered.org/docs/user-guide/writing-functions) na *Node-REDdocumentação*

## Configurar o editor MQTT
<a name="windows-nodered-mqtt-publisher-config"></a>

Após a tradução, os dados estão prontos para publicação no corretor SiteWise Edge MQTT.

Configure o editor do MQTT com estas configurações para enviar dados ao agente SiteWise Edge MQTT:

**Para importar o nó de saída do MQTT**

1. Importe um nó de configuração de saída do MQTT usando o. `"type": "mqtt out"` Os nós de saída do MQTT permitem que você compartilhe a configuração de um broker.

1. Insira pares de valores-chave para obter informações relevantes sobre a conexão do agente MQTT e o roteamento de mensagens.

Importe o `mqtt out` nó de exemplo.

**Example**  

```
[
    {
        "id": "string",
        "type": "mqtt out",
        "z": "string",
        "name": "Publish to MQTT broker",
        "topic": "/Renton/WindFarm/Turbine/WindSpeed",
        "qos": "1",
        "retain": "",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "string",
        "x": 830,
        "y": 200,
        "wires": []
    },
    {
        "id": "string",
        "type": "mqtt-broker",
        "name": "emqx",
        "broker": "127.0.0.1",
        "port": "1883",
        "clientid": "",
        "autoConnect": true,
        "usetls": false,
        "protocolVersion": "5",
        "keepalive": 15,
        "cleansession": true,
        "autoUnsubscribe": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthPayload": "",
        "birthMsg": {},
        "closeTopic": "",
        "closePayload": "",
        "closeMsg": {},
        "willTopic": "",
        "willQos": "0",
        "willPayload": "",
        "willMsg": {},
        "userProps": "",
        "sessionExpiry": ""
    }
]
```

O exemplo de nó de saída do MQTT cria a conexão MQTT com as seguintes informações:
+ Servidor: `127.0.0.1`
+ Porto: `1883`
+ Protocolo: `MQTT V5`

Em seguida, o nó de saída do MQTT configura o roteamento de mensagens com as seguintes informações:
+ Tópico: `/Renton/WindFarm/Turbine/WindSpeed`
+ QoS: `1`

## Implante e verifique os nós
<a name="windows-verify-deployment"></a>

Depois de configurar os três nós de fluxo de publicação de dados, siga estas etapas para implantar o fluxo e verificar se os dados estão sendo transmitidos corretamente para AWS IoT SiteWise

**Para implantar e verificar conexões**

1. Conecte os três nós conforme mostrado no fluxo de publicação de dados.  
![\[Data publish flow diagram showing input from turbine simulator to AWS IoT SiteWise to MQTT broker.\]](http://docs.aws.amazon.com/pt_br/iot-sitewise/latest/userguide/images/gateway-open-source-nodered-publish-flow.png)

1. Escolha **Implantar** para aplicar todas as alterações de conexão do nó.

1. Navegue até o [AWS IoT SiteWise console](https://console.aws.amazon.com/iotsitewise/) e escolha **Fluxos de dados**.

1. Verifique se **o prefixo Alias** está selecionado no menu suspenso. Em seguida, pesquise o `/Renton/WindFarm/Turbine/WindSpeed` alias.

Se você ver o alias correto em sua pesquisa, você implantou o fluxo e verificou a transmissão de dados.

# Configurar o fluxo de retenção de dados
<a name="windows-nodered-data-retention-flow"></a>

O fluxo de retenção de dados pode ser usado para manter a visibilidade operacional na borda. Isso é útil durante interrupções na rede ou quando você precisa de acesso imediato aos seus dados. Esse fluxo se inscreve no corretor MQTT para receber dados do dispositivo, convertê-los no formato InfluxDB® e armazená-los localmente. Ao implementar esse fluxo, você cria um armazenamento de dados local resiliente que os operadores podem acessar sem dependências na nuvem, permitindo o monitoramento em tempo real e a tomada de decisões na borda.

O fluxo consiste em três componentes principais trabalhando juntos para garantir que seus dados sejam capturados e armazenados adequadamente:
+ **Cliente de assinatura MQTT** - Recebe dados da corretora, garantindo a captura de todos os dados industriais relevantes
+ **Tradutor InfluxDB** - Converte a AWS IoT SiteWise carga útil para o formato InfluxDB, preparando os dados para um armazenamento eficiente de séries temporais
+ **InfluxDB writer** - manipula o armazenamento local, garantindo a persistência e a disponibilidade dos dados para aplicativos locais

![\[Fluxo de retenção de dados Node-red\]](http://docs.aws.amazon.com/pt_br/iot-sitewise/latest/userguide/images/gateway-open-source-nodered-data-retention.png)


## Configurar o cliente de assinatura MQTT
<a name="windows-nodered-mqtt-subscriber"></a>
+ Configure o cliente de assinatura MQTT no Node-RED para receber dados do broker MQTT EMQX importando o exemplo abaixo. AWS IoT SiteWise   
**Example : MQTT no modo**  

  ```
  [
      {
          "id": "string",
          "type": "mqtt in",
          "z": "string",
          "name": "Subscribe to MQTT broker",
          "topic": "/Renton/WindFarm/Turbine/WindSpeed",
          "qos": "1",
          "datatype": "auto-detect",
          "broker": "string",
          "nl": false,
          "rap": true,
          "rh": 0,
          "inputs": 0,
          "x": 290,
          "y": 340,
          "wires": [
              [
                  "string"
              ]
          ]
      },
      {
          "id": "string",
          "type": "mqtt-broker",
          "name": "emqx",
          "broker": "127.0.0.1",
          "port": "1883",
          "clientid": "",
          "autoConnect": true,
          "usetls": false,
          "protocolVersion": "5",
          "keepalive": 15,
          "cleansession": true,
          "autoUnsubscribe": true,
          "birthTopic": "",
          "birthQos": "0",
          "birthPayload": "",
          "birthMsg": {},
          "closeTopic": "",
          "closePayload": "",
          "closeMsg": {},
          "willTopic": "",
          "willQos": "0",
          "willPayload": "",
          "willMsg": {},
          "userProps": "",
          "sessionExpiry": ""
      }
  ]
  ```

Essa assinatura garante que todos os dados relevantes publicados na corretora sejam capturados para armazenamento local, fornecendo um registro completo de suas operações industriais. O nó usa os mesmos parâmetros de conexão MQTT da [Configurar o editor MQTT](windows-nodered-data-publish-flow.md#windows-nodered-mqtt-publisher-config) seção, com as seguintes configurações de assinatura:
+ Tópico — `/Renton/WindFarm/Turbine/WindSpeed`
+ QoS — `1`

Para obter mais informações, consulte [Connect to an MQTT Broker](https://cookbook.nodered.org/mqtt/connect-to-broker) na *Node-REDdocumentação*.

## Configurar o tradutor InfluxDB
<a name="windows-nodered-influxdb-translator"></a>

[O InfluxDB organiza dados usando [tags](https://docs.influxdata.com/influxdb/v1/concepts/glossary/#tag) para indexação e campos para valores.](https://docs.influxdata.com/influxdb/v1/concepts/glossary/#field) Essa organização otimiza o desempenho das consultas e a eficiência do armazenamento para dados de séries temporais. Importe o exemplo de nó de função que contém JavaScript código para converter a AWS IoT SiteWise carga útil para o formato InfluxDB. O tradutor divide as propriedades em dois grupos:
+ Etiquetas — Propriedades de qualidade e nome para uma indexação eficiente
+ Campos — Registro de data e hora (em milissegundos desde a época) e valor

**Example : nó de função de tradução para uma carga útil do InfluxDB**  

```
[
    {
        "id": "string",
        "type": "function",
        "z": "string",
        "name": "Translate to InfluxDB payload",
        "func": "let data = msg.payload;\n\nlet timeInSeconds = data.propertyValues[0].timestamp.timeInSeconds;\nlet offsetInNanos = data.propertyValues[0].timestamp.offsetInNanos;\nlet timestampInMilliseconds = (timeInSeconds * 1000) + (offsetInNanos / 1000000);\n\nmsg.payload = [\n    {\n        \"timestamp(milliseconds_since_epoch)\": timestampInMilliseconds,\n        \"value\": data.propertyValues[0].value.doubleValue\n    },\n    {\n        \"name\": data.propertyAlias,\n        \"quality\": data.propertyValues[0].quality\n    }\n]\n\nreturn msg",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 560,
        "y": 340,
        "wires": [
            [
                "string"
            ]
        ]
    }
]
```

Para obter opções adicionais de configuração, consulte [node-red-contrib-influxdb](https://github.com/mblackstock/node-red-contrib-influxdb)no repositório Node-RED GitHub .

## Configurar o gravador InfluxDB
<a name="windows-nodered-influxdb-writer"></a>

O nó de gravação do InfluxDB é o componente final em seu fluxo de retenção de dados, responsável por armazenar seus dados industriais no banco de dados local do InfluxDB. Esse armazenamento local é importante para manter a visibilidade operacional durante interrupções na rede e fornecer acesso imediato aos dados para aplicativos urgentes.

1. Instale o node-red-contrib-influxdb pacote por meio da opção Gerenciar paleta. Este pacote fornece os nós necessários para conectar o Node-RED ao InfluxDB.

1. Adicione um nó de saída do InfluxDB ao seu fluxo. Esse nó manipulará a gravação real de dados em seu banco de dados InfluxDB.

1. Configure as propriedades do servidor para estabelecer uma conexão segura com sua instância do InfluxDB:

   1. Defina a versão como 2.0 - Isso especifica que você está se conectando ao InfluxDB v2.x, que usa uma API diferente das versões anteriores

   1. Defina o URL como `http://127.0.0.1:8086` - Isso aponta para sua instância local do InfluxDB

   1. Insira seu token de autenticação do InfluxDB. Esse token seguro autoriza a conexão com seu banco de dados. Você gerou o token durante o [Configure o armazenamento local com o InfluxDB](windows-influxdb-setup.md) procedimento.

1. Especifique os parâmetros do local de armazenamento para definir onde e como seus dados serão armazenados:

   1. Insira o nome da sua organização InfluxDB — A organização é um espaço de trabalho para um grupo de usuários, ao qual pertencem seus buckets e painéis. Para obter mais informações, consulte [Gerenciar organizações](https://docs.influxdata.com/influxdb/v2/admin/organizations/) no *InfluxData Documentation*.

   1. Especifique o InfluxDB Bucket (por exemplo,`WindFarmData`) — O bucket é equivalente a um banco de dados em sistemas tradicionais, servindo como um contêiner para seus dados de série temporal

   1. Defina a medição do InfluxDB (por exemplo,`TurbineData`) — A medição é semelhante a uma tabela em bancos de dados relacionais, organizando pontos de dados relacionados

**nota**  
Encontre o nome da sua organização na barra lateral esquerda da instância do InfluxDB. Os conceitos de organização, bucket e medição são fundamentais para o modelo de organização de dados do InfluxDB. Para obter mais informações, consulte a documentação do [InfluxDB](https://docs.influxdata.com/influxdb/v2/admin/organizations/).

## Implemente e verifique o fluxo de retenção
<a name="windows-nodered-retention-deploy"></a>

Depois de configurar todos os componentes do fluxo de retenção de dados, você precisa implantar e verificar se o sistema está funcionando corretamente. Essa verificação garante que seus dados industriais sejam armazenados localmente adequadamente para acesso e análise imediatos.

1. Conecte os três nós conforme mostrado no diagrama de fluxo de retenção de dados. Isso cria um pipeline completo, desde a assinatura de dados até o armazenamento local.  
![\[Fluxo de retenção de dados Node-red\]](http://docs.aws.amazon.com/pt_br/iot-sitewise/latest/userguide/images/gateway-open-source-nodered-data-retention.png)

1. Escolha **Implantar** para aplicar suas alterações e ativar o fluxo. Isso inicia o processo de coleta e armazenamento de dados.

1. Use o InfluxDB Data Explorer para consultar e visualizar seus dados. Essa ferramenta permite verificar se os dados estão sendo armazenados adequadamente e criar visualizações iniciais dos dados da série temporal.

   No Data Explorer, você deve ser capaz de ver suas medições de velocidade do vento sendo registradas ao longo do tempo, confirmando que todo o pipeline, desde a geração de dados até o armazenamento local, está funcionando corretamente. 

   Para obter mais informações, consulte [Consulta no Data Explorer](https://docs.influxdata.com/influxdb/v2/query-data/execute-queries/data-explorer/) no *InfluxData Documentation*.

Com o fluxo de publicação de dados e o fluxo de retenção de dados implantados, agora você tem um sistema completo que envia dados para a AWS IoT SiteWise nuvem enquanto mantém uma cópia local para acesso e resiliência imediatos. Essa abordagem de caminho duplo garante que você obtenha os benefícios da análise e do armazenamento baseados em nuvem, mantendo a visibilidade operacional na borda.

# Configurar o Grafana para Edge SiteWise
<a name="windows-grafana"></a>

 O Grafana® permite criar painéis de monitoramento locais em tempo real para seus dados industriais. Ao visualizar os dados armazenados no InfluxDB®, você pode fornecer aos operadores uma visão imediata sobre o desempenho do equipamento, a eficiência do processo e possíveis problemas. Essa visibilidade na borda é importante para operações urgentes e para manter a continuidade durante interrupções na rede.

## Configurar a fonte de dados
<a name="windows-grafana-data-source-config"></a>

Conectar o Grafana ao seu banco de dados InfluxDB cria uma poderosa camada de visualização para seus dados industriais. Essa conexão permite painéis de monitoramento em tempo real que os operadores podem usar para tomar decisões informadas sem dependências na nuvem.

1. Acesse sua instância Grafana localmente navegando até [http://127.0.0.1:3000](http://127.0.0.1:3000) em seu navegador. *Se for necessário ativar o TLS, você pode consultar [Configurar o HTTPS da Grafana para tráfego seguro na Web](https://grafana.com/docs/grafana/latest/setup-grafana/set-up-https/) na Grafana Labs Documentação.*

1. Adicione uma fonte de dados do InfluxDB apontando para o bucket de série temporal do InfluxDB, onde o Node-RED grava dados. Por exemplo, .`WindFarmData` Essa conexão estabelece o link entre seus dados armazenados e a plataforma de visualização.

1. *Para obter instruções detalhadas, consulte [Configurar a fonte de dados do InfluxDB](https://grafana.com/docs/grafana/latest/datasources/influxdb/configure-influxdb-data-source/) na Grafana Labs documentação.*

### Crie um painel Grafana para SiteWise dados do Edge
<a name="windows-grafana-create-dashboard"></a>

A criação de um painel é a etapa final na criação de sua solução de monitoramento local. Os painéis fornecem representações visuais de seus dados industriais, facilitando a identificação rápida de tendências, anomalias e possíveis problemas.
+ Siga o guia para criar um painel. Para obter mais informações, consulte [Criar seu primeiro painel](https://grafana.com/docs/grafana/latest/getting-started/build-first-dashboard/) na *Grafana LabsDocumentação*. Este modelo pressupõe que seu bucket tenha um nome `WindFarmData` e a medição seja`TurbineData`.

  Você também pode usar o guia de início rápido importando o modelo de painel de exemplo fornecido para criar rapidamente um painel com um gráfico de séries temporais para os dados que o Node-RED gera na seção anterior. Esse modelo fornece um ponto de partida que você pode personalizar para atender às suas necessidades específicas de monitoramento.

  ```
  {
    "__inputs": [
      {
        "name": "DS_WINDFARM-DEMO",
        "label": "windfarm-demo",
        "description": "",
        "type": "datasource",
        "pluginId": "influxdb",
        "pluginName": "InfluxDB"
      }
    ],
    "__elements": {},
    "__requires": [
      {
        "type": "grafana",
        "id": "grafana",
        "name": "Grafana",
        "version": "11.6.0-pre"
      },
      {
        "type": "datasource",
        "id": "influxdb",
        "name": "InfluxDB",
        "version": "1.0.0"
      },
      {
        "type": "panel",
        "id": "timeseries",
        "name": "Time series",
        "version": ""
      }
    ],
    "annotations": {
      "list": [
        {
          "builtIn": 1,
          "datasource": {
            "type": "grafana",
            "uid": "-- Grafana --"
          },
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations & Alerts",
          "type": "dashboard"
        }
      ]
    },
    "editable": true,
    "fiscalYearStartMonth": 0,
    "graphTooltip": 0,
    "id": null,
    "links": [],
    "panels": [
      {
        "datasource": {
          "type": "influxdb",
          "uid": "${DS_WINDFARM-DEMO}"
        },
        "fieldConfig": {
          "defaults": {
            "color": {
              "mode": "palette-classic"
            },
            "custom": {
              "axisBorderShow": false,
              "axisCenteredZero": false,
              "axisColorMode": "text",
              "axisLabel": "",
              "axisPlacement": "auto",
              "barAlignment": 0,
              "barWidthFactor": 0.6,
              "drawStyle": "line",
              "fillOpacity": 0,
              "gradientMode": "none",
              "hideFrom": {
                "legend": false,
                "tooltip": false,
                "viz": false
              },
              "insertNulls": false,
              "lineInterpolation": "linear",
              "lineWidth": 1,
              "pointSize": 5,
              "scaleDistribution": {
                "type": "linear"
              },
              "showPoints": "auto",
              "spanNulls": false,
              "stacking": {
                "group": "A",
                "mode": "none"
              },
              "thresholdsStyle": {
                "mode": "off"
              }
            },
            "mappings": [],
            "thresholds": {
              "mode": "absolute",
              "steps": [
                {
                  "color": "green"
                },
                {
                  "color": "red",
                  "value": 80
                }
              ]
            }
          },
          "overrides": []
        },
        "gridPos": {
          "h": 8,
          "w": 12,
          "x": 0,
          "y": 0
        },
        "id": 1,
        "options": {
          "legend": {
            "calcs": [],
            "displayMode": "list",
            "placement": "bottom",
            "showLegend": true
          },
          "tooltip": {
            "hideZeros": false,
            "mode": "single",
            "sort": "none"
          }
        },
        "pluginVersion": "11.6.0-pre",
        "targets": [
          {
            "datasource": {
              "type": "influxdb",
              "uid": "${DS_WINDFARM-DEMO}"
            },
            "query": "from(bucket: \"WindFarmData\")\n  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n  |> filter(fn: (r) => r[\"_measurement\"] == \"TurbineData\")\n  |> filter(fn: (r) => r[\"_field\"] == \"value\")\n  |> filter(fn: (r) => r[\"name\"] == \"/Renton/WindFarm/Turbine/WindSpeed\")\n  |> filter(fn: (r) => r[\"quality\"] == \"GOOD\")\n  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n  |> yield(name: \"mean\")",
            "refId": "A"
          }
        ],
        "title": "Panel Title",
        "type": "timeseries"
      }
    ],
    "schemaVersion": 41,
    "tags": [],
    "templating": {
      "list": []
    },
    "time": {
      "from": "now-6h",
      "to": "now"
    },
    "timepicker": {},
    "timezone": "browser",
    "title": "demo dashboard",
    "uid": "fejc0t08o6d4wb",
    "version": 1,
    "weekStart": ""
  }
  ```