Explorando o NodeMcu – AdafruitIO e MQTT

Olá meus queridos caiçaras, tudo bem? No post de hoje, vamos falar sobre o envio de dados do seu ESP8266 para a nuvem e o uso do protocolo MQTT, utilizando o AdafruitIO. Caso você não conheça o que é a plataforma NodeMcu, recomendo, fortemente, a dar uma passadinha em nossa série de primeiros passos, clicando aqui.

O que é MQTT?

O protocolo MQTT (Message Queue Telemetry) está mais presente, a cada dia, em projetos IoT. Isso devido a seu baixo consumo, sendo extremamente leve e simples. Ele segue o modelo de “publicar-assinar“, onde o publicador envia dados para um servidor (denominado como broker) e o assinantes recebem estes dados. Publicadores e assinantes não interagem entre si. Eles se comunicam via broker, tornando a comunicação assíncrona.

A função do broker é receber os dados, fazer a filtragem e enviá-los aos assinantes, que estiverem registrados em determinado bloco.

Realmente, é um pouco confuso e difícil de entender no começo. Mas, creio que uma imagem vale mais do que mil palavras. Então, a ilustração a seguir mostra uma visão do protocolo MQTT.

Fonte: https://www.survivingwithandroid.com/2016/10/mqtt-protocol-tutorial.html

Agora que compreendemos o MQTT, vamos ao projeto.

O que vamos fazer?

Bom, para este projeto, realizaremos a leitura e temperatura com um termistor NTC, plotando um gráfico com atualização em tempo real no AdafruitIO. Com isso, um led que será acionado através da plataforma.  Para montagem do hardware necessário, você precisará de:

1 Protoboard;

1 Termistor NTC;

1 Resistor de 10kΩ;

1 Resistor de 330Ω;

1 LED 5mm vermelho ou a cor que preferir;

Fios Jumpers.

Além da placa NodeMcu, é claro. A ligação do circuito é realizada, conforme imagem abaixo:

Antes de criar o sketch, é necessário criar uma conta no AdafruitIO e verificar algumas informações importantes.

Preparando o AdafruitIO

O AdafruitIO é uma plataforma para interação de projetos IoT, desenvolvida pela Adafruit. Essa é uma empresa, que atua fortemente no desenvolvimento de shields, bibliotecas e possui um blog com tutoriais bem interessantes: https://learn.adafruit.com/category/adafruit-io.

Para isso, você precisa se cadastrar através da seguinte URL: https://io.adafruit.com/

Após finalizar cadastro, você será redirecionado para uma página, com a lista de seus Dashboards (que estarão vazios). Conforme imagem abaixo:

Você deverá criar sua Dashboard. Para isso, clique no botão Actions e, em seguida, em Create a new Dashboard. Uma janela deverá abrir.

Preencha com o nome e uma descrição. E, por fim, clique em Create.

Ao criar o Dashboard, vamos selecionar os Widgets deste projeto. Nesse caso, utilizaremos 2 Widgets, que serão: um para ligar e desligar um botão e outro para exibição da temperatura. Para isso, clique no ícone azul claro (+), para criar um novo bloco.

Para este artigo, vamos utilizar o Line Chart, para plotagem do gráfico de temperatura, e o Toogle,que será o botão de acionamento do led. Vamos começar, clicando em Line Chart. Será aberta uma janela, onde você deverá adicionar o nome ao feed e clicar em Create. Feito isso, selecione feed, clique em Next Step. Então, serão exibidas algumas configurações para o bloco selecionado. Não será realizada nenhuma alteração, mantendo o padrão. Por fim, clique em CreateBlock.

Faremos, exatamente, o mesmo passo a passo para criação de um novo bloco para acionamento do led. Mas, lembre-se de selecionar Toogle.

Feito isso, sua tela ficará de acordo com a imagem a seguir:

É possível alterar a organização do Dashboard. Caso queira, clique no botão verde (engrenagem) e arraste conforme desejado. Ao finalizar a edição, clique em DONE EDITING.

Por fim, clique no botão amarelo (chave) e copie sua YOUR secret AIO KEY. Essa chave garantirá a comunicação entre a plataforma e o hardware.

Agora que finalizou o cadastro, vamos ao sketch. Lembre-se dos nomes dados aos feeds! Eles serão necessários na próxima etapa.

Vamos ao código

Para esta atividade, serão necessárias duas bibliotecas auxiliares.Faça o download e as instale na IDE do Arduino.

Vamos ao código fonte, que fará as configurações básicas de rede, a leitura do sensor, a configuração do led como uma saída digital e a publicação/assinatura dos dados via MQTT.

O código fonte apesar de grande, está com os devidos comentários, facilitando sua interpretação e entendimento, fique tranquilo, boa parte é simplesmente para conexão e publicação/assinatura de dados.

Resultados obtidos

Após escrever todo o código, você deverá clicar em Verificar e, após verificação, clicar em Carregar para o ESP8266. Feito isso, abra o Monitor Serial para acompanhar e, ao finalizar a conexão, o mesmo deverá mostrar o dado de temperatura lido pelo sensor. Por fim, verifique a plataforma AdafruitIO, clique no ON/OFF do led e perceberá que, ao mudar de OFF para ON, o led ligará. Os dados lidos ficarão parecidos com a imagem a seguir.

Espero que tenha curtido o artigo, sei que ficou longo. Entretanto, é importante explicar alguns pontos do projeto. Então, não deixe de comentar aqui embaixo e recomende ferramentas que possam ser exploradas ou sugestões de futuras postagens.

Bom galera, eu espero que tenham gostado. Se você tem qualquer dúvida ou sugestão, deixe seu comentário. Terei o prazer de responder. Além disso, não deixe de compartilhar este artigo, pois sua dúvida pode ser a de outras pessoas.

Gostou? Compartilhe e de seu feedback! Isso é fundamental para melhorarmos nosso conteúdo e produzir, ainda mais, artigos para ajudar mais e mais pessoas.

Muito obrigado e até a próxima!

Yhan Christian

0 Comentários

Deixe seu comentário.