por Tiago Silva

O My IoT Hub é um conjunto de aplicações privadas para uso com placas, gateways, sensores e outros dispositivos IoT.

A plataforma centraliza comunicação, automação, monitoramento e distribuição de arquivos em um ambiente customizável, modular e preparado para crescer conforme novos dispositivos e serviços são incorporados.

Acesso aos serviços

Esta página é pública, mas as aplicações abaixo são privadas e exigem autenticação para uso exclusivo.

Visão geral

O My IoT Hub funciona como uma base comum para projetos de Internet das Coisas. Em vez de preparar uma solução isolada para cada protótipo, diferentes placas, gateways, sensores e produtos podem reutilizar os mesmos serviços de comunicação, automação e atualização.

Atualmente, ela reúne:

  • Console Node-RED: criação de fluxos, automações e integrações;
  • Broker MQTT: troca de mensagens entre dispositivos e aplicações;
  • Files: distribuição de firmware para atualização OTA.

Os serviços têm responsabilidades diferentes, mas podem ser combinados em um mesmo projeto. Uma placa pode, por exemplo, enviar medições pelo Broker MQTT, ser monitorada por um fluxo do Console e buscar uma nova versão de firmware no Files.

Console Node-RED

O Console oferece o ambiente visual do Node-RED para construir a lógica que interage com os dispositivos. Em vez de desenvolver uma aplicação completa para cada automação, é possível conectar blocos que recebem dados, aplicam regras e executam ações.

Ele pode ser usado para:

  • receber e tratar mensagens publicadas pelos dispositivos;
  • criar regras, temporizações e rotinas de automação;
  • integrar APIs, webhooks e outros sistemas;
  • transformar, armazenar ou encaminhar dados;
  • acompanhar eventos durante o desenvolvimento e os testes;
  • publicar comandos que serão consumidos pelas placas.

Um fluxo pode receber, por exemplo, a temperatura enviada por um sensor, verificar se ela ultrapassou um limite e publicar um comando para acionar um ventilador ou gerar uma notificação. O Console é uma ferramenta administrativa e seu acesso é privado.

Broker MQTT

O Broker MQTT, implementado com Eclipse Mosquitto, é o ponto central da comunicação entre placas, gateways e aplicações. Cada participante se conecta ao broker e utiliza tópicos para publicar ou receber mensagens, sem precisar conhecer diretamente os demais participantes.

Os dispositivos podem publicar telemetria, como temperatura, estado de entradas, consumo ou alarmes. Também podem assinar tópicos para receber comandos, parâmetros de configuração e solicitações de operação. O formato e a organização dos tópicos podem ser definidos conforme o cliente, o projeto e o tipo de dispositivo.

Cada cliente MQTT utiliza suas próprias credenciais e permissões. Isso permite limitar os tópicos que uma placa pode publicar ou assinar e evita que um projeto acesse indevidamente as mensagens de outro.

Files e atualização OTA

O Files distribui os firmwares usados nas atualizações OTA. Cada projeto possui uma chave própria e pode disponibilizar versões em três canais:

  • dev: versões em desenvolvimento e testes iniciais;
  • beta: versões candidatas para validação em um grupo controlado;
  • stable: versões aprovadas para uso normal.

Cada manifesto contém apenas sha256, size e file. Consultá-lo antes do binário permite que a placa detecte uma alteração com uma resposta pequena e, depois do download, confira o tamanho e o hash antes de instalar a imagem.

Em uma verificação periódica, a placa consulta seu manifest.json e compara o sha256 recebido com o hash do firmware instalado. Se forem diferentes, ela baixa o endereço indicado em file, confere o tamanho e o hash do conteúdo e então inicia a atualização. Quando a atualização é acionada por outro meio, a placa também pode baixar diretamente o firmware.bin.

A chave identifica o projeto e permite acessar seus três canais, mas não libera os firmwares pertencentes aos demais clientes e projetos. O Files não possui página de navegação ou interface de upload: ele existe para atender diretamente as requisições OTA dos dispositivos.

Como os serviços trabalham juntos

Um fluxo típico pode funcionar assim:

  1. a placa conecta-se ao Broker MQTT e publica sua telemetria;
  2. um fluxo do Console recebe e processa essas mensagens;
  3. conforme as regras do projeto, o fluxo registra informações, chama uma API ou publica um comando de resposta;
  4. a placa recebe os comandos pelos tópicos que acompanha;
  5. periodicamente, ela consulta o Files para verificar se existe um novo firmware em seu canal OTA.

Essa combinação permite manter a comunicação em tempo real separada da automação e da distribuição de firmware. Cada projeto utiliza apenas os serviços de que precisa e pode evoluir sem exigir uma aplicação única para todas as funções.

Formas de acesso

Serviço Utilização
console.controlandoeletrons.com.br acesso privado ao Console Node-RED pelo navegador
mqtt.controlandoeletrons.com.br acesso privado às informações e ferramentas do Broker MQTT
mqtt.controlandoeletrons.com.br:1883 conexão MQTT dos dispositivos
mqtt.controlandoeletrons.com.br:8883 conexão MQTT dos dispositivos protegida por TLS
files.controlandoeletrons.com.br/ota/{cliente}/{projeto}/{canal}/{chave}/manifest.json consulta de atualização OTA
files.controlandoeletrons.com.br/ota/{cliente}/{projeto}/{canal}/{chave}/firmware.bin download direto do firmware

Os detalhes sobre hospedagem, publicação do site e relacionamento entre as tecnologias estão reunidos no artigo Arquitetura e Fluxo de Desenvolvimento do Site.