Comunicação entre 3 ou mais arduinos com modbus tcp/ip

Boa tarde,

Estou com algumas dúvidas e gostaria muito da ajuda de alguém pra me dar um norte em um projeto.

A intencao é conectar 4 arduinos e um computador em um roteador.

No computador o scadabr para monitorar as entradas digitais de 3 arduinos.

No 4 arduino seria para ler as entradas dos outros 3 e mandar um arquivo json por uma api (pensei nisso pois nao sei tbm se o scadabr faz isso, caso faça eliminaria esse 4 arduino).

Minha pergunta é …

Como faço a leitura das entradas dos outros 3 arduinos conectados no roteador via modbus tcp/ip nesse 4 arduino?

É possivel enviar um pacote json direto pelo scadabr via api? Se sim como poderia fazer?

Obrigado desde já a ajuda de todos.

Você pode usar os recursos de Scripting ou Meta data points para fazer chamadas GET/POST e enviar dados para uma API, conforme está descrito neste tutorial:

Além disso, no ScadaBR 1.2 (nos anteriores não) você tem pode usar o objeto JSON do Javascript para criar strings JSON. Então você poderia fazer algo do tipo:

// Imagine que nas variáveis ard1 e ard2 você salvou valores lidos de um dos seus Arduinos
var ard1 = 12;
var ard2 = 36.5;

// Criando um objeto Javascript com esses valores
var valoresLidos = {
    tensao: ard1, 
    temperatura: ard2
};

// Convertendo o objeto em string JSON
var valoresJson = JSON.stringify(valoresLidos);

// Enviando o objeto para a API pela função simplePost()
// (veja como implementar essa função no tutorial acima!!)
var request = simplePost("https://dominiodomeusite.com.br", { dados: valoresJson });


// Verificar se o status da resposta é OK (código HTTP 200)
if (request.status == 200) {
    // Deu tudo certo
}
1 curtida