Pular para o conteúdo principal

M2M

Neste artigo vamos ver um exemplo de aplicação para comunicação M2M na plataforma MHO Cloud.


Este artigo se baseia em:

0. Estrutura

Machine-to-Machine (M2M), ou máquina-a-máquina refere-se à tecnologia que permite a comunicação direta entre dispositivos. O M2M desempenha um papel crucial na criação de ambientes mais inteligentes e conectados, onde os equipamentos podem realizar comunicação inteligente entre si. Dentro do ecossistema IoT da MHO o M2M acontece através do MQTT via plataforma MHO Cloud, com isolação de contexto de dados para que a troca de informações ocorra somente com dispositivos permitidos.

Vantagens:

  • Sem limite de quantidade de equipamentos;
  • Sem limitação de distância, basta que ambos os equipamentos possuam conexão com internet;
  • Sem necessidade de infra-estrutura adicional para M2M, basta fornecer internet para os equipamentos;
  • Comunicação assíncrona Pub/Sub, mensagens são trocadas instantaneamente, sem atraso de envio;
  • Latência típica de 1 a 5 segundos.
Quando não utilizar?

Como a comunicação acontece através da internet e o processamento é realizado pela plataforma MHO Cloud, a troca de mensagens entre os dispositivos possuem uma latência de aproximadamente 3 segundos (a distância de SP-Brasil influencia nesse tempo).

Só utilize em sistemas lentos ou que podem suportar um atraso de mensagens menor que 5 segundos, que é o tempo que normalmente os dados são trafegados. Em sistema rápidos que realmente precisam de comunicação M2M em tempo real, utilize um sistema de troca de mensagem local, por exemplo Modbus RTU ou outro que atenda as especificações do projeto.


Passos:

  • Na plataforma MHO Cloud:
    • Crie as relações entre os dispositivos que trocam as mensagens. Uma relação de saída significa que o equipamento relacionado vai receber as telemetrias deste equipamento;
    • No dispositivo que envia telemetria, nas configurações M2M: habilite o M2M, defina um nome amigável e liste as telemetrias que serão enviadas.
  • No mhoJS MHO Keeper:
    • Declare os atributos de interesse através da função cloud.setAtt;
    • Defina a função sa_callback e trate os dados recebidos.
dica

Essa funcionalidade compartilha a mesma estrutura para utilização de setpoints remotos via atributos compartilhados do MHO Cloud. Caso utilize ambas as funcionalidade em conjunto, lembre-se que no programa teremos apenas uma função sa_callback definida, bem como devemos setar os atributos utilizados apenas uma vez utilizando cloud.setAtt.


1. M2M Unidirecional (One-Way)

No M2M unidirecional, a comunicação ocorre em apenas uma direção. Um dispositivo envia dados para outro dispositivo, mas não recebe nenhuma resposta de volta. Este tipo de comunicação é comum em aplicações onde a transmissão de informações é suficiente sem a necessidade de uma interação contínua.

1.1. Arquitetura

Neste exemplo o equipamento id2 recebe dados de telemetria do equipamento id1. Os dados de telemetria de interesse são: DI1, AI1.


1.2. Configurações MHO Cloud

Equipamento id1

No MHO Cloud precisamos configurar o equipamento id1 da seguinte forma, pois é ele que vai enviar as telemetrias para o(s) equipamento(s) de interesse:

Nas relações do dispositivo:

  • Criar relação do tipo manages com o equipamento id2. (caso houvessem mais equipamentos de interesse, bastaria criar novas relações).

Nas configurações M2M do dispositivo:

  • Habilitar M2M;
  • Definir nome amigável para o M2M, neste exemplo id1;
  • Definir lista de telemetrias compartilhadas, para esse exemplo: DI1,AI1.

Equipamento id2

Como essa se trata de uma comunicação unidirecional, no equipamento id2 dentro MHO Cloud não é necessário realizar nenhuma configuração.

Passo a passo

Neste exemplo o equipamento #7.381 envia telemetria para o equipamento #7.385, dessa forma precisamos criar uma relação de saída do tipo manages no equipamento #3.381 para o equipamento #7.385.

Configurações das relações do dispositivo




Configurações do Dispositivo


1.3. Programa mhoJS

Equipamento id1

Como essa se trata de uma comunicação unidirecional, no equipamento id1 dentro mhoJS não é necessário realizar nenhuma configuração.

Equipamento id2

No equipamento id2 precisamos carregar o arquivo mhoJS contendo as seguintes informações:

  • definir quais telemetrias de interesse via cloud.setAtt();, para que na conexão ou reconexão com a plataforma esses atributos sejam sincronizados;
  • definir função sa_callback, bem como definir os dados que serão interpretados por essa função;
  • Definir ações para os dados provenientes do M2M.
main.js
//copyright MHO LTDA: 
version(1);//01/07/2024
cloud.setAtt('id1_status,id1_DI1,id1_AI1'); //definicao de mensagens de interesse

let remoto_AI1 = 0;

//funcao chamada quando chega uma mensagem
let sa_callback = function(obj) {
//log("sa_callback => ", obj);
if(haskey(obj, 'id1_DI1')) io.setDO(1, obj.id1_DI1);
if(haskey(obj, 'id1_AI1')) remoto_AI1 = obj.id1_AI1;
};

let loop = function() {
let AI1_inter = Math.range(739, 3710, 0, 100, remoto_AI1);
AI1_inter > 60 ? io.setDO(1, true) : null;
AI1_inter < 50 ? io.setDO(1, false) : null;
};


2. Conclusão

Neste artigo, exploramos a aplicação da comunicação M2M (Machine-to-Machine) na plataforma MHO Cloud com os dispositivos MHO Keeper. A configuração envolveu tanto a plataforma MHO Cloud quanto a programação mhoJS no dispositivo Keeper. A comunicação M2M é essencial para criar ambientes inteligentes e conectados, oferecendo uma solução eficiente para a troca de informações entre dispositivos. Para mais detalhes visite a documentação de referencia ou entre em contato com o suporte técnico.