Índice:
- Suprimentos
- Etapa 1: protocolo REST JSON Http (s)
- Etapa 2: Fluxo
- Etapa 3: Painel
- Etapa 4: Fluxo de importação (projeto, script, etc.)
- Etapa 5: Como tudo funciona junto
- Etapa 6: HTTP POST e GET
- Etapa 7: nós de botão
- Etapa 8: Nó de Função
- Etapa 9: Nó JSON e Nó Injetar
- Etapa 10: Nó de Texto e Nó de Depuração
- Etapa 11: Nó do gráfico
- Etapa 12: Gauge Node e Link Nodes
- Etapa 13: Obrigado por ler meu instrutível
Vídeo: Como trabalhar com JSON no Node-RED: 13 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Este instrutível irá ensiná-lo a trabalhar com JSON no node-RED. Mostrarei como controlar os soquetes de energia em rede com a transferência de arquivos json via http get e post. E você pode usar esse conhecimento posteriormente para controlar qualquer dispositivo que suporte o protocolo JSON.
Para fins de ensino, usarei o soquete NETIO 4All em rede, mas não se preocupe, você não precisa comprar nada. NETIO tem uma demonstração online 4All incrível que você pode usar.
Suprimentos
NETIO 4All networked powersocket ou 4All online demo:
Node-RED
Etapa 1: protocolo REST JSON Http (s)
Esta parte é um pouco técnica, mas por favor, tenha paciência comigo. Se eu não explicasse esta parte você teria problemas em entender os valores nos arquivos json que estaremos enviando no node-RED.
Ações aplicáveis a cada saída (tomada elétrica):
Em todos os protocolos M2M, os soquetes de energia NETIO usam as mesmas ações que podem ser aplicadas a saídas individuais. Por exemplo, uma ação Alternar ou Desligar curto pode ser gravada em qualquer saída.
No entanto, a variável Action só pode ser usada para escrever valores, ela não pode ser usada para ler o estado atual da tomada.
Estas são as ações que você pode aplicar a cada saída:
0 = Saída desligada (desligada)
1 = Saída ligada (On)
2 = Saída desligada por um curto período de tempo (curto desligado)
3 = Saída ligada por um curto período de tempo (curto ligado)
4 = Saída comutada de um estado para outro (alternar)
5 = Estado de saída inalterado (sem alteração)
6 = Ignorado
Exemplo - arquivo JSON para alternar o número de saída. 1:
{
"Saídas": [{
"ID": 1, "Ação": 4
}]
}
ID - este número indica qual saída usaremos
Ação - esta parte, é a ação que a saída fará (por exemplo, 1 (Ativar saída))
Etapa 2: Fluxo
E agora a parte principal. É assim que o ambiente node-RED se parece.
Importamos o fluxo de API de URL (O projeto que você vê. Mais tarde, mostrarei como importar fluxos e este projeto). Este projeto consiste em duas partes:
- Fluxo NETIO AN30 (API JSON REST)
- Dashboard (interface gráfica pela qual você pode operar seu programa)
Etapa 3: Painel
Esta é a aparência do painel no node-RED para este instrutível. Você pode personalizá-lo se quiser.
O painel para este projeto é dividido em 4 partes:
- Status do dispositivo - mostra as informações do dispositivo, como modelo, endereço mac ou versão do firmware.
- (POST) Saída de controle 1 - contém 5 botões que controlam a saída 1. Cada botão executa uma ação diferente
- (GET) O1 - O4 Output States - Esta parte mostra o estado atual de cada saída do seu dispositivo.
- Gerenciamento de dispositivos - nesta parte você pode encontrar todos os tipos de gráficos e medidores que mostram os valores medidos atuais do dispositivo NETIO 4Aall
Etapa 4: Fluxo de importação (projeto, script, etc.)
No menu (canto superior direito) selecione Importar e depois Área de Transferência.
Em seguida, copie o texto abaixo para o campo indicado e clique em Importar.
Instalando nós ausentes
Os nós são carregados no fluxo selecionado. É possível que uma mensagem de erro seja exibida com uma lista de nós que estão sendo importados, mas ainda não foram instalados no Node-RED. Nesse caso, os nós ausentes precisam ser instalados.
Se houver nós ausentes, selecione Gerenciar paleta no menu, clique em Instalar e encontre e instale os nós ausentes.
Texto de importação:
[{"id": "56b9510c.98c6f", "type": "tab", "label": "NETIO AN30 (REST JSON)", "disabled": false, "info": ""}, {"id ":" 6a66b637.da1558 "," digite ":" solicitação http "," z ":" 56b9510c.98c6f "," nome ":" Solicitação HTTP (POST) "," método ":" POST "," ret ": "txt", "url": "https://netio-4All.netio-products.com:8080/netio.json", "tls": "", "x": 430, "y": 100, "fios":
Etapa 5: Como tudo funciona junto
O fluxo é basicamente dividido em duas partes: POST e GET.
POST: Escrevendo para O1
- Cinco botões criados no Dashboard no Flow são exibidos no Dashboard.
- Depois de clicar no botão Output 1 = ON no Dashboard, a carga útil é definida para o arquivo netio.json que especifica a saída e a ação (definida para cada um dos botões).
- O bloco HTTP Request (POST) envia o arquivo netio.json como uma solicitação para um endereço IP.
- A resposta do servidor (status) é retornada como saída.
- O bloco Msg.payload exibe o resultado da Solicitação HTTP (POST).
OBTER: Leitura de O1 - O4
- O bloco de repetição de 1 segundo ativa, com um período de um segundo, o bloco de solicitação HTTP (GET), que por sua vez envia netio.json como uma solicitação GET e retorna um arquivo JSON completo com o status do soquete como recebido do servidor.
- O bloco JSON Parse transforma o arquivo JSON do bloco HTTP Request (GET) em um objeto JSON para que seja possível manipular as propriedades no arquivo JSON.
- O bloco de funções pega partes individuais do objeto JSON e as transforma em propriedades de um objeto msg para uso posterior.
- O bloco Current Chart define msg.payload como a propriedade msg. TotalCurrent do objeto msg, porque o bloco Current Chart (Device) subsequente pode exibir apenas o valor msg.payload.
- Em seguida, vários nós de saída seguem para exibir as propriedades selecionadas do objeto msg, conforme retiradas do objeto JSON, no painel.
O objeto msg e msg.payload
Para uma explicação simples e concisa, veja aqui:
www.steves-internet-guide.com/node-red-mess…
Etapa 6: HTTP POST e GET
Solicitação HTTP (POST)
Este nó envia um arquivo de comando netio.json como uma Solicitação HTTP (POST) para controlar o dispositivo NETIO 4All.
Solicitação HTTP (GET)
Este nó envia uma solicitação HTTP (GET) e retorna a resposta de status.
O endereço pré-preenchido aponta para a demonstração online do NETIO 4All, onde você pode testar a conexão sem ter um dispositivo NETIO em sua mesa.
netio-4all.netio-products.com
É possível definir seu próprio endereço IP nesses nós; no entanto, o IP precisa ser alterado em ambos os nós de solicitação HTTP, POST e GET.
Etapa 7: nós de botão
Clicar no nó do botão gera uma mensagem contendo um arquivo netio.json (imagem à direita) que é então enviado via nó de postagem http para a tomada netio smart power.
Etapa 8: Nó de Função
Um nó de função é um nó especial que permite escrever uma função JavaScript customizada.
Neste instrutível, a função escolhe valores do arquivo JSON analisado (agora um objeto JSON) e os atribui às propriedades do objeto msg.
O código é dividido em quatro seções:
- Atribuição de valores do objeto JSON às propriedades individuais do objeto msg
-
Tratamento de erros caso a tomada de rede não suporte medições globais
Se a tomada de energia em rede não suporta a medição de valores globais, o Node-RED exibiria erros porque esta função não encontraria a respectiva propriedade, por exemplo, msg.payload. GlobalMeasure. Voltage, uma vez que não estaria presente no objeto JSON. Nesse caso, a propriedade do objeto msg, por exemplo, msg. Voltage, é definido como 0 e o erro é detectado e tratado.
- Atribuição de valores de estado de saída
- Definir as cores dos valores de estado de saída exibidos de acordo com os estados de saída
Etapa 9: Nó JSON e Nó Injetar
Nó JSON
O nó JSON analisa o arquivo JSON e o transforma em um objeto JSON.
Como uma resposta do servidor à solicitação GET, o nó Solicitação HTTP retorna um arquivo JSON contendo o status atual do dispositivo NETIO 4x, mas é simplesmente um arquivo de texto, portanto, para trabalhar com os dados, o arquivo JSON precisa para ser analisado em um objeto JSON.
Nó de injeção
A cada segundo, este nó ativa o nó Solicitação HTTP que envia uma solicitação GET.
Como resultado, os valores no painel são atualizados com um período de um segundo
Etapa 10: Nó de Texto e Nó de Depuração
Nó de texto
Exibe um campo de texto no painel. Neste instrutível, os nós de texto exibem a corrente, tensão, modelo, versão do firmware ou versão JSON.
O rótulo é exibido no painel e o nome é o nome do nó exibido no fluxo no Node-RED.
Nó de depuração
Exibe o msg.payload.
Etapa 11: Nó do gráfico
Este nó plota o gráfico atual no painel de acordo com o valor da carga útil.
Este nó só pode traçar gráficos de acordo com o valor da carga útil.
Por esse motivo, um nó de função é usado para definir msg.payload para o valor que precisa ser exibido.
msg.payload = msg. TotalCurrent;
Etapa 12: Gauge Node e Link Nodes
Nó de medição
Este nó adiciona um widget de medidor ao painel.
Neste instrutível, cada medidor visualiza uma propriedade do objeto msg: tensão [V], corrente [A], frequência [Hz] e o fator de potência real geral (TPF).
Nós de ligação
Os nós de entrada e saída de link funcionam como um túnel. O msg.payload chega ao nó do link no nó e sai do nó de saída do link.
Usei-o para tornar o fluxo um pouco mais claro e fácil de ler.
Etapa 13: Obrigado por ler meu instrutível
Espero que você tenha gostado do meu instrutível e espero que tenha aprendido algo novo.
Este instrutível é apenas uma versão abreviada de um guia diferente que fiz
O guia original é mais longo e muito mais detalhado e geralmente melhor estruturado. Se você não entendeu algo ou acha que perdi ou não expliquei algo o suficiente, então você definitivamente pode encontrar lá.
Eu prometo que você não ficará desapontado
Original:
Além disso, existem guias semelhantes sobre os vários usos do nó-RED, então, se você estiver interessado, sinta-se à vontade para explorar:
Trabalhando com REST URL API em node-RED
www.netio-products.com/en/application-notes/an29-node-red-example-of-url-api-communication-with-netio-4x
Trabalhando com REST XML em node-RED
www.netio-products.com/en/application-notes/an31-node-red-example-of-rest-xml-communication-with-netio-4x
Trabalhando com TCP / Modbus em node-RED
Em breve:)
Recomendado:
Visuino Como usar um botão como entrada para controlar coisas como LED: 6 etapas
Visuino Como usar um botão como entrada para controlar coisas como o LED: Neste tutorial, aprenderemos como ligar e desligar o LED usando um botão simples e o Visuino. Assistir a um vídeo de demonstração
Mod de módulo de relé 5V para trabalhar com Raspberry Pi: 4 etapas
Mod de módulo de relé 5V para trabalhar com Raspberry Pi: é realmente fácil nos dias de hoje colocar as mãos em uma placa de relé, mas você descobrirá rapidamente que a maioria delas são projetadas para 5V, o que pode ser um problema para um pobre Raspberry Pi ou qualquer outro microcontrolador rodando em 3,3 V, eles simplesmente não têm a volta
DragonBoard 410c - Como trabalhar a expansão de baixa velocidade: 8 etapas
DragonBoard 410c - Como trabalhar a expansão de baixa velocidade: Este tutorial é sobre a expansão de baixa velocidade no DragonBoard 410c. As entradas e saídas (I / O) de expansão de baixa velocidade no DragonBoard 410c são: GPIO (General Purpose Input / Output); MPP (pino multiuso); SPI (Interface Periférica Serial); I2C (em
Como trabalhar com o Arduino e diferentes leds RGB: 3 etapas
Como trabalhar com o Arduino e diferentes leds RGB: O Arduino é um pequeno dispositivo incrível. Mas um dos aplicativos mais usados para este pequeno dispositivo poderoso é frequentemente piscar ou piscar um LED. Este tutorial irá mostrar três maneiras de trabalhar com RGB Leds e Arduino.1. A primeira maneira é usar um simples
Ouça suas músicas para trabalhar em altos níveis de ruído: 16 etapas
Ouça suas músicas para trabalhar em altos níveis de ruído .: Esta é a primeira vez que faço isso tão simples comigo. Problema: no trabalho não podemos usar fones de ouvido e visto que existe uma regra de proteção auditiva 100%, é assim que eu derroto o sistema. Temos permissão para rádios, mas estamos em um prédio de aço e