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.
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.
- Declare os atributos de interesse através da função
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 equipamentoid2
. (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
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.
//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.