MQTT explicado a professores (sem jargão)

O MQTT é o sistema de mensagens por trás da maioria dos painéis de IoT. Imagine um placar de sala de aula: os dispositivos afixam notas em tópicos com nome e um broker entrega-as a quem está subscrito.
O MQTT é um sistema de mensagens leve que permite a dispositivos pequenos partilharem dados sem falarem diretamente uns com os outros. Um dispositivo publica uma mensagem curta num tópico com nome, um programa central chamado broker guarda-a, e tudo o que tenha subscrito esse tópico recebe uma cópia. A imagem mais fácil é a de um placar de sala de aula: afixa-se uma nota debaixo de um título e quem se interessa por esse título lê-a quando puder.
Esta única ideia cobre quase tudo o que precisa para explicar o assunto a uma turma. O resto deste artigo dá nome, em linguagem simples, às quatro peças em movimento.
Um placar, não um telefonema
Um telefonema exige as duas pessoas em linha ao mesmo tempo. A maioria dos projetos de sensores na sala de aula não é assim. Um sensor de temperatura pode enviar uma leitura a cada dez segundos, mas o painel que mostra essa leitura pode estar fechado, ou um aluno pode abri-lo uma hora depois.
O MQTT resolve isto como um placar. O sensor afixa a nota e vai à sua vida. O painel lê o placar sempre que olha para ele. Nenhum dos lados precisa de saber que o outro existe, nem de estar acordado ao mesmo tempo. Chama-se a isto publicar e subscrever, e é a razão pela qual uma pequena placa pode alimentar muitos ecrãs sem que nenhum deles esteja ligado por fios.
Os tópicos são apenas etiquetas
O tópico é o título debaixo do qual se afixa a nota. Escreve-se como um caminho com barras, pelo que se lê como uma estrutura de pastas:
classroom/temperaturelab/door/statusgreenhouse/soil/moisture
Estes nomes são inventados por si; não há uma lista fixa. Quem subscreve pede exatamente o título que quer. Existem também caracteres universais, pelo que um painel pode subscrever classroom/# e receber de uma só vez todas as notas afixadas sob o título da sala de aula. Bons nomes de tópicos são o hábito mais útil a ensinar, porque um esquema de nomes arrumado mantém um projeto legível quando há vinte sensores em vez de dois.
O broker fica no meio
O broker é o programa que gere o placar. Todas as mensagens passam primeiro pelo broker, e é ele que as reencaminha para quem subscreveu. Os dispositivos só falam com o broker, nunca entre si, o que os mantém simples e baratos. Num projeto escolar, o broker é normalmente um pequeno servidor ou um serviço alojado; os alunos raramente têm de o ver, limitam-se a apontar a sua placa e o seu painel para o mesmo endereço.
Mensagens retidas e a última vontade
Há duas funcionalidades adicionais que aparecem constantemente, e ambas encaixam na imagem do placar.
Uma mensagem retida é uma nota afixada que fica no lugar. Normalmente, uma mensagem é entregue uma vez e desaparece. Se a nota for retida, o broker guarda a mais recente, pelo que um painel aberto mais tarde vê de imediato o valor atual em vez de um ecrã em branco. É perfeito para uma leitura como a temperatura atual.
Uma última vontade é uma nota que o broker publica em nome de um dispositivo se este cair inesperadamente. Permite a um painel mostrar um sensor como offline assim que este se cala, em vez de exibir para sempre um número desatualizado. Juntas, estas duas funcionalidades são a razão pela qual um ecrã de IoT se consegue governar sozinho.
Porque é que os painéis o usam, e onde se encontra com ele na aula
Os painéis apoiam-se no MQTT porque as mensagens são minúsculas, porque aguenta o wifi irregular que se tem numa sala de aula real e porque um só broker consegue servir muitos dispositivos ao mesmo tempo. Quando uma placa sheenbot lê um sensor e um ecrã em direto se atualiza um segundo depois, foi o publicar e subscrever que transportou o número. Os nossos painéis sheenIoT funcionam exatamente assim, subscrevendo os tópicos que os seus alunos escolherem.
Não precisa de hardware para ensinar a ideia. Os alunos podem publicar e receber mensagens primeiro no simulador verse e passar depois a uma placa real, assim que o modelo mental estiver assente. Se quiser vê-lo construído de ponta a ponta com uma turma, os workshops de robótica das férias cobrem um projeto completo, do sensor ao painel.
Um modelo mental em cinco linhas para dar aos alunos
- Publicar é afixar uma nota no placar.
- Subscrever é pedir para ser avisado quando surgirem notas sob um título.
- Tópico é o título, escrito assim:
classroom/temperature. - Broker é o placar que todos partilham.
- Retida significa que a última nota fica afixada para o leitor seguinte.
Mantenha essa lista na parede nas primeiras aulas. Assim que os alunos conseguirem apontar para o placar e dizer quem está a afixar e quem está a ler, a palavra MQTT deixa de ser jargão e passa a descrever algo que já conseguem imaginar.



